diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2002-12-05 18:44:11 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2002-12-05 18:44:11 (GMT) |
commit | 96189f79d582f90758ba1b4f691031b1d7fa02f3 (patch) | |
tree | 36bc488b7a77d01a9b9be3b1e4b0ab8963378fdc /Source/cmGlobalUnixMakefileGenerator.cxx | |
parent | 8d20322160e6e8c7bf9c6d69de9319f57373de5d (diff) | |
download | CMake-96189f79d582f90758ba1b4f691031b1d7fa02f3.zip CMake-96189f79d582f90758ba1b4f691031b1d7fa02f3.tar.gz CMake-96189f79d582f90758ba1b4f691031b1d7fa02f3.tar.bz2 |
ENH: unify EnableLanguage across all generators
Diffstat (limited to 'Source/cmGlobalUnixMakefileGenerator.cxx')
-rw-r--r-- | Source/cmGlobalUnixMakefileGenerator.cxx | 148 |
1 files changed, 6 insertions, 142 deletions
diff --git a/Source/cmGlobalUnixMakefileGenerator.cxx b/Source/cmGlobalUnixMakefileGenerator.cxx index 5132f25..7f68d21 100644 --- a/Source/cmGlobalUnixMakefileGenerator.cxx +++ b/Source/cmGlobalUnixMakefileGenerator.cxx @@ -20,130 +20,15 @@ #include "cmMakefile.h" #include "cmake.h" +cmGlobalUnixMakefileGenerator::cmGlobalUnixMakefileGenerator() +{ + m_FindMakeProgramFile = "CMakeUnixFindMake.cmake"; +} + void cmGlobalUnixMakefileGenerator::EnableLanguage(const char* lang, cmMakefile *mf) { - if(!mf->GetDefinition("CMAKE_MAKE_PROGRAM") - || cmSystemTools::IsOff(mf->GetDefinition("CMAKE_MAKE_PROGRAM"))) - { - std::string setMakeProgram = mf->GetDefinition("CMAKE_ROOT"); - setMakeProgram += "/Modules/CMakeUnixFindMake.cmake"; - mf->ReadListFile(0, setMakeProgram.c_str()); - } - - bool isLocal = m_CMakeInstance->GetLocal(); - // if no lang specified use CXX - if(!lang ) - { - lang = "CXX"; - } - std::string root = mf->GetDefinition("CMAKE_ROOT"); - std::string rootBin = mf->GetHomeOutputDirectory(); - if(m_ConfiguredFilesPath.size()) - { - rootBin = m_ConfiguredFilesPath; - } - bool needCBackwards = false; - bool needCXXBackwards = false; - - // check for a C compiler and configure it - if(!isLocal && - !this->GetLanguageEnabled("C") && - lang[0] == 'C') - { - if (m_CMakeInstance->GetIsInTryCompile()) - { - cmSystemTools::Error("This should not have happen. " - "If you see this message, you are probably using a " - "broken CMakeLists.txt file or a problematic release of " - "CMake"); - } - needCBackwards = true; - // Read the DetermineSystem file - std::string systemFile = root; - systemFile += "/Modules/CMakeDetermineSystem.cmake"; - mf->ReadListFile(0, systemFile.c_str()); - // read determine C compiler - std::string determineCFile = root; - determineCFile += "/Modules/CMakeDetermineCCompiler.cmake"; - mf->ReadListFile(0,determineCFile.c_str()); - this->SetLanguageEnabled("C"); - } - - // check for a CXX compiler and configure it - if(!isLocal && - !this->GetLanguageEnabled("CXX") && - strcmp(lang, "CXX") == 0) - { - needCXXBackwards = true; - std::string determineCFile = root; - determineCFile += "/Modules/CMakeDetermineCXXCompiler.cmake"; - mf->ReadListFile(0,determineCFile.c_str()); - this->SetLanguageEnabled("CXX"); - } - - - std::string fpath = rootBin; - if(!mf->GetDefinition("CMAKE_SYSTEM_LOADED")) - { - fpath += "/CMakeSystem.cmake"; - mf->ReadListFile(0,fpath.c_str()); - } - // if C, then enable C - if(lang[0] == 'C' && !mf->GetDefinition("CMAKE_C_COMPILER_LOADED")) - { - fpath = rootBin; - fpath += "/CMakeCCompiler.cmake"; - mf->ReadListFile(0,fpath.c_str()); - } - if(strcmp(lang, "CXX") == 0 && !mf->GetDefinition("CMAKE_CXX_COMPILER_LOADED")) - { - fpath = rootBin; - fpath += "/CMakeCXXCompiler.cmake"; - mf->ReadListFile(0,fpath.c_str()); - } - if(!mf->GetDefinition("CMAKE_SYSTEM_SPECIFIC_INFORMATION_LOADED")) - { - fpath = root; - fpath += "/Modules/CMakeSystemSpecificInformation.cmake"; - mf->ReadListFile(0,fpath.c_str()); - } - - if(!isLocal) - { - // At this point we should have enough info for a try compile - // which is used in the backward stuff - if(needCBackwards) - { - if (!m_CMakeInstance->GetIsInTryCompile()) - { - // for old versions of CMake ListFiles - const char* versionValue - = mf->GetDefinition("CMAKE_MINIMUM_REQUIRED_VERSION"); - if (!versionValue || atof(versionValue) <= 1.4) - { - std::string ifpath = root + "/Modules/CMakeBackwardCompatibilityC.cmake"; - mf->ReadListFile(0,ifpath.c_str()); - } - } - } - if(needCXXBackwards) - { - if (!m_CMakeInstance->GetIsInTryCompile()) - { - // for old versions of CMake ListFiles - const char* versionValue - = mf->GetDefinition("CMAKE_MINIMUM_REQUIRED_VERSION"); - if (!versionValue || atof(versionValue) <= 1.4) - { - std::string fpath = root + "/Modules/CMakeBackwardCompatibilityCXX.cmake"; - mf->ReadListFile(0,fpath.c_str()); - } - } - } - // if we are from the top, always define this - mf->AddDefinition("RUN_CONFIGURE", true); - } + this->cmGlobalGenerator::EnableLanguage(lang, mf); } ///! Create a local generator appropriate to this Global Generator @@ -154,24 +39,3 @@ cmLocalGenerator *cmGlobalUnixMakefileGenerator::CreateLocalGenerator() return lg; } -void cmGlobalUnixMakefileGenerator::EnableLanguagesFromGenerator(cmGlobalGenerator *gen) -{ - this->SetConfiguredFilesPath( - gen->GetCMakeInstance()->GetHomeOutputDirectory()); - const char* make = - gen->GetCMakeInstance()->GetCacheDefinition("CMAKE_MAKE_PROGRAM"); - this->GetCMakeInstance()->AddCacheEntry("CMAKE_MAKE_PROGRAM", make, - "make program", - cmCacheManager::FILEPATH); - // if C, then enable C - if(gen->GetLanguageEnabled("C")) - { - this->SetLanguageEnabled("C"); - } - - // if CXX - if(gen->GetLanguageEnabled("CXX")) - { - this->SetLanguageEnabled("CXX"); - } -} |