diff options
author | Brad King <brad.king@kitware.com> | 2009-10-21 17:00:49 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2009-10-21 17:00:49 (GMT) |
commit | 2dc39b8c329425cb54e5e111e2b00d79caa1db36 (patch) | |
tree | 516539dab9c55976dbf95cdc6896abacaff4ae7a /Source/cmGlobalXCodeGenerator.cxx | |
parent | 2f94a2c919ddb39f33c47b4baa7bd37e2ae4cacd (diff) | |
download | CMake-2dc39b8c329425cb54e5e111e2b00d79caa1db36.zip CMake-2dc39b8c329425cb54e5e111e2b00d79caa1db36.tar.gz CMake-2dc39b8c329425cb54e5e111e2b00d79caa1db36.tar.bz2 |
Define per-target OSX_ARCHITECTURES property
The CMAKE_OSX_ARCHITECTURES variable works only as a global setting.
This commit defines target properties
OSX_ARCHITECTURES
OSX_ARCHITECTURES_<CONFIG>
to specify OS X architectures on a per-target and per-configuration
basis. See issue #8725.
Diffstat (limited to 'Source/cmGlobalXCodeGenerator.cxx')
-rw-r--r-- | Source/cmGlobalXCodeGenerator.cxx | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index d2c75b2..19d75d4 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -1515,6 +1515,34 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmTarget& target, extraLinkOptions += targetLinkFlags; } + // Set target-specific architectures. + std::vector<std::string> archs; + target.GetAppleArchs(configName, archs); + if(!archs.empty()) + { + // Enable ARCHS attribute. + buildSettings->AddAttribute("ONLY_ACTIVE_ARCH", + this->CreateString("NO")); + + // Store ARCHS value. + if(archs.size() == 1) + { + buildSettings->AddAttribute("ARCHS", + this->CreateString(archs[0].c_str())); + } + else + { + cmXCodeObject* archObjects = + this->CreateObject(cmXCodeObject::OBJECT_LIST); + for(std::vector<std::string>::iterator i = archs.begin(); + i != archs.end(); i++) + { + archObjects->AddObject(this->CreateString((*i).c_str())); + } + buildSettings->AddAttribute("ARCHS", archObjects); + } + } + // Get the product name components. std::string pnprefix; std::string pnbase; |