ENH: change expand variables to use GetDefinition
This commit is contained in:
parent
2858689d6d
commit
f709e5588e
|
@ -787,9 +787,9 @@ bool cmMakefile::IsOn(const char* name)
|
|||
return cmSystemTools::IsOn(value);
|
||||
}
|
||||
|
||||
const char* cmMakefile::GetDefinition(const char* name)
|
||||
const char* cmMakefile::GetDefinition(const char* name) const
|
||||
{
|
||||
DefinitionMap::iterator pos = m_Definitions.find(name);
|
||||
DefinitionMap::const_iterator pos = m_Definitions.find(name);
|
||||
if(pos != m_Definitions.end())
|
||||
{
|
||||
return (*pos).second.c_str();
|
||||
|
@ -929,16 +929,16 @@ void cmMakefile::ExpandVariablesInString(std::string& source,
|
|||
}
|
||||
else
|
||||
{
|
||||
DefinitionMap::const_iterator pos = m_Definitions.find(var.c_str());
|
||||
if(pos != m_Definitions.end())
|
||||
const char* lookup = this->GetDefinition(var.c_str());
|
||||
if(lookup)
|
||||
{
|
||||
if (escapeQuotes)
|
||||
{
|
||||
result += cmSystemTools::EscapeQuotes((*pos).second.c_str());
|
||||
result += cmSystemTools::EscapeQuotes(lookup);
|
||||
}
|
||||
else
|
||||
{
|
||||
result += (*pos).second;
|
||||
result += lookup;
|
||||
}
|
||||
found = true;
|
||||
}
|
||||
|
|
|
@ -452,7 +452,7 @@ public:
|
|||
* If the variable is not found in this makefile instance, the
|
||||
* cache is then queried.
|
||||
*/
|
||||
const char* GetDefinition(const char*);
|
||||
const char* GetDefinition(const char*) const;
|
||||
|
||||
/** Test a boolean cache entry to see if it is true or false,
|
||||
* returns false if no entry defined.
|
||||
|
|
|
@ -1370,27 +1370,31 @@ void cmUnixMakefileGenerator::ComputeSystemInfo()
|
|||
{
|
||||
if (m_CacheOnly)
|
||||
{
|
||||
if(m_Makefile->GetDefinition("CMAKE_CXX_COMPILER"))
|
||||
{
|
||||
std::string env = "CXX=${CMAKE_CXX_COMPILER}";
|
||||
m_Makefile->ExpandVariablesInString(env);
|
||||
putenv(const_cast<char*>(env.c_str()));
|
||||
env = "CC=${CMAKE_C_COMPILER}";
|
||||
m_Makefile->ExpandVariablesInString(env);
|
||||
putenv(const_cast<char*>(env.c_str()));
|
||||
}
|
||||
|
||||
// currently we run configure shell script here to determine the info
|
||||
std::string output;
|
||||
std::string cmd = "cd ";
|
||||
cmd += m_Makefile->GetHomeOutputDirectory();
|
||||
cmd += "; ";
|
||||
const char* root
|
||||
= m_Makefile->GetDefinition("CMAKE_ROOT");
|
||||
cmd += root;
|
||||
cmd += "/Templates/configure";
|
||||
cmSystemTools::RunCommand(cmd.c_str(), output);
|
||||
m_Makefile->AddDefinition("RUN_CONFIGURE", true);
|
||||
if(m_Makefile->GetDefinition("CMAKE_CXX_COMPILER"))
|
||||
{
|
||||
std::string env = "CXX=${CMAKE_CXX_COMPILER}";
|
||||
m_Makefile->ExpandVariablesInString(env);
|
||||
std::cout << "Setting: " << env.c_str() << "\n";
|
||||
putenv(const_cast<char*>(env.c_str()));
|
||||
}
|
||||
if(m_Makefile->GetDefinition("CMAKE_C_COMPILER"))
|
||||
{
|
||||
std::string env = "CC=${CMAKE_C_COMPILER}";
|
||||
m_Makefile->ExpandVariablesInString(env);
|
||||
std::cout << "Setting: " << env.c_str() << "\n";
|
||||
putenv(const_cast<char*>(env.c_str()));
|
||||
}
|
||||
// currently we run configure shell script here to determine the info
|
||||
std::string output;
|
||||
std::string cmd = "cd ";
|
||||
cmd += m_Makefile->GetHomeOutputDirectory();
|
||||
cmd += "; ";
|
||||
const char* root
|
||||
= m_Makefile->GetDefinition("CMAKE_ROOT");
|
||||
cmd += root;
|
||||
cmd += "/Templates/configure";
|
||||
cmSystemTools::RunCommand(cmd.c_str(), output);
|
||||
m_Makefile->AddDefinition("RUN_CONFIGURE", true);
|
||||
}
|
||||
|
||||
// now load the settings
|
||||
|
|
Loading…
Reference in New Issue