summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalGenerator.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2013-11-13 20:12:06 (GMT)
committerBrad King <brad.king@kitware.com>2013-11-18 16:30:48 (GMT)
commit123a0608dfe6cf155f0fc095cf389ae7b3d4ebb0 (patch)
treeb9f62255e7c1f8c6194e93abed2fae4875c3db58 /Source/cmGlobalGenerator.cxx
parent5f5c92b9a2c2f9c780c08e23231b93af71f175bd (diff)
downloadCMake-123a0608dfe6cf155f0fc095cf389ae7b3d4ebb0.zip
CMake-123a0608dfe6cf155f0fc095cf389ae7b3d4ebb0.tar.gz
CMake-123a0608dfe6cf155f0fc095cf389ae7b3d4ebb0.tar.bz2
Teach GenerateBuildCommand to find its own make program
Add a cmGlobalGenerator::SelectMakeProgram method to select a caller-provided make program, the CMAKE_MAKE_PROGRAM cache entry, or a generator-provided default. Call it from all implementations of the GenerateBuildCommand method with the corresponding generator's default, if any.
Diffstat (limited to 'Source/cmGlobalGenerator.cxx')
-rw-r--r--Source/cmGlobalGenerator.cxx20
1 files changed, 20 insertions, 0 deletions
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index b653aff..9609497 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -88,6 +88,26 @@ bool cmGlobalGenerator::SetGeneratorToolset(std::string const& ts)
return false;
}
+std::string cmGlobalGenerator::SelectMakeProgram(const char* makeProgram,
+ std::string makeDefault)
+{
+ if(cmSystemTools::IsOff(makeProgram))
+ {
+ makeProgram =
+ this->CMakeInstance->GetCacheDefinition("CMAKE_MAKE_PROGRAM");
+ if(cmSystemTools::IsOff(makeProgram))
+ {
+ makeProgram = makeDefault.c_str();
+ }
+ if(cmSystemTools::IsOff(makeProgram) &&
+ !(makeProgram && *makeProgram))
+ {
+ makeProgram = "CMAKE_MAKE_PROGRAM-NOTFOUND";
+ }
+ }
+ return makeProgram;
+}
+
void cmGlobalGenerator::ResolveLanguageCompiler(const std::string &lang,
cmMakefile *mf,
bool optional)