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 GPU Validation values
This commit is contained in:
@@ -445,6 +445,8 @@ syn keyword cmakeProperty contained
|
|||||||
\ XCODE_SCHEME_THREAD_SANITIZER_STOP
|
\ XCODE_SCHEME_THREAD_SANITIZER_STOP
|
||||||
\ XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
|
\ XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
|
||||||
\ XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
|
\ XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
|
||||||
|
\ XCODE_SCHEME_ENABLE_GPU_API_VALIDATION
|
||||||
|
\ XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION
|
||||||
\ XCODE_SCHEME_WORKING_DIRECTORY
|
\ XCODE_SCHEME_WORKING_DIRECTORY
|
||||||
\ XCODE_SCHEME_ZOMBIE_OBJECTS
|
\ XCODE_SCHEME_ZOMBIE_OBJECTS
|
||||||
\ XCTEST
|
\ XCTEST
|
||||||
@@ -1547,6 +1549,8 @@ syn keyword cmakeVariable contained
|
|||||||
\ CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP
|
\ CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP
|
||||||
\ CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
|
\ CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
|
||||||
\ CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
|
\ CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
|
||||||
|
\ CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION
|
||||||
|
\ CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION
|
||||||
\ CMAKE_XCODE_SCHEME_WORKING_DIRECTORY
|
\ CMAKE_XCODE_SCHEME_WORKING_DIRECTORY
|
||||||
\ CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS
|
\ CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS
|
||||||
\ CPACK_ABSOLUTE_DESTINATION_FILES
|
\ CPACK_ABSOLUTE_DESTINATION_FILES
|
||||||
|
@@ -474,6 +474,8 @@ Properties on Targets
|
|||||||
/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP
|
/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP
|
||||||
/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
|
/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
|
||||||
/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
|
/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_WORKING_DIRECTORY
|
/prop_tgt/XCODE_SCHEME_WORKING_DIRECTORY
|
||||||
/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS
|
/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS
|
||||||
/prop_tgt/XCODE_XCCONFIG
|
/prop_tgt/XCODE_XCCONFIG
|
||||||
|
@@ -287,6 +287,8 @@ Variables that Change Behavior
|
|||||||
/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP
|
/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP
|
||||||
/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
|
/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
|
||||||
/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
|
/variable/CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
|
||||||
|
/variable/CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION
|
||||||
|
/variable/CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION
|
||||||
/variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY
|
/variable/CMAKE_XCODE_SCHEME_WORKING_DIRECTORY
|
||||||
/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS
|
/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS
|
||||||
/variable/CMAKE_XCODE_XCCONFIG
|
/variable/CMAKE_XCODE_XCCONFIG
|
||||||
|
@@ -30,6 +30,8 @@ at target creation time.
|
|||||||
- :prop_tgt:`XCODE_SCHEME_THREAD_SANITIZER_STOP`
|
- :prop_tgt:`XCODE_SCHEME_THREAD_SANITIZER_STOP`
|
||||||
- :prop_tgt:`XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER`
|
- :prop_tgt:`XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER`
|
||||||
- :prop_tgt:`XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP`
|
- :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_ZOMBIE_OBJECTS`
|
- :prop_tgt:`XCODE_SCHEME_ZOMBIE_OBJECTS`
|
||||||
|
|
||||||
The following target properties will be applied on the
|
The following target properties will be applied on the
|
||||||
|
14
Help/prop_tgt/XCODE_SCHEME_ENABLE_GPU_API_VALIDATION.rst
Normal file
14
Help/prop_tgt/XCODE_SCHEME_ENABLE_GPU_API_VALIDATION.rst
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
XCODE_SCHEME_ENABLE_GPU_API_VALIDATION
|
||||||
|
--------------------------------------
|
||||||
|
|
||||||
|
.. versionadded:: 3.25
|
||||||
|
|
||||||
|
Property value for ``Metal: API Validation`` in the Options section of
|
||||||
|
the generated Xcode scheme.
|
||||||
|
|
||||||
|
This property is initialized by the value of the variable
|
||||||
|
:variable:`CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION`
|
||||||
|
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.
|
14
Help/prop_tgt/XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION.rst
Normal file
14
Help/prop_tgt/XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION.rst
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION
|
||||||
|
-----------------------------------------
|
||||||
|
|
||||||
|
.. versionadded:: 3.25
|
||||||
|
|
||||||
|
Property value for ``Metal: Shader Validation`` in the Options section of
|
||||||
|
the generated Xcode scheme.
|
||||||
|
|
||||||
|
This property is initialized by the value of the variable
|
||||||
|
:variable:`CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION`
|
||||||
|
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.
|
12
Help/release/dev/xcode-gpu-validation.rst
Normal file
12
Help/release/dev/xcode-gpu-validation.rst
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
xcode-gpu-validation
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
* The :variable:`CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION` variable and
|
||||||
|
corresponding :prop_tgt:`XCODE_SCHEME_ENABLE_GPU_API_VALIDATION` target
|
||||||
|
property were added to tell the :generator:`Xcode` generator what to put
|
||||||
|
in the scheme's ``Metal: API Validation`` setting.
|
||||||
|
|
||||||
|
* The :variable:`CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION` variable and
|
||||||
|
corresponding :prop_tgt:`XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION` target
|
||||||
|
property were added to tell the :generator:`Xcode` generator what to put
|
||||||
|
in the scheme's ``Metal: Shader Validation`` setting.
|
@@ -0,0 +1,13 @@
|
|||||||
|
CMAKE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION
|
||||||
|
--------------------------------------------
|
||||||
|
|
||||||
|
.. versionadded:: 3.25
|
||||||
|
|
||||||
|
Property value for ``Metal: API Validation`` in the Options section of
|
||||||
|
the generated Xcode scheme.
|
||||||
|
|
||||||
|
This variable initializes the
|
||||||
|
:prop_tgt:`XCODE_SCHEME_ENABLE_GPU_API_VALIDATION` property on all targets.
|
||||||
|
|
||||||
|
Please refer to the :prop_tgt:`XCODE_GENERATE_SCHEME` target property
|
||||||
|
documentation to see all Xcode schema related properties.
|
@@ -0,0 +1,13 @@
|
|||||||
|
CMAKE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION
|
||||||
|
-----------------------------------------------
|
||||||
|
|
||||||
|
.. versionadded:: 3.25
|
||||||
|
|
||||||
|
Property value for ``Metal: Shader Validation`` in the Options section of
|
||||||
|
the generated Xcode scheme.
|
||||||
|
|
||||||
|
This variable initializes the
|
||||||
|
:prop_tgt:`XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION` property on all targets.
|
||||||
|
|
||||||
|
Please refer to the :prop_tgt:`XCODE_GENERATE_SCHEME` target property
|
||||||
|
documentation to see all Xcode schema related properties.
|
@@ -620,6 +620,8 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type,
|
|||||||
initProp("XCODE_SCHEME_THREAD_SANITIZER_STOP");
|
initProp("XCODE_SCHEME_THREAD_SANITIZER_STOP");
|
||||||
initProp("XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER");
|
initProp("XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER");
|
||||||
initProp("XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP");
|
initProp("XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP");
|
||||||
|
initProp("XCODE_SCHEME_ENABLE_GPU_API_VALIDATION");
|
||||||
|
initProp("XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION");
|
||||||
initProp("XCODE_SCHEME_WORKING_DIRECTORY");
|
initProp("XCODE_SCHEME_WORKING_DIRECTORY");
|
||||||
initProp("XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER");
|
initProp("XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER");
|
||||||
initProp("XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP");
|
initProp("XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP");
|
||||||
|
@@ -198,6 +198,23 @@ void cmXCodeScheme::WriteLaunchAction(cmXMLWriter& xout,
|
|||||||
|
|
||||||
WriteLaunchActionAttribute(xout, "enableUBSanitizer",
|
WriteLaunchActionAttribute(xout, "enableUBSanitizer",
|
||||||
"XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER");
|
"XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER");
|
||||||
|
|
||||||
|
if (cmValue value = this->Target->GetTarget()->GetProperty(
|
||||||
|
"XCODE_SCHEME_ENABLE_GPU_API_VALIDATION")) {
|
||||||
|
if (value.IsOff()) {
|
||||||
|
xout.Attribute("enableGPUValidationMode",
|
||||||
|
"1"); // unset means YES, "1" means NO
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cmValue value = this->Target->GetTarget()->GetProperty(
|
||||||
|
"XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION")) {
|
||||||
|
if (value.IsOn()) {
|
||||||
|
xout.Attribute("enableGPUShaderValidationMode",
|
||||||
|
"2"); // unset means NO, "2" means YES
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
WriteLaunchActionAttribute(
|
WriteLaunchActionAttribute(
|
||||||
xout, "stopOnEveryUBSanitizerIssue",
|
xout, "stopOnEveryUBSanitizerIssue",
|
||||||
"XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP");
|
"XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP");
|
||||||
|
@@ -29,6 +29,8 @@ check_property("UNDEFINED_BEHAVIOUR_SANITIZER" "enableUBSanitizer")
|
|||||||
check_property("UNDEFINED_BEHAVIOUR_SANITIZER_STOP" "stopOnEveryUBSanitizerIssue")
|
check_property("UNDEFINED_BEHAVIOUR_SANITIZER_STOP" "stopOnEveryUBSanitizerIssue")
|
||||||
check_property("DISABLE_MAIN_THREAD_CHECKER" "disableMainThreadChecker")
|
check_property("DISABLE_MAIN_THREAD_CHECKER" "disableMainThreadChecker")
|
||||||
check_property("MAIN_THREAD_CHECKER_STOP" "stopOnEveryMainThreadCheckerIssue")
|
check_property("MAIN_THREAD_CHECKER_STOP" "stopOnEveryMainThreadCheckerIssue")
|
||||||
|
check_property("DISABLE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION" "enableGPUValidationMode")
|
||||||
|
check_property("ENABLE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION" "enableGPUShaderValidationMode")
|
||||||
|
|
||||||
check_property("MALLOC_SCRIBBLE" "MallocScribble")
|
check_property("MALLOC_SCRIBBLE" "MallocScribble")
|
||||||
check_property("MALLOC_GUARD_EDGES" "MallocGuardEdges")
|
check_property("MALLOC_GUARD_EDGES" "MallocGuardEdges")
|
||||||
|
@@ -32,6 +32,8 @@ function(create_scheme_for_property scheme property value)
|
|||||||
set_target_properties(${scheme} PROPERTIES XCODE_SCHEME_${property} "${value}")
|
set_target_properties(${scheme} PROPERTIES XCODE_SCHEME_${property} "${value}")
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
create_scheme_for_property(DISABLE_XCODE_SCHEME_ENABLE_GPU_API_VALIDATION ENABLE_GPU_API_VALIDATION OFF)
|
||||||
|
create_scheme_for_property(ENABLE_XCODE_SCHEME_ENABLE_GPU_SHADER_VALIDATION ENABLE_GPU_SHADER_VALIDATION ON)
|
||||||
create_scheme_for_property(ENABLE_GPU_FRAME_CAPTURE_MODE_1 ENABLE_GPU_FRAME_CAPTURE_MODE 1)
|
create_scheme_for_property(ENABLE_GPU_FRAME_CAPTURE_MODE_1 ENABLE_GPU_FRAME_CAPTURE_MODE 1)
|
||||||
create_scheme_for_property(ENABLE_GPU_FRAME_CAPTURE_MODE_3 ENABLE_GPU_FRAME_CAPTURE_MODE 3)
|
create_scheme_for_property(ENABLE_GPU_FRAME_CAPTURE_MODE_3 ENABLE_GPU_FRAME_CAPTURE_MODE 3)
|
||||||
create_scheme_for_property(ENABLE_GPU_FRAME_CAPTURE_MODE_DISABLED ENABLE_GPU_FRAME_CAPTURE_MODE Disabled)
|
create_scheme_for_property(ENABLE_GPU_FRAME_CAPTURE_MODE_DISABLED ENABLE_GPU_FRAME_CAPTURE_MODE Disabled)
|
||||||
|
Reference in New Issue
Block a user