Browse Source

cmGeneratorTarget: Skip computing languages for custom targets

Targets created by `add_custom_target` do not compile any sources
and therefore have no languages.
Brad King 5 years ago
parent
commit
95b5df8646
1 changed files with 5 additions and 0 deletions
  1. 5 0
      Source/cmGeneratorTarget.cxx

+ 5 - 0
Source/cmGeneratorTarget.cxx

@@ -7013,6 +7013,11 @@ std::string cmGeneratorTarget::GetDeprecation() const
 void cmGeneratorTarget::GetLanguages(std::set<std::string>& languages,
 void cmGeneratorTarget::GetLanguages(std::set<std::string>& languages,
                                      const std::string& config) const
                                      const std::string& config) const
 {
 {
+  // Targets that do not compile anything have no languages.
+  if (!this->CanCompileSources()) {
+    return;
+  }
+
   std::vector<cmSourceFile*> sourceFiles;
   std::vector<cmSourceFile*> sourceFiles;
   this->GetSourceFiles(sourceFiles, config);
   this->GetSourceFiles(sourceFiles, config);
   for (cmSourceFile* src : sourceFiles) {
   for (cmSourceFile* src : sourceFiles) {