summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-12-24 11:41:39 (GMT)
committerBrad King <brad.king@kitware.com>2014-12-24 11:41:39 (GMT)
commit8afa15fab1a604a7f20490854f477e603d195df4 (patch)
tree965d4a4ba246f937ab6e23ab11f4d1e83baf99b2 /Source
parent62b19984039235d5325ee1ad6a7643a4ccd696a8 (diff)
parent07fc7b75ef981300e7d873091ee90083b18d1c4a (diff)
downloadCMake-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.cxx17
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