diff options
author | Gregor Jasny <gjasny@googlemail.com> | 2017-10-19 20:48:13 (GMT) |
---|---|---|
committer | Gregor Jasny <gjasny@googlemail.com> | 2017-10-31 16:09:26 (GMT) |
commit | e4e9ce7cbe9b41dd535d5246153900cb9657c6ba (patch) | |
tree | 2468f4181c0ffd92b5811e33cdc13e42c956e2e3 /Source/cmGlobalXCodeGenerator.cxx | |
parent | 41d796be155e0da8fec66cb281429ed0eb91650d (diff) | |
download | CMake-e4e9ce7cbe9b41dd535d5246153900cb9657c6ba.zip CMake-e4e9ce7cbe9b41dd535d5246153900cb9657c6ba.tar.gz CMake-e4e9ce7cbe9b41dd535d5246153900cb9657c6ba.tar.bz2 |
Xcode: Add option to generate only topmost project file
Closes #16780
Diffstat (limited to 'Source/cmGlobalXCodeGenerator.cxx')
-rw-r--r-- | Source/cmGlobalXCodeGenerator.cxx | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 78943e4..d902ca3 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -388,6 +388,17 @@ void cmGlobalXCodeGenerator::Generate() std::map<std::string, std::vector<cmLocalGenerator*>>::iterator it; for (it = this->ProjectMap.begin(); it != this->ProjectMap.end(); ++it) { cmLocalGenerator* root = it->second[0]; + + bool generateTopLevelProjectOnly = + root->GetMakefile()->IsOn("CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY"); + + if (generateTopLevelProjectOnly) { + cmStateSnapshot snp = root->GetStateSnapshot(); + if (snp.GetBuildsystemDirectoryParent().IsValid()) { + continue; + } + } + this->SetGenerationRoot(root); // now create the project this->OutputXCodeProject(root, it->second); |