summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSylvain Joubert <joubert.sy@gmail.com>2014-09-20 20:37:52 (GMT)
committerBrad King <brad.king@kitware.com>2014-09-22 12:44:39 (GMT)
commit6120fca8e229da08fae1d58017962491fb6e03f3 (patch)
treef71558713915872ba651144123dc4927cf0df928
parent3689c43a8c62ca5883d776ee75a34f145d03ab7a (diff)
downloadCMake-6120fca8e229da08fae1d58017962491fb6e03f3.zip
CMake-6120fca8e229da08fae1d58017962491fb6e03f3.tar.gz
CMake-6120fca8e229da08fae1d58017962491fb6e03f3.tar.bz2
Ninja: Prevent compilers to be silently modified
Unlike with Unix Makefiles generator modifying compiler paths was not protected with Ninja generator. It was possible to modify them in the cache without the expected effect on the generated solution. Also activate corresponding tests with Ninja.
-rw-r--r--Source/cmGlobalNinjaGenerator.cxx9
-rw-r--r--Tests/RunCMake/CMakeLists.txt2
2 files changed, 10 insertions, 1 deletions
diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx
index 09ee128..50e1abb 100644
--- a/Source/cmGlobalNinjaGenerator.cxx
+++ b/Source/cmGlobalNinjaGenerator.cxx
@@ -540,6 +540,15 @@ void cmGlobalNinjaGenerator
cmSystemTools::Error("The Ninja generator does not support Fortran yet.");
}
this->cmGlobalGenerator::EnableLanguage(langs, makefile, optional);
+ for(std::vector<std::string>::const_iterator l = langs.begin();
+ l != langs.end(); ++l)
+ {
+ if(*l == "NONE")
+ {
+ continue;
+ }
+ this->ResolveLanguageCompiler(*l, makefile, optional);
+ }
}
bool cmGlobalNinjaGenerator::UsingMinGW = false;
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index 549aed8..fd3bb03 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -50,7 +50,7 @@ add_RunCMake_test(CMP0051)
add_RunCMake_test(CMP0053)
add_RunCMake_test(CMP0054)
add_RunCMake_test(CTest)
-if(UNIX AND "${CMAKE_GENERATOR}" MATCHES "Unix Makefiles")
+if(UNIX AND "${CMAKE_GENERATOR}" MATCHES "Unix Makefiles|Ninja")
add_RunCMake_test(CompilerChange)
endif()
add_RunCMake_test(CompilerNotFound)