summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorDavid Cole <david.cole@kitware.com>2011-08-12 19:55:01 (GMT)
committerDavid Cole <david.cole@kitware.com>2011-09-12 19:21:00 (GMT)
commit59a22655765a46c48dc3f45189101f2e9a265776 (patch)
treec2e9debca4478352c116786395b694fd45a53f98 /Source
parent74c73d5fa0af15c8316a4ab7cfe0aed0f39450f1 (diff)
downloadCMake-59a22655765a46c48dc3f45189101f2e9a265776.zip
CMake-59a22655765a46c48dc3f45189101f2e9a265776.tar.gz
CMake-59a22655765a46c48dc3f45189101f2e9a265776.tar.bz2
Xcode: Use EFFECTIVE_PLATFORM_NAME reference in ComputeOutputDir
Caveats apply: only valid when not overriding default value for output dir *and* there is a CMAKE_XCODE_EFFECTIVE_PLATFORMS value. For now, CMAKE_XCODE_EFFECTIVE_PLATFORMS must be defined in each project, or in the cache for a build. Code relying on value of LOCATION and similar properties may not work if it depends on file existence on disk since CMake will not evaluate $(EFFECTIVE_PLATFORM_NAME). This feature is only enabled for making it easier to build Xcode iOS projects where the developer wants to be able to switch easily between simulator and device builds.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmTarget.cxx6
1 files changed, 5 insertions, 1 deletions
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 2cb3c01..19ecbf0 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -3757,8 +3757,12 @@ bool cmTarget::ComputeOutputDir(const char* config,
// The generator may add the configuration's subdirectory.
if(config && *config)
{
+ const char *platforms = this->Makefile->GetDefinition(
+ "CMAKE_XCODE_EFFECTIVE_PLATFORMS");
+ std::string suffix =
+ usesDefaultOutputDir && platforms ? "$(EFFECTIVE_PLATFORM_NAME)" : "";
this->Makefile->GetLocalGenerator()->GetGlobalGenerator()->
- AppendDirectoryForConfig("/", config, "", out);
+ AppendDirectoryForConfig("/", config, suffix.c_str(), out);
}
return usesDefaultOutputDir;