mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-31 10:50:16 -06:00
Xcode: Add variables and properties to configure schemes
Add `XCODE_SCHEME_*` target properties and associated variables `CMAKE_XCODE_SCHEME_*` to initialize them on target creation. Map each target property value to an associated Xcode scheme entry. Co-Author: Martin Sander <mail@martin-sander.de> Fixes: #17919
This commit is contained in:
@@ -339,6 +339,24 @@ Properties on Targets
|
||||
/prop_tgt/XCODE_ATTRIBUTE_an-attribute
|
||||
/prop_tgt/XCODE_EXPLICIT_FILE_TYPE
|
||||
/prop_tgt/XCODE_PRODUCT_TYPE
|
||||
/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER
|
||||
/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN
|
||||
/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER
|
||||
/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_DISABLE_MAIN_THREAD_CHECKER
|
||||
/prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP
|
||||
/prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE
|
||||
/prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES
|
||||
/prop_tgt/XCODE_SCHEME_GUARD_MALLOC
|
||||
/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS
|
||||
/prop_tgt/XCODE_SCHEME_MALLOC_STACK
|
||||
/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE
|
||||
/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
|
||||
/prop_tgt/XCODE_SCHEME_EXECUTABLE
|
||||
/prop_tgt/XCODE_SCHEME_ARGUMENTS
|
||||
/prop_tgt/XCODE_SCHEME_ENVIRONMENT
|
||||
/prop_tgt/XCTEST
|
||||
|
||||
.. _`Test Properties`:
|
||||
|
||||
@@ -204,6 +204,21 @@ Variables that Change Behavior
|
||||
/variable/CMAKE_WARN_DEPRECATED
|
||||
/variable/CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION
|
||||
/variable/CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY
|
||||
/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER
|
||||
/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN
|
||||
/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER
|
||||
/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_DISABLE_MAIN_THREAD_CHECKER
|
||||
/variable/CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP
|
||||
/variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE
|
||||
/variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES
|
||||
/variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC
|
||||
/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS
|
||||
/variable/CMAKE_XCODE_SCHEME_MALLOC_STACK
|
||||
/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE
|
||||
/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
|
||||
/variable/PackageName_ROOT
|
||||
|
||||
Variables that Describe the System
|
||||
|
||||
12
Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER.rst
Normal file
12
Help/prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
XCODE_SCHEME_ADDRESS_SANITIZER
|
||||
------------------------------
|
||||
|
||||
Whether to enable ``Address Sanitizer`` in the Diagnostics
|
||||
section of the generated Xcode scheme.
|
||||
|
||||
This property is initialized by the value of the variable
|
||||
:variable:`CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER` if it is set
|
||||
when a target is created.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
@@ -0,0 +1,12 @@
|
||||
XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN
|
||||
-----------------------------------------------
|
||||
|
||||
Whether to enable ``Detect use of stack after return``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This property is initialized by the value of the variable
|
||||
:variable:`CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN`
|
||||
if it is set when a target is created.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
10
Help/prop_tgt/XCODE_SCHEME_ARGUMENTS.rst
Normal file
10
Help/prop_tgt/XCODE_SCHEME_ARGUMENTS.rst
Normal file
@@ -0,0 +1,10 @@
|
||||
XCODE_SCHEME_ARGUMENTS
|
||||
----------------------
|
||||
|
||||
Specify command line arguments that should be added to the Arguments
|
||||
section of the generated Xcode scheme.
|
||||
|
||||
If set to a list of arguments those will be added to the scheme.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
12
Help/prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst
Normal file
12
Help/prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER
|
||||
----------------------------------------
|
||||
|
||||
Whether to disable the ``Main Thread Checker``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This property is initialized by the value of the variable
|
||||
:variable:`CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER`
|
||||
if it is set when a target is created.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
12
Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
Normal file
12
Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
|
||||
----------------------------------
|
||||
|
||||
Whether to enable ``Dynamic Library Loads``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This property is initialized by the value of the variable
|
||||
:variable:`CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS` if it is set
|
||||
when a target is created.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
12
Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst
Normal file
12
Help/prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE
|
||||
-------------------------------------
|
||||
|
||||
Whether to enable ``Dynamic Linker API usage``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This property is initialized by the value of the variable
|
||||
:variable:`CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE` if it is set
|
||||
when a target is created.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
12
Help/prop_tgt/XCODE_SCHEME_ENVIRONMENT.rst
Normal file
12
Help/prop_tgt/XCODE_SCHEME_ENVIRONMENT.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
XCODE_SCHEME_ENVIRONMENT
|
||||
------------------------
|
||||
|
||||
Specify environment variables that should be added to the Arguments
|
||||
section of the generated Xcode scheme.
|
||||
|
||||
If set to a list of environment variables and values of the form
|
||||
``MYVAR=value`` those environment variables will be added to the
|
||||
scheme.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
9
Help/prop_tgt/XCODE_SCHEME_EXECUTABLE.rst
Normal file
9
Help/prop_tgt/XCODE_SCHEME_EXECUTABLE.rst
Normal file
@@ -0,0 +1,9 @@
|
||||
XCODE_SCHEME_EXECUTABLE
|
||||
-----------------------
|
||||
|
||||
Specify path to executable in the Info section of the generated
|
||||
Xcode scheme. If not set the schema generator will select the
|
||||
current target if it is actually executable.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
12
Help/prop_tgt/XCODE_SCHEME_GUARD_MALLOC.rst
Normal file
12
Help/prop_tgt/XCODE_SCHEME_GUARD_MALLOC.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
XCODE_SCHEME_GUARD_MALLOC
|
||||
------------------------------
|
||||
|
||||
Whether to enable ``Guard Malloc``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This property is initialized by the value of the variable
|
||||
:variable:`CMAKE_XCODE_SCHEME_GUARD_MALLOC` if it is set
|
||||
when a target is created.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
13
Help/prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst
Normal file
13
Help/prop_tgt/XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP.rst
Normal file
@@ -0,0 +1,13 @@
|
||||
XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP
|
||||
-------------------------------------
|
||||
|
||||
Whether to enable the ``Main Thread Checker`` option
|
||||
``Pause on issues``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This property is initialized by the value of the variable
|
||||
:variable:`CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP` if it is set
|
||||
when a target is created.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
12
Help/prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
Normal file
12
Help/prop_tgt/XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
XCODE_SCHEME_MALLOC_GUARD_EDGES
|
||||
-------------------------------
|
||||
|
||||
Whether to enable ``Malloc Guard Edges``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This property is initialized by the value of the variable
|
||||
:variable:`CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES` if it is set
|
||||
when a target is created.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
12
Help/prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE.rst
Normal file
12
Help/prop_tgt/XCODE_SCHEME_MALLOC_SCRIBBLE.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
XCODE_SCHEME_MALLOC_SCRIBBLE
|
||||
------------------------------
|
||||
|
||||
Whether to enable ``Malloc Scribble``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This property is initialized by the value of the variable
|
||||
:variable:`CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE` if it is set
|
||||
when a target is created.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
12
Help/prop_tgt/XCODE_SCHEME_MALLOC_STACK.rst
Normal file
12
Help/prop_tgt/XCODE_SCHEME_MALLOC_STACK.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
XCODE_SCHEME_MALLOC_STACK
|
||||
-------------------------
|
||||
|
||||
Whether to enable ``Malloc Stack`` in the Diagnostics
|
||||
section of the generated Xcode scheme.
|
||||
|
||||
This property is initialized by the value of the variable
|
||||
:variable:`CMAKE_XCODE_SCHEME_MALLOC_STACK` if it is set
|
||||
when a target is created.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
12
Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER.rst
Normal file
12
Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
XCODE_SCHEME_THREAD_SANITIZER
|
||||
-----------------------------
|
||||
|
||||
Whether to enable ``Thread Sanitizer`` in the Diagnostics
|
||||
section of the generated Xcode scheme.
|
||||
|
||||
This property is initialized by the value of the variable
|
||||
:variable:`CMAKE_XCODE_SCHEME_THREAD_SANITIZER` if it is set
|
||||
when a target is created.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
12
Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
Normal file
12
Help/prop_tgt/XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
XCODE_SCHEME_THREAD_SANITIZER_STOP
|
||||
----------------------------------
|
||||
|
||||
Whether to enable ``Thread Sanitizer - Pause on issues``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This property is initialized by the value of the variable
|
||||
:variable:`CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP` if it is set
|
||||
when a target is created.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
12
Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst
Normal file
12
Help/prop_tgt/XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
|
||||
------------------------------------------
|
||||
|
||||
Whether to enable ``Undefined Behavior Sanitizer``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This property is initialized by the value of the variable
|
||||
:variable:`CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER`
|
||||
if it is set when a target is created.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
@@ -0,0 +1,13 @@
|
||||
XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
|
||||
-----------------------------------------------
|
||||
|
||||
Whether to enable ``Undefined Behavior Sanitizer`` option
|
||||
``Pause on issues``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This property is initialized by the value of the variable
|
||||
:variable:`CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP`
|
||||
if it is set when a target is created.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
12
Help/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS.rst
Normal file
12
Help/prop_tgt/XCODE_SCHEME_ZOMBIE_OBJECTS.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
XCODE_SCHEME_ZOMBIE_OBJECTS
|
||||
------------------------------
|
||||
|
||||
Whether to enable ``Zombie Objects``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This property is initialized by the value of the variable
|
||||
:variable:`CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS` if it is set
|
||||
when a target is created.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
5
Help/release/dev/xcode_schemes_config.rst
Normal file
5
Help/release/dev/xcode_schemes_config.rst
Normal file
@@ -0,0 +1,5 @@
|
||||
xcode_schemes_config
|
||||
--------------------
|
||||
|
||||
* The :generator:`Xcode` generator learned to configure more Xcode Scheme
|
||||
fields. See the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable.
|
||||
@@ -9,3 +9,31 @@ actions from the command line.
|
||||
|
||||
The Xcode Schema Generator is still experimental and subject to
|
||||
change.
|
||||
|
||||
The following target properties overwrite the default of the
|
||||
corresponding settings on the "Diagnostic" tab for each schema file.
|
||||
Each of those is initialized by the respective ``CMAKE_`` variable
|
||||
at target creation time.
|
||||
|
||||
- :prop_tgt:`XCODE_SCHEME_ADDRESS_SANITIZER`
|
||||
- :prop_tgt:`XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN`
|
||||
- :prop_tgt:`XCODE_SCHEME_THREAD_SANITIZER`
|
||||
- :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_DISABLE_MAIN_THREAD_CHECKER`
|
||||
- :prop_tgt:`XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP`
|
||||
- :prop_tgt:`XCODE_SCHEME_MALLOC_SCRIBBLE`
|
||||
- :prop_tgt:`XCODE_SCHEME_MALLOC_GUARD_EDGES`
|
||||
- :prop_tgt:`XCODE_SCHEME_GUARD_MALLOC`
|
||||
- :prop_tgt:`XCODE_SCHEME_ZOMBIE_OBJECTS`
|
||||
- :prop_tgt:`XCODE_SCHEME_MALLOC_STACK`
|
||||
- :prop_tgt:`XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE`
|
||||
- :prop_tgt:`XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS`
|
||||
|
||||
The following target properties will be applied on the
|
||||
"Info" and "Arguments" tab:
|
||||
|
||||
- :prop_tgt:`XCODE_SCHEME_EXECUTABLE`
|
||||
- :prop_tgt:`XCODE_SCHEME_ARGUMENTS`
|
||||
- :prop_tgt:`XCODE_SCHEME_ENVIRONMENT`
|
||||
|
||||
12
Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER.rst
Normal file
12
Help/variable/CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER
|
||||
------------------------------------
|
||||
|
||||
Whether to enable ``Address Sanitizer`` in the Diagnostics
|
||||
section of the generated Xcode scheme.
|
||||
|
||||
This variable initializes the
|
||||
:prop_tgt:`XCODE_SCHEME_ADDRESS_SANITIZER`
|
||||
property on all targets.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
@@ -0,0 +1,12 @@
|
||||
CMAKE_XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN
|
||||
-----------------------------------------------------
|
||||
|
||||
Whether to enable ``Detect use of stack after return``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This variable initializes the
|
||||
:prop_tgt:`XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN`
|
||||
property on all targets.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
@@ -0,0 +1,12 @@
|
||||
CMAKE_XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER
|
||||
----------------------------------------------
|
||||
|
||||
Whether to disable the ``Main Thread Checker``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This variable initializes the
|
||||
:prop_tgt:`XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER`
|
||||
property on all targets.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
12
Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
Normal file
12
Help/variable/CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
CMAKE_XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
|
||||
----------------------------------------
|
||||
|
||||
Whether to enable ``Dynamic Library Loads``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This variable initializes the
|
||||
:prop_tgt:`XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS`
|
||||
property on all targets.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
@@ -0,0 +1,12 @@
|
||||
CMAKE_XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE
|
||||
-------------------------------------------
|
||||
|
||||
Whether to enable ``Dynamic Linker API usage``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This variable initializes the
|
||||
:prop_tgt:`XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE`
|
||||
property on all targets.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
12
Help/variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC.rst
Normal file
12
Help/variable/CMAKE_XCODE_SCHEME_GUARD_MALLOC.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
CMAKE_XCODE_SCHEME_GUARD_MALLOC
|
||||
-------------------------------
|
||||
|
||||
Whether to enable ``Guard Malloc``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This variable initializes the
|
||||
:prop_tgt:`XCODE_SCHEME_GUARD_MALLOC`
|
||||
property on all targets.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
@@ -0,0 +1,13 @@
|
||||
CMAKE_XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP
|
||||
-------------------------------------------
|
||||
|
||||
Whether to enable the ``Main Thread Checker`` option
|
||||
``Pause on issues``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This variable initializes the
|
||||
:prop_tgt:`XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP`
|
||||
property on all targets.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
12
Help/variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
Normal file
12
Help/variable/CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
CMAKE_XCODE_SCHEME_MALLOC_GUARD_EDGES
|
||||
-------------------------------------
|
||||
|
||||
Whether to enable ``Malloc Guard Edges``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This variable initializes the
|
||||
:prop_tgt:`XCODE_SCHEME_MALLOC_GUARD_EDGES`
|
||||
property on all targets.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
12
Help/variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE.rst
Normal file
12
Help/variable/CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
CMAKE_XCODE_SCHEME_MALLOC_SCRIBBLE
|
||||
----------------------------------
|
||||
|
||||
Whether to enable ``Malloc Scribble``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This variable initializes the
|
||||
:prop_tgt:`XCODE_SCHEME_MALLOC_SCRIBBLE`
|
||||
property on all targets.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
12
Help/variable/CMAKE_XCODE_SCHEME_MALLOC_STACK.rst
Normal file
12
Help/variable/CMAKE_XCODE_SCHEME_MALLOC_STACK.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
CMAKE_XCODE_SCHEME_MALLOC_STACK
|
||||
-------------------------------
|
||||
|
||||
Whether to enable ``Malloc Stack`` in the Diagnostics
|
||||
section of the generated Xcode scheme.
|
||||
|
||||
This variable initializes the
|
||||
:prop_tgt:`XCODE_SCHEME_MALLOC_STACK`
|
||||
property on all targets.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
12
Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER.rst
Normal file
12
Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
CMAKE_XCODE_SCHEME_THREAD_SANITIZER
|
||||
-----------------------------------
|
||||
|
||||
Whether to enable ``Thread Sanitizer`` in the Diagnostics
|
||||
section of the generated Xcode scheme.
|
||||
|
||||
This variable initializes the
|
||||
:prop_tgt:`XCODE_SCHEME_THREAD_SANITIZER`
|
||||
property on all targets.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
12
Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
Normal file
12
Help/variable/CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
CMAKE_XCODE_SCHEME_THREAD_SANITIZER_STOP
|
||||
----------------------------------------
|
||||
|
||||
Whether to enable ``Thread Sanitizer - Pause on issues``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This variable initializes the
|
||||
:prop_tgt:`XCODE_SCHEME_THREAD_SANITIZER_STOP`
|
||||
property on all targets.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
@@ -0,0 +1,12 @@
|
||||
CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER
|
||||
------------------------------------------------
|
||||
|
||||
Whether to enable ``Undefined Behavior Sanitizer``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This variable initializes the
|
||||
:prop_tgt:`XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER`
|
||||
property on all targets.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
@@ -0,0 +1,13 @@
|
||||
CMAKE_XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP
|
||||
-----------------------------------------------------
|
||||
|
||||
Whether to enable ``Undefined Behavior Sanitizer`` option
|
||||
``Pause on issues``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This variable initializes the
|
||||
:prop_tgt:`XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP`
|
||||
property on all targets.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
12
Help/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS.rst
Normal file
12
Help/variable/CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS.rst
Normal file
@@ -0,0 +1,12 @@
|
||||
CMAKE_XCODE_SCHEME_ZOMBIE_OBJECTS
|
||||
---------------------------------
|
||||
|
||||
Whether to enable ``Zombie Objects``
|
||||
in the Diagnostics section of the generated Xcode scheme.
|
||||
|
||||
This variable initializes the
|
||||
:prop_tgt:`XCODE_SCHEME_ZOMBIE_OBJECTS`
|
||||
property on all targets.
|
||||
|
||||
Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
|
||||
documentation to see all Xcode schema related properties.
|
||||
@@ -278,6 +278,31 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type,
|
||||
this->SetPropertyDefault("LINK_SEARCH_START_STATIC", nullptr);
|
||||
this->SetPropertyDefault("LINK_SEARCH_END_STATIC", nullptr);
|
||||
this->SetPropertyDefault("FOLDER", nullptr);
|
||||
#ifdef __APPLE__
|
||||
if (this->GetGlobalGenerator()->IsXcode()) {
|
||||
this->SetPropertyDefault("XCODE_SCHEME_ADDRESS_SANITIZER", nullptr);
|
||||
this->SetPropertyDefault(
|
||||
"XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN", nullptr);
|
||||
this->SetPropertyDefault("XCODE_SCHEME_THREAD_SANITIZER", nullptr);
|
||||
this->SetPropertyDefault("XCODE_SCHEME_THREAD_SANITIZER_STOP", nullptr);
|
||||
this->SetPropertyDefault("XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER",
|
||||
nullptr);
|
||||
this->SetPropertyDefault(
|
||||
"XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP", nullptr);
|
||||
this->SetPropertyDefault("XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER",
|
||||
nullptr);
|
||||
this->SetPropertyDefault("XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP",
|
||||
nullptr);
|
||||
this->SetPropertyDefault("XCODE_SCHEME_MALLOC_SCRIBBLE", nullptr);
|
||||
this->SetPropertyDefault("XCODE_SCHEME_MALLOC_GUARD_EDGES", nullptr);
|
||||
this->SetPropertyDefault("XCODE_SCHEME_GUARD_MALLOC", nullptr);
|
||||
this->SetPropertyDefault("XCODE_SCHEME_ZOMBIE_OBJECTS", nullptr);
|
||||
this->SetPropertyDefault("XCODE_SCHEME_MALLOC_STACK", nullptr);
|
||||
this->SetPropertyDefault("XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE",
|
||||
nullptr);
|
||||
this->SetPropertyDefault("XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS", nullptr);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
// Collect the set of configuration types.
|
||||
|
||||
@@ -143,6 +143,41 @@ void cmXCodeScheme::WriteLaunchAction(cmXMLWriter& xout,
|
||||
xout.Attribute("debugServiceExtension", "internal");
|
||||
xout.Attribute("allowLocationSimulation", "YES");
|
||||
|
||||
// Diagnostics tab begin
|
||||
|
||||
bool useAddressSanitizer = WriteLaunchActionAttribute(
|
||||
xout, "enableAddressSanitizer",
|
||||
"XCODE_SCHEME_ADDRESS_SANITIZER"); // not allowed with
|
||||
// enableThreadSanitizer=YES
|
||||
WriteLaunchActionAttribute(
|
||||
xout, "enableASanStackUseAfterReturn",
|
||||
"XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN");
|
||||
|
||||
bool useThreadSanitizer = false;
|
||||
if (!useAddressSanitizer) {
|
||||
useThreadSanitizer = WriteLaunchActionAttribute(
|
||||
xout, "enableThreadSanitizer",
|
||||
"XCODE_SCHEME_THREAD_SANITIZER"); // not allowed with
|
||||
// enableAddressSanitizer=YES
|
||||
}
|
||||
|
||||
WriteLaunchActionAttribute(xout, "stopOnEveryThreadSanitizerIssue",
|
||||
"XCODE_SCHEME_THREAD_SANITIZER_STOP");
|
||||
|
||||
WriteLaunchActionAttribute(xout, "enableUBSanitizer",
|
||||
"XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER");
|
||||
WriteLaunchActionAttribute(
|
||||
xout, "stopOnEveryUBSanitizerIssue",
|
||||
"XCODE_SCHEME_UNDEFINED_BEHAVIOUR_SANITIZER_STOP");
|
||||
|
||||
WriteLaunchActionAttribute(
|
||||
xout, "disableMainThreadChecker",
|
||||
"XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER"); // negative enabled!
|
||||
WriteLaunchActionAttribute(xout, "stopOnEveryMainThreadCheckerIssue",
|
||||
"XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP");
|
||||
|
||||
// Diagnostics tab end
|
||||
|
||||
if (IsExecutable(this->Target)) {
|
||||
xout.StartElement("BuildableProductRunnable");
|
||||
xout.BreakAttributes();
|
||||
@@ -156,12 +191,144 @@ void cmXCodeScheme::WriteLaunchAction(cmXMLWriter& xout,
|
||||
|
||||
xout.EndElement(); // MacroExpansion
|
||||
|
||||
// Info tab begin
|
||||
|
||||
if (const char* exe =
|
||||
this->Target->GetTarget()->GetProperty("XCODE_SCHEME_EXECUTABLE")) {
|
||||
|
||||
xout.StartElement("PathRunnable");
|
||||
xout.BreakAttributes();
|
||||
|
||||
xout.Attribute("runnableDebuggingMode", "0");
|
||||
xout.Attribute("FilePath", exe);
|
||||
|
||||
xout.EndElement(); // PathRunnable
|
||||
}
|
||||
|
||||
// Info tab end
|
||||
|
||||
// Arguments tab begin
|
||||
|
||||
if (const char* argList =
|
||||
this->Target->GetTarget()->GetProperty("XCODE_SCHEME_ARGUMENTS")) {
|
||||
std::vector<std::string> arguments;
|
||||
cmSystemTools::ExpandListArgument(argList, arguments);
|
||||
if (!arguments.empty()) {
|
||||
xout.StartElement("CommandLineArguments");
|
||||
|
||||
for (auto argument : arguments) {
|
||||
xout.StartElement("CommandLineArgument");
|
||||
xout.BreakAttributes();
|
||||
|
||||
xout.Attribute("argument", argument);
|
||||
xout.Attribute("isEnabled", "YES");
|
||||
|
||||
xout.EndElement(); // CommandLineArgument
|
||||
}
|
||||
|
||||
xout.EndElement(); // CommandLineArguments
|
||||
}
|
||||
}
|
||||
|
||||
if (const char* envList =
|
||||
this->Target->GetTarget()->GetProperty("XCODE_SCHEME_ENVIRONMENT")) {
|
||||
std::vector<std::string> envs;
|
||||
cmSystemTools::ExpandListArgument(envList, envs);
|
||||
if (!envs.empty()) {
|
||||
xout.StartElement("EnvironmentVariables");
|
||||
|
||||
for (auto env : envs) {
|
||||
|
||||
xout.StartElement("EnvironmentVariable");
|
||||
xout.BreakAttributes();
|
||||
|
||||
std::string envValue;
|
||||
const auto p = env.find_first_of('=');
|
||||
if (p != std::string::npos) {
|
||||
envValue = env.substr(p + 1);
|
||||
env.resize(p);
|
||||
}
|
||||
|
||||
xout.Attribute("key", env);
|
||||
xout.Attribute("value", envValue);
|
||||
xout.Attribute("isEnabled", "YES");
|
||||
|
||||
xout.EndElement(); // EnvironmentVariable
|
||||
}
|
||||
|
||||
xout.EndElement(); // EnvironmentVariables
|
||||
}
|
||||
}
|
||||
|
||||
// Arguments tab end
|
||||
|
||||
xout.StartElement("AdditionalOptions");
|
||||
|
||||
if (!useThreadSanitizer) {
|
||||
WriteLaunchActionAdditionalOption(xout, "MallocScribble", "",
|
||||
"XCODE_SCHEME_MALLOC_SCRIBBLE");
|
||||
}
|
||||
|
||||
if (!useThreadSanitizer && !useAddressSanitizer) {
|
||||
WriteLaunchActionAdditionalOption(xout, "MallocGuardEdges", "",
|
||||
"XCODE_SCHEME_MALLOC_GUARD_EDGES");
|
||||
}
|
||||
|
||||
if (!useThreadSanitizer && !useAddressSanitizer) {
|
||||
WriteLaunchActionAdditionalOption(xout, "DYLD_INSERT_LIBRARIES",
|
||||
"/usr/lib/libgmalloc.dylib",
|
||||
"XCODE_SCHEME_GUARD_MALLOC");
|
||||
}
|
||||
|
||||
WriteLaunchActionAdditionalOption(xout, "NSZombieEnabled", "YES",
|
||||
"XCODE_SCHEME_ZOMBIE_OBJECTS");
|
||||
|
||||
if (!useThreadSanitizer && !useAddressSanitizer) {
|
||||
WriteLaunchActionAdditionalOption(xout, "MallocStackLogging", "",
|
||||
"XCODE_SCHEME_MALLOC_STACK");
|
||||
}
|
||||
|
||||
WriteLaunchActionAdditionalOption(xout, "DYLD_PRINT_APIS", "",
|
||||
"XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE");
|
||||
|
||||
WriteLaunchActionAdditionalOption(xout, "DYLD_PRINT_LIBRARIES", "",
|
||||
"XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS");
|
||||
|
||||
xout.EndElement();
|
||||
|
||||
xout.EndElement(); // LaunchAction
|
||||
}
|
||||
|
||||
bool cmXCodeScheme::WriteLaunchActionAttribute(cmXMLWriter& xout,
|
||||
const std::string& attrName,
|
||||
const std::string& varName)
|
||||
{
|
||||
if (Target->GetTarget()->GetPropertyAsBool(varName)) {
|
||||
xout.Attribute(attrName.c_str(), "YES");
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool cmXCodeScheme::WriteLaunchActionAdditionalOption(
|
||||
cmXMLWriter& xout, const std::string& key, const std::string& value,
|
||||
const std::string& varName)
|
||||
{
|
||||
if (Target->GetTarget()->GetPropertyAsBool(varName)) {
|
||||
xout.StartElement("AdditionalOption");
|
||||
xout.BreakAttributes();
|
||||
|
||||
xout.Attribute("key", key);
|
||||
xout.Attribute("value", value);
|
||||
xout.Attribute("isEnabled", "YES");
|
||||
|
||||
xout.EndElement(); // AdditionalOption
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void cmXCodeScheme::WriteProfileAction(cmXMLWriter& xout,
|
||||
const std::string& configuration)
|
||||
{
|
||||
|
||||
@@ -41,6 +41,16 @@ private:
|
||||
const std::string& container);
|
||||
void WriteLaunchAction(cmXMLWriter& xout, const std::string& configuration,
|
||||
const std::string& container);
|
||||
|
||||
bool WriteLaunchActionAttribute(cmXMLWriter& xout,
|
||||
const std::string& attrName,
|
||||
const std::string& varName);
|
||||
|
||||
bool WriteLaunchActionAdditionalOption(cmXMLWriter& xout,
|
||||
const std::string& attrName,
|
||||
const std::string& value,
|
||||
const std::string& varName);
|
||||
|
||||
void WriteProfileAction(cmXMLWriter& xout, const std::string& configuration);
|
||||
void WriteAnalyzeAction(cmXMLWriter& xout, const std::string& configuration);
|
||||
void WriteArchiveAction(cmXMLWriter& xout, const std::string& configuration);
|
||||
|
||||
@@ -219,6 +219,7 @@ endfunction()
|
||||
|
||||
if(NOT XCODE_VERSION VERSION_LESS 7)
|
||||
XcodeSchemaGeneration()
|
||||
run_cmake(XcodeSchemaProperty)
|
||||
endif()
|
||||
|
||||
if(XCODE_VERSION VERSION_GREATER_EQUAL 8)
|
||||
|
||||
33
Tests/RunCMake/XcodeProject/XcodeSchemaProperty-check.cmake
Normal file
33
Tests/RunCMake/XcodeProject/XcodeSchemaProperty-check.cmake
Normal file
@@ -0,0 +1,33 @@
|
||||
function(check_property property matcher)
|
||||
set(schema "${RunCMake_TEST_BINARY_DIR}/XcodeSchemaProperty.xcodeproj/xcshareddata/xcschemes/${property}.xcscheme")
|
||||
file(STRINGS ${schema} actual-${property}
|
||||
REGEX "${matcher}" LIMIT_COUNT 1)
|
||||
if(NOT actual-${property})
|
||||
message(SEND_ERROR "Xcode schema property ${property}: Could not find ${matcher} in schema ${schema}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
check_property("ADDRESS_SANITIZER" "enableAddressSanitizer")
|
||||
check_property("ADDRESS_SANITIZER_USE_AFTER_RETURN" "enableASanStackUseAfterReturn")
|
||||
check_property("THREAD_SANITIZER" "enableThreadSanitizer")
|
||||
check_property("THREAD_SANITIZER_STOP" "stopOnEveryThreadSanitizerIssue")
|
||||
check_property("UNDEFINED_BEHAVIOUR_SANITIZER" "enableUBSanitizer")
|
||||
check_property("UNDEFINED_BEHAVIOUR_SANITIZER_STOP" "stopOnEveryUBSanitizerIssue")
|
||||
check_property("DISABLE_MAIN_THREAD_CHECKER" "disableMainThreadChecker")
|
||||
check_property("MAIN_THREAD_CHECKER_STOP" "stopOnEveryMainThreadCheckerIssue")
|
||||
|
||||
check_property("MALLOC_SCRIBBLE" "MallocScribble")
|
||||
check_property("MALLOC_GUARD_EDGES" "MallocGuardEdges")
|
||||
check_property("GUARD_MALLOC" "DYLD_INSERT_LIBRARIES")
|
||||
check_property("ZOMBIE_OBJECTS" "NSZombieEnabled")
|
||||
check_property("MALLOC_STACK" "MallocStackLogging")
|
||||
check_property("DYNAMIC_LINKER_API_USAGE" "DYLD_PRINT_APIS")
|
||||
check_property("DYNAMIC_LIBRARY_LOADS" "DYLD_PRINT_LIBRARIES")
|
||||
|
||||
check_property("EXECUTABLE" "myExecutable")
|
||||
check_property("ARGUMENTS" [=["--foo"]=])
|
||||
check_property("ARGUMENTS" [=["--bar=baz"]=])
|
||||
check_property("ENVIRONMENT" [=[key="FOO"]=])
|
||||
check_property("ENVIRONMENT" [=[value="foo"]=])
|
||||
check_property("ENVIRONMENT" [=[key="BAR"]=])
|
||||
check_property("ENVIRONMENT" [=[value="bar"]=])
|
||||
37
Tests/RunCMake/XcodeProject/XcodeSchemaProperty.cmake
Normal file
37
Tests/RunCMake/XcodeProject/XcodeSchemaProperty.cmake
Normal file
@@ -0,0 +1,37 @@
|
||||
cmake_minimum_required(VERSION 3.7)
|
||||
|
||||
set(CMAKE_XCODE_GENERATE_SCHEME ON)
|
||||
|
||||
project(XcodeSchemaProperty CXX)
|
||||
|
||||
function(create_scheme_for_variable variable)
|
||||
set(CMAKE_XCODE_SCHEME_${variable} ON)
|
||||
add_executable(${variable} main.cpp)
|
||||
endfunction()
|
||||
|
||||
create_scheme_for_variable(ADDRESS_SANITIZER)
|
||||
create_scheme_for_variable(ADDRESS_SANITIZER_USE_AFTER_RETURN)
|
||||
create_scheme_for_variable(THREAD_SANITIZER)
|
||||
create_scheme_for_variable(THREAD_SANITIZER_STOP)
|
||||
create_scheme_for_variable(UNDEFINED_BEHAVIOUR_SANITIZER)
|
||||
create_scheme_for_variable(UNDEFINED_BEHAVIOUR_SANITIZER_STOP)
|
||||
create_scheme_for_variable(DISABLE_MAIN_THREAD_CHECKER)
|
||||
create_scheme_for_variable(MAIN_THREAD_CHECKER_STOP)
|
||||
|
||||
create_scheme_for_variable(MALLOC_SCRIBBLE)
|
||||
create_scheme_for_variable(MALLOC_GUARD_EDGES)
|
||||
create_scheme_for_variable(GUARD_MALLOC)
|
||||
create_scheme_for_variable(ZOMBIE_OBJECTS)
|
||||
create_scheme_for_variable(MALLOC_STACK)
|
||||
create_scheme_for_variable(DYNAMIC_LINKER_API_USAGE)
|
||||
create_scheme_for_variable(DYNAMIC_LIBRARY_LOADS)
|
||||
|
||||
function(create_scheme_for_property property value)
|
||||
set(XCODE_SCHEME_${property} ON)
|
||||
add_executable(${property} main.cpp)
|
||||
set_target_properties(${property} PROPERTIES XCODE_SCHEME_${property} "${value}")
|
||||
endfunction()
|
||||
|
||||
create_scheme_for_property(EXECUTABLE myExecutable)
|
||||
create_scheme_for_property(ARGUMENTS "--foo;--bar=baz")
|
||||
create_scheme_for_property(ENVIRONMENT "FOO=foo;BAR=bar")
|
||||
Reference in New Issue
Block a user