diff options
author | Brad King <brad.king@kitware.com> | 2014-12-24 11:41:39 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2014-12-24 11:41:39 (GMT) |
commit | 8afa15fab1a604a7f20490854f477e603d195df4 (patch) | |
tree | 965d4a4ba246f937ab6e23ab11f4d1e83baf99b2 /Source | |
parent | 62b19984039235d5325ee1ad6a7643a4ccd696a8 (diff) | |
parent | 07fc7b75ef981300e7d873091ee90083b18d1c4a (diff) | |
download | CMake-8afa15fab1a604a7f20490854f477e603d195df4.zip CMake-8afa15fab1a604a7f20490854f477e603d195df4.tar.gz CMake-8afa15fab1a604a7f20490854f477e603d195df4.tar.bz2 |
Merge branch 'ninja-fix-subdir-objlib-languages' into release
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmNinjaNormalTargetGenerator.cxx | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx index e344df4..a05719d 100644 --- a/Source/cmNinjaNormalTargetGenerator.cxx +++ b/Source/cmNinjaNormalTargetGenerator.cxx @@ -110,13 +110,26 @@ void cmNinjaNormalTargetGenerator::WriteLanguagesRules() << "\n\n"; #endif + // Write rules for languages compiled in this target. std::set<std::string> languages; - this->GetTarget()->GetLanguages(languages, - this->GetMakefile()->GetSafeDefinition("CMAKE_BUILD_TYPE")); + std::vector<cmSourceFile*> sourceFiles; + this->GetTarget()->GetSourceFiles(sourceFiles, + this->GetMakefile()->GetSafeDefinition("CMAKE_BUILD_TYPE")); + for(std::vector<cmSourceFile*>::const_iterator + i = sourceFiles.begin(); i != sourceFiles.end(); ++i) + { + const std::string& lang = (*i)->GetLanguage(); + if(!lang.empty()) + { + languages.insert(lang); + } + } for(std::set<std::string>::const_iterator l = languages.begin(); l != languages.end(); ++l) + { this->WriteLanguageRules(*l); + } } const char *cmNinjaNormalTargetGenerator::GetVisibleTypeName() const |