/*
  Strings for user-modifiable options in the Tulsi Xcode project generator.
  Each string key is a user-editable option for the project generator.
  Each key may have an optional _DESC pairing that provides a detailed description of the option
    (e.g., to be used in a tooltip or help string)
*/

"ALWAYS_SEARCH_USER_PATHS" = "Always search user paths";
"ALWAYS_SEARCH_USER_PATHS_DESC" ="Whether to search for all headers (not just \"\" included ones) in the user header search paths before system paths.";

"BazelBuildOptions" = "'build' options";
"BazelBuildOptions_DESC" = "Options for bazel 'build' invocations.";
"BazelBuildOptionsDebug" = "Debug";
"BazelBuildOptionsFastbuild" = "Fastbuild";
"BazelBuildOptionsRelease" = "Release";

"ProjectGenerationCompilationMode" = "Bazel --compilation_mode for project generation";
"ProjectGenerationCompilationMode_DESC" = "Modify this to opt if you frequently build Release builds in your generated project instead of Debug builds.";

"ProjectGenerationPlatformConfiguration" = "Bazel Apple platform and cpu for project generation";
"ProjectGenerationPlatformConfiguration_DESC" = "Modify this to the expected configuration for your project. Setting this incorrectly won't break your builds but it will potentially make them slower and may potentially alter the generated project if your project depends on Bazel `select`s.";

"BazelBuildStartupOptions" = "'build' startup options";
"BazelBuildStartupOptions_DESC" = "Startup options for bazel 'build' invocations.";
"BazelBuildStartupOptionsDebug" = "Debug";
"BazelBuildStartupOptionsFastbuild" = "Fastbuild";
"BazelBuildStartupOptionsRelease" = "Release";

"BazelContinueBuildingAfterError" = "Continue building after error";

"ImprovedImportAutocompletionFix" = "Improve #include/#import auto-completion through the use of USER_HEADER_SEARCH_PATHS";

"GenerateRunfiles" = "Generate the runfiles directory used as TEST_SRCDIR";

"ProjectPrioritizesSwift" = "Prioritize for Swift development instead of (Obj-)C(++)";
"ProjectPrioritizesSwift_DESC" = "Tulsi uses this to try to improve Bazel caching; set this if you anticipate that most of your builds inside of the generated xcodeproj depend on Swift in some way. Setting this incorrectly won't break your builds but it will potentially make them slower.";

"CommandlineArguments" = "Commandline arguments";
"EnvironmentVariables" = "Environment variables";

"PreActionScriptOptions" = "PreActionScripts";
"PostActionScriptOptions" = "PostActionScripts";
"BuildActionPreActionScript" = "Build";
"BuildActionPostActionScript" = "Build";
"LaunchActionPreActionScript" = "Run";
"LaunchActionPostActionScript" = "Run";
"TestActionPreActionScript" = "Test";
"TestActionPostActionScript" = "Test";

"SuppressSwiftUpdateCheck" = "Suppress Xcode Swift update check";
"SuppressSwiftUpdateCheck_DESC" = "Suppresses Xcode's update notification for projects containing Swift code. This asserts that the Swift code is at least version 2.1.";

"IncludeBuildSources" = "Include Bazel sources in the generated project.";
"IncludeBuildSources_DESC" = "Add .bzl and BUILD files related to selected targets in the generated Xcode project. This may slow down project generation significantly.";

