/*
  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";
"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.";

"ProjectGenerationBazelStartupOptions" = "'build' startup options used for project generation.";
"ProjectGenerationBazelStartupOptions_DESC" = "Modify this to add startup options for bazel invocations during project generation. Note: Modifying this will trigger a server restart between project generation and building, so the first build after generating the project will be slower than usual.";

"BazelBuildStartupOptions" = "'build' startup options";
"BazelBuildStartupOptions_DESC" = "Startup options for bazel 'build' invocations.";
"BazelBuildStartupOptionsDebug" = "Debug";
"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";

"PathFiltersApplyToTestSources" = "Filter test targets' sources using the project's path filters";

"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.";

"Use64BitWatchSimulator" = "Building for watchOS simulator on Xcode 12";
"Use4BitWatchSimulator_DESC" = "Enable this option if you are using Xcode 12 or greater and building watchOS apps for the simulator OR building iOS apps that include a watchOS app. The default architecture when building an iOS app with a watchOS app is incompatible with Xcode 12.";

"UseLegacyBuildSystem" = "Use legacy build system";
"UseLegacyBuildSystem_DESC" = "Swaps between Xcode's legacy build system and new build system.";

"DisableCustomLLDBInit" = "Disable project-level lldbinit";
"DisableCustomLLDBInit_DESC" = "When this option is enabled, Tulsi will revert to using and modifying the global lldbinit to import the shared ~/.lldbinit-tulsiproj file. When this option is disabled (default), Tulsi will generate a dedicated lldbinit and bundle it with an Xcode project. The dedicated lldbinit will import the global lldbinit file.";

"UseBazelCacheReader" = "Enable fallback dSYM searches";
"UseBazelCacheReader_DESC" = "When this option is enabled, Tulsi will maintain a SQL database to track dSYMs and query the table for each executable/library in all debug sessions. This may result in a hit on debugging attach times, so enable this option only when dSYMs are required and Spotlight is unable to find dSYMs automatically.";

"CLANG_CXX_LANGUAGE_STANDARD" = "C++ language standard";
"CLANG_CXX_LANGUAGE_STANDARD_DESC" = "Sets the C++ language standard project wide to prevent any false live issue errors involving certain C++ features.";

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

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

"PreBuildPhaseRunScript" = "Build phase run script (pre bazel build)";
"PreBuildPhaseRunScript_DESC" = "Build phase run script that runs before the bazel_build.py script (i.e. `exec ${PATH_TO_SCRIPT}')";
"PostBuildPhaseRunScript" = "Build phase run script (post bazel build)";
"PostBuildPhaseRunScript_DESC" = "Build phase run script that runs after the bazel_build.py script (i.e. `exec ${PATH_TO_SCRIPT}')";

"SwiftForcesdSYMs" = "Swift code dependency enables dSYMs (optional for debugging after 10.2.1)";
"TreeArtifactOutputs" = "Enable tree artifact outputs (--define=apple.experimental.tree_artifact_outputs=1). Disable if you're having issues.";

"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.";

