|
|
@@ -317,8 +317,14 @@ void cmGlobalGhsMultiGenerator::WriteTopLevelProject(std::ostream& fout,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void cmGlobalGhsMultiGenerator::WriteSubProjects(std::ostream& fout)
|
|
|
+void cmGlobalGhsMultiGenerator::WriteSubProjects(std::ostream& fout,
|
|
|
+ bool filterPredefined)
|
|
|
{
|
|
|
+ std::set<std::string> predefinedTargets;
|
|
|
+ predefinedTargets.insert(this->GetInstallTargetName());
|
|
|
+ predefinedTargets.insert(this->GetAllTargetName());
|
|
|
+ predefinedTargets.insert(std::string(CHECK_BUILD_SYSTEM_TARGET));
|
|
|
+
|
|
|
// All known targets
|
|
|
for (cmGeneratorTarget const* target : this->ProjectTargets) {
|
|
|
if (target->GetType() == cmStateEnums::INTERFACE_LIBRARY ||
|
|
|
@@ -328,7 +334,13 @@ void cmGlobalGhsMultiGenerator::WriteSubProjects(std::ostream& fout)
|
|
|
target->GetName() != this->GetInstallTargetName())) {
|
|
|
continue;
|
|
|
}
|
|
|
- fout << target->GetName() + ".tgt" + FILE_EXTENSION << " [Project]\n";
|
|
|
+ /* Check if the current target is a predefined CMake target */
|
|
|
+ bool predefinedTarget =
|
|
|
+ predefinedTargets.find(target->GetName()) != predefinedTargets.end();
|
|
|
+ if ((filterPredefined && predefinedTarget) ||
|
|
|
+ (!filterPredefined && !predefinedTarget)) {
|
|
|
+ fout << target->GetName() + ".tgt" + FILE_EXTENSION << " [Project]\n";
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -454,7 +466,8 @@ void cmGlobalGhsMultiGenerator::OutputTopLevelProject(
|
|
|
top.SetCopyIfDifferent(true);
|
|
|
this->WriteTopLevelProject(top, root);
|
|
|
this->WriteTargets(root);
|
|
|
- this->WriteSubProjects(top);
|
|
|
+ this->WriteSubProjects(top, true);
|
|
|
+ this->WriteSubProjects(top, false);
|
|
|
top.Close();
|
|
|
}
|
|
|
|