1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-21 23:00:50 +08:00

Xcode: Add settings to control a scheme's launch configuration

This commit is contained in:
PatriceJiang
2022-08-18 11:53:52 +08:00
committed by Brad King
parent 39456c70e1
commit 740bee97bd
9 changed files with 42 additions and 1 deletions

View File

@@ -447,6 +447,7 @@ syn keyword cmakeProperty contained
\ XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
\ XCODE_SCHEME_ENABLE_GPU_API_VALIDATION
\ XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION
\ XCODE_SCHEME_LAUNCH_CONFIGURATION
\ XCODE_SCHEME_WORKING_DIRECTORY
\ XCODE_SCHEME_ZOMBIE_OBJECTS
\ XCTEST
@@ -1551,6 +1552,7 @@ syn keyword cmakeVariable contained
\ CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
\ CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION
\ CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION
\ CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION
\ CMAKE_XCODE_SCHEME_WORKING_DIRECTORY
\ CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS
\ CPACK_ABSOLUTE_DESTINATION_FILES

View File

@@ -476,6 +476,7 @@ Properties on Targets
/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
/prop_tgt/XCODE_SCHEME_ENABLE_GPU_API_VALIDATION
/prop_tgt/XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION
/prop_tgt/XCODE_SCHEME_LAUNCH_CONFIGURATION
/prop_tgt/XCODE_SCHEME_WORKING_DIRECTORY
/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS
/prop_tgt/XCODE_XCCONFIG

View File

@@ -287,6 +287,7 @@ Variables that Change Behavior
/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP
/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
/variable/CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION
/variable/CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION
/variable/CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION
/variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY

View File

@@ -30,6 +30,7 @@ at target creation time.
- :prop_tgt:`XCODE_SCHEME_THREAD_SANITIZER_STOP`
- :prop_tgt:`XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER`
- :prop_tgt:`XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP`
- :prop_tgt:`XCODE_SCHEME_LAUNCH_CONFIGURATION`
- :prop_tgt:`XCODE_SCHEME_ENABLE_GPU_API_VALIDATION`
- :prop_tgt:`XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION`
- :prop_tgt:`XCODE_SCHEME_ZOMBIE_OBJECTS`

View File

@@ -0,0 +1,13 @@
XCODE_SCHEME_LAUNCH_CONFIGURATION
---------------------------------
.. versionadded:: 3.25
Set the build configuration to run the target.
This property is initialized by the value of the variable
:variable:`CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION`
if it is set when a target is created.
Please refer to the :prop_tgt:`XCODE_GENERATE_SCHEME` target property
documentation to see all Xcode schema related properties.

View File

@@ -5,3 +5,8 @@ xcode-launch-mode
:prop_tgt:`XCODE_SCHEME_LAUNCH_MODE` target property were added to tell
the :generator:`Xcode` generator what to put in the scheme's "Launch"
mode setting.
* The :variable:`CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION` variable and
corresponding :prop_tgt:`XCODE_SCHEME_LAUNCH_CONFIGURATION` target
property were added to tell the :generator:`Xcode` generator what
configuration to put in the scheme's Launch action.

View File

@@ -0,0 +1,12 @@
CMAKE_XCODE_SCHEME_LAUNCH_CONFIGURATION
---------------------------------------
.. versionadded:: 3.25
Set the build configuration to run the target.
This variable initializes the :prop_tgt:`XCODE_SCHEME_LAUNCH_CONFIGURATION`
property on all targets.
Please refer to the :prop_tgt:`XCODE_GENERATE_SCHEME` target property
documentation to see all Xcode schema related properties.

View File

@@ -620,6 +620,7 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type,
initProp("XCODE_SCHEME_THREAD_SANITIZER_STOP");
initProp("XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER");
initProp("XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP");
initProp("XCODE_SCHEME_LAUNCH_CONFIGURATION");
initProp("XCODE_SCHEME_ENABLE_GPU_API_VALIDATION");
initProp("XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION");
initProp("XCODE_SCHEME_WORKING_DIRECTORY");

View File

@@ -67,9 +67,14 @@ void cmXCodeScheme::WriteXCodeXCScheme(std::ostream& fout,
xout.Attribute("LastUpgradeVersion", WriteVersionString());
xout.Attribute("version", "1.3");
cmValue propDftCfg =
Target->GetTarget()->GetProperty("XCODE_SCHEME_LAUNCH_CONFIGURATION");
std::string launchConfiguration =
!propDftCfg.IsEmpty() ? *propDftCfg : "Debug";
WriteBuildAction(xout, container);
WriteTestAction(xout, FindConfiguration("Debug"), container);
WriteLaunchAction(xout, FindConfiguration("Debug"), container);
WriteLaunchAction(xout, FindConfiguration(launchConfiguration), container);
WriteProfileAction(xout, FindConfiguration("Release"));
WriteAnalyzeAction(xout, FindConfiguration("Debug"));
WriteArchiveAction(xout, FindConfiguration("Release"));