diff options
author | Brad King <brad.king@kitware.com> | 2016-03-14 14:38:19 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2016-03-16 13:03:26 (GMT) |
commit | 3144857e1eed83e038699942568869bfce461d4d (patch) | |
tree | 308a88383bed0e65d0bae865ed84e8d1fdd5f092 | |
parent | a87253154e15da3f05ec7a4c625caaa0c54a3861 (diff) | |
download | CMake-3144857e1eed83e038699942568869bfce461d4d.zip CMake-3144857e1eed83e038699942568869bfce461d4d.tar.gz CMake-3144857e1eed83e038699942568869bfce461d4d.tar.bz2 |
Avoid depending on CMAKE_ROOT cache entry internally (#16015)
Use cmSystemTools::GetCMakeRoot() which always knows the location of our
resources. Do not depend on CMAKE_ROOT because the user could unset it
from the cache.
-rw-r--r-- | Source/cmCreateTestSourceList.cxx | 3 | ||||
-rw-r--r-- | Source/cmExtraCodeBlocksGenerator.cxx | 3 | ||||
-rw-r--r-- | Source/cmGeneratorTarget.cxx | 3 | ||||
-rw-r--r-- | Source/cmGlobalGenerator.cxx | 2 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudioGenerator.cxx | 3 | ||||
-rw-r--r-- | Source/cmMakefile.cxx | 20 | ||||
-rw-r--r-- | Source/cmQtAutoGeneratorInitializer.cxx | 3 | ||||
-rw-r--r-- | Source/cmake.cxx | 3 |
8 files changed, 15 insertions, 25 deletions
diff --git a/Source/cmCreateTestSourceList.cxx b/Source/cmCreateTestSourceList.cxx index 54c27d6..e670991 100644 --- a/Source/cmCreateTestSourceList.cxx +++ b/Source/cmCreateTestSourceList.cxx @@ -78,8 +78,7 @@ bool cmCreateTestSourceList driver += *i; ++i; - std::string configFile = - this->Makefile->GetRequiredDefinition("CMAKE_ROOT"); + std::string configFile = cmSystemTools::GetCMakeRoot(); configFile += "/Templates/TestDriver.cxx.in"; // Create the test driver file diff --git a/Source/cmExtraCodeBlocksGenerator.cxx b/Source/cmExtraCodeBlocksGenerator.cxx index ed0c69c..476d3ac 100644 --- a/Source/cmExtraCodeBlocksGenerator.cxx +++ b/Source/cmExtraCodeBlocksGenerator.cxx @@ -259,13 +259,12 @@ void cmExtraCodeBlocksGenerator } // Convert - const char* cmakeRoot = mf->GetDefinition("CMAKE_ROOT"); for (std::vector<std::string>::const_iterator jt = listFiles.begin(); jt != listFiles.end(); ++jt) { // don't put cmake's own files into the project (#12110): - if (jt->find(cmakeRoot) == 0) + if (jt->find(cmSystemTools::GetCMakeRoot()) == 0) { continue; } diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index ff12320..d7c2782 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -3909,8 +3909,7 @@ void checkPropertyConsistency(cmGeneratorTarget const* depender, std::vector<std::string> props; cmSystemTools::ExpandListArgument(prop, props); - std::string pdir = - dependee->Target->GetMakefile()->GetRequiredDefinition("CMAKE_ROOT"); + std::string pdir = cmSystemTools::GetCMakeRoot(); pdir += "/Help/prop_tgt/"; for(std::vector<std::string>::iterator pi = props.begin(); diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index c628406..1d0ade4 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -820,7 +820,7 @@ cmGlobalGenerator::EnableLanguage(std::vector<std::string>const& languages, // Now load files that can override any settings on the platform or for // the project First load the project compatibility file if it is in // cmake - std::string projectCompatibility = mf->GetDefinition("CMAKE_ROOT"); + std::string projectCompatibility = cmSystemTools::GetCMakeRoot(); projectCompatibility += "/Modules/"; projectCompatibility += mf->GetSafeDefinition("PROJECT_NAME"); projectCompatibility += "Compatibility.cmake"; diff --git a/Source/cmGlobalVisualStudioGenerator.cxx b/Source/cmGlobalVisualStudioGenerator.cxx index 6a1aa29..00bb511 100644 --- a/Source/cmGlobalVisualStudioGenerator.cxx +++ b/Source/cmGlobalVisualStudioGenerator.cxx @@ -184,12 +184,11 @@ void RegisterVisualStudioMacros(const std::string& macrosFile, //---------------------------------------------------------------------------- void cmGlobalVisualStudioGenerator::ConfigureCMakeVisualStudioMacros() { - cmMakefile* mf = this->LocalGenerators[0]->GetMakefile(); std::string dir = this->GetUserMacrosDirectory(); if (dir != "") { - std::string src = mf->GetRequiredDefinition("CMAKE_ROOT"); + std::string src = cmSystemTools::GetCMakeRoot(); src += "/Templates/" CMAKE_VSMACROS_FILENAME; std::string dst = dir + "/CMakeMacros/" CMAKE_VSMACROS_FILENAME; diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 8f59e2c..1df5cec 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -3738,17 +3738,13 @@ std::string cmMakefile::GetModulesFile(const char* filename) const } // Always search in the standard modules location. - const char* cmakeRoot = this->GetDefinition("CMAKE_ROOT"); - if(cmakeRoot) - { - moduleInCMakeRoot = cmakeRoot; - moduleInCMakeRoot += "/Modules/"; - moduleInCMakeRoot += filename; - cmSystemTools::ConvertToUnixSlashes(moduleInCMakeRoot); - if(!cmSystemTools::FileExists(moduleInCMakeRoot.c_str())) - { - moduleInCMakeRoot = ""; - } + moduleInCMakeRoot = cmSystemTools::GetCMakeRoot(); + moduleInCMakeRoot += "/Modules/"; + moduleInCMakeRoot += filename; + cmSystemTools::ConvertToUnixSlashes(moduleInCMakeRoot); + if(!cmSystemTools::FileExists(moduleInCMakeRoot.c_str())) + { + moduleInCMakeRoot = ""; } // Normally, prefer the files found in CMAKE_MODULE_PATH. Only when the file @@ -3763,7 +3759,7 @@ std::string cmMakefile::GetModulesFile(const char* filename) const if (!moduleInCMakeModulePath.empty() && !moduleInCMakeRoot.empty()) { const char* currentFile = this->GetDefinition("CMAKE_CURRENT_LIST_FILE"); - std::string mods = cmakeRoot + std::string("/Modules/"); + std::string mods = cmSystemTools::GetCMakeRoot() + "/Modules/"; if (currentFile && strncmp(currentFile, mods.c_str(), mods.size()) == 0) { switch (this->GetPolicyStatus(cmPolicies::CMP0017)) diff --git a/Source/cmQtAutoGeneratorInitializer.cxx b/Source/cmQtAutoGeneratorInitializer.cxx index 08caea3..4cab81f 100644 --- a/Source/cmQtAutoGeneratorInitializer.cxx +++ b/Source/cmQtAutoGeneratorInitializer.cxx @@ -1003,8 +1003,7 @@ void cmQtAutoGeneratorInitializer::SetupAutoGenerateTarget( SetupAutoRccTarget(target); } - const char* cmakeRoot = makefile->GetSafeDefinition("CMAKE_ROOT"); - std::string inputFile = cmakeRoot; + std::string inputFile = cmSystemTools::GetCMakeRoot(); inputFile += "/Modules/AutogenInfo.cmake.in"; std::string outputFile = targetDir; outputFile += "/AutogenInfo.cmake"; diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 74364f7..dcc95af 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -2409,8 +2409,7 @@ int cmake::GetSystemInformation(std::vector<std::string>& args) // we have to find the module directory, so we can copy the files this->AddCMakePaths(); - std::string modulesPath = - this->State->GetInitializedCacheValue("CMAKE_ROOT"); + std::string modulesPath = cmSystemTools::GetCMakeRoot(); modulesPath += "/Modules"; std::string inFile = modulesPath; inFile += "/SystemInformation.cmake"; |