diff options
author | Gregor Jasny <gjasny@googlemail.com> | 2019-10-01 18:53:06 (GMT) |
---|---|---|
committer | Gregor Jasny <gjasny@googlemail.com> | 2019-10-01 21:02:35 (GMT) |
commit | 67200c37b0a124534b3fa74bea9ed057d864ce1e (patch) | |
tree | 7278f031b74b0ac6328832c897a3975d8a4c181a /Source/cmXCodeScheme.cxx | |
parent | c174e603be444be737fd332cfc45ae1e3fc812be (diff) | |
download | CMake-67200c37b0a124534b3fa74bea9ed057d864ce1e.zip CMake-67200c37b0a124534b3fa74bea9ed057d864ce1e.tar.gz CMake-67200c37b0a124534b3fa74bea9ed057d864ce1e.tar.bz2 |
xcode: Add XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING property
Diffstat (limited to 'Source/cmXCodeScheme.cxx')
-rw-r--r-- | Source/cmXCodeScheme.cxx | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/Source/cmXCodeScheme.cxx b/Source/cmXCodeScheme.cxx index a1c64ed..afc95f5 100644 --- a/Source/cmXCodeScheme.cxx +++ b/Source/cmXCodeScheme.cxx @@ -137,7 +137,9 @@ void cmXCodeScheme::WriteLaunchAction(cmXMLWriter& xout, xout.Attribute("launchStyle", "0"); xout.Attribute("useCustomWorkingDirectory", "NO"); xout.Attribute("ignoresPersistentStateOnLaunch", "NO"); - xout.Attribute("debugDocumentVersioning", "YES"); + WriteLaunchActionBooleanAttribute(xout, "debugDocumentVersioning", + "XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING", + true); xout.Attribute("debugServiceExtension", "internal"); xout.Attribute("allowLocationSimulation", "YES"); @@ -311,6 +313,21 @@ bool cmXCodeScheme::WriteLaunchActionAttribute(cmXMLWriter& xout, return false; } +bool cmXCodeScheme::WriteLaunchActionBooleanAttribute( + cmXMLWriter& xout, const std::string& attrName, const std::string& varName, + bool defaultValue) +{ + auto property = Target->GetTarget()->GetProperty(varName); + bool isOn = (property == nullptr && defaultValue) || cmIsOn(property); + + if (isOn) { + xout.Attribute(attrName.c_str(), "YES"); + } else { + xout.Attribute(attrName.c_str(), "NO"); + } + return isOn; +} + bool cmXCodeScheme::WriteLaunchActionAdditionalOption( cmXMLWriter& xout, const std::string& key, const std::string& value, const std::string& varName) @@ -339,7 +356,9 @@ void cmXCodeScheme::WriteProfileAction(cmXMLWriter& xout, xout.Attribute("shouldUseLaunchSchemeArgsEnv", "YES"); xout.Attribute("savedToolIdentifier", ""); xout.Attribute("useCustomWorkingDirectory", "NO"); - xout.Attribute("debugDocumentVersioning", "YES"); + WriteLaunchActionBooleanAttribute(xout, "debugDocumentVersioning", + "XCODE_SCHEME_DEBUG_DOCUMENT_VERSIONING", + true); xout.EndElement(); } |