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.
This commit is contained in:
parent
a87253154e
commit
3144857e1e
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 = cmSystemTools::GetCMakeRoot();
|
||||
moduleInCMakeRoot += "/Modules/";
|
||||
moduleInCMakeRoot += filename;
|
||||
cmSystemTools::ConvertToUnixSlashes(moduleInCMakeRoot);
|
||||
if(!cmSystemTools::FileExists(moduleInCMakeRoot.c_str()))
|
||||
{
|
||||
moduleInCMakeRoot = cmakeRoot;
|
||||
moduleInCMakeRoot += "/Modules/";
|
||||
moduleInCMakeRoot += filename;
|
||||
cmSystemTools::ConvertToUnixSlashes(moduleInCMakeRoot);
|
||||
if(!cmSystemTools::FileExists(moduleInCMakeRoot.c_str()))
|
||||
{
|
||||
moduleInCMakeRoot = "";
|
||||
}
|
||||
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))
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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";
|
||||
|
|
Loading…
Reference in New Issue