|
|
@@ -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);
|