Commit 6b7f1e1d authored by Gregor Jasny's avatar Gregor Jasny Committed by Brad King

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
parent 39c91d07
......@@ -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
......
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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`
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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",