mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-22 16:07:49 +08:00
Xcode: Support "GPU Frame Capture" scheme property
Added XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE variable which sets the scheme property value for "GPU Frame Capture" in the Options section by setting the Xcode project variable "enableGPUFrameCaptureMode". Example values are "Metal" (1) and "Disabled" (3). XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE is initialized by the property CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE. Implements: #22700
This commit is contained in:
@@ -426,6 +426,7 @@ syn keyword cmakeProperty contained
|
||||
\ XCODE_SCHEME_ARGUMENTS
|
||||
\ XCODE_SCHEME_DEBUG_AS_ROOT
|
||||
\ XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING
|
||||
\ XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE
|
||||
\ XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER
|
||||
\ XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
|
||||
\ XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE
|
||||
@@ -1524,6 +1525,7 @@ syn keyword cmakeVariable contained
|
||||
\ CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER
|
||||
\ CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN
|
||||
\ CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING
|
||||
\ CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE
|
||||
\ CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER
|
||||
\ CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
|
||||
\ CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE
|
||||
|
@@ -426,6 +426,7 @@ Properties on Targets
|
||||
/prop_tgt/XCODE_SCHEME_ARGUMENTS
|
||||
/prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT
|
||||
/prop_tgt/XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING
|
||||
/prop_tgt/XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE
|
||||
/prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER
|
||||
/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
|
||||
/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE
|
||||
|
@@ -259,6 +259,7 @@ Variables that Change Behavior
|
||||
/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER
|
||||
/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN
|
||||
/variable/CMAKE_XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING
|
||||
/variable/CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE
|
||||
/variable/CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER
|
||||
/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
|
||||
/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE
|
||||
|
@@ -38,6 +38,7 @@ The following target properties will be applied on the
|
||||
- :prop_tgt:`XCODE_SCHEME_ARGUMENTS`
|
||||
- :prop_tgt:`XCODE_SCHEME_DEBUG_AS_ROOT`
|
||||
- :prop_tgt:`XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING`
|
||||
- :prop_tgt:`XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE`
|
||||
- :prop_tgt:`XCODE_SCHEME_ENVIRONMENT`
|
||||
- :prop_tgt:`XCODE_SCHEME_EXECUTABLE`
|
||||
- :prop_tgt:`XCODE_SCHEME_WORKING_DIRECTORY`
|
||||
|
15
Help/prop_tgt/XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE.rst
Normal file
15
Help/prop_tgt/XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE.rst
Normal file
@@ -0,0 +1,15 @@
|
||||
XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE
|
||||
------------------------------------------
|
||||
|
||||
.. versionadded:: 3.23
|
||||
|
||||
Property value for ``GPU Frame Capture`` in the Options section of
|
||||
the generated Xcode scheme. Example values are `Metal` and
|
||||
`Disabled`.
|
||||
|
||||
This property is initialized by the value of the variable
|
||||
:variable:`CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE`
|
||||
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.
|
@@ -0,0 +1,4 @@
|
||||
xcode-scheme-enable-gpu-frame-capture-mode
|
||||
------------------------------------------
|
||||
|
||||
* The Xcode project generation learned the variable `XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE` to enable specifying the Xcode scheme option property `GPU Frame Capture`.
|
@@ -0,0 +1,15 @@
|
||||
CMAKE_XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE
|
||||
------------------------------------------------
|
||||
|
||||
.. versionadded:: 3.23
|
||||
|
||||
Property value for ``GPU Frame Capture`` in the Options section of
|
||||
the generated Xcode scheme. Example values are `Metal` and
|
||||
`Disabled`.
|
||||
|
||||
This variable initializes the
|
||||
:prop_tgt:`XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE`
|
||||
property on all targets.
|
||||
|
||||
Please refer to the :prop_tgt:`XCODE_GENERATE_SCHEME` target property
|
||||
documentation to see all Xcode schema related properties.
|
@@ -395,6 +395,7 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type,
|
||||
initProp("XCODE_SCHEME_ADDRESS_SANITIZER");
|
||||
initProp("XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN");
|
||||
initProp("XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING");
|
||||
initProp("XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE");
|
||||
initProp("XCODE_SCHEME_THREAD_SANITIZER");
|
||||
initProp("XCODE_SCHEME_THREAD_SANITIZER_STOP");
|
||||
initProp("XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER");
|
||||
|
@@ -9,6 +9,8 @@
|
||||
|
||||
#include <cmext/algorithm>
|
||||
|
||||
#include "cmsys/String.h"
|
||||
|
||||
#include "cmGeneratedFileStream.h"
|
||||
#include "cmGeneratorExpression.h"
|
||||
#include "cmGeneratorTarget.h"
|
||||
@@ -148,6 +150,16 @@ void cmXCodeScheme::WriteLaunchAction(cmXMLWriter& xout,
|
||||
true);
|
||||
xout.Attribute("debugServiceExtension", "internal");
|
||||
xout.Attribute("allowLocationSimulation", "YES");
|
||||
if (cmValue gpuFrameCaptureMode = this->Target->GetTarget()->GetProperty(
|
||||
"XCODE_SCHEME_ENABLE_GPU_FRAME_CAPTURE_MODE")) {
|
||||
std::string value = *gpuFrameCaptureMode;
|
||||
if (cmsysString_strcasecmp(value.c_str(), "Metal") == 0) {
|
||||
value = "1";
|
||||
} else if (cmsysString_strcasecmp(value.c_str(), "Disabled") == 0) {
|
||||
value = "3";
|
||||
}
|
||||
xout.Attribute("enableGPUFrameCaptureMode", value);
|
||||
}
|
||||
|
||||
// Diagnostics tab begin
|
||||
|
||||
|
Reference in New Issue
Block a user