|
|
@@ -561,7 +561,8 @@ cmState::Snapshot cmLocalGenerator::GetStateSnapshot() const
|
|
|
}
|
|
|
|
|
|
std::string cmLocalGenerator::ExpandRuleVariable(
|
|
|
- std::string const& variable, const RuleVariables& replaceValues)
|
|
|
+ cmOutputConverter* outputConverter, std::string const& variable,
|
|
|
+ const RuleVariables& replaceValues)
|
|
|
{
|
|
|
if (replaceValues.LinkFlags) {
|
|
|
if (variable == "LINK_FLAGS") {
|
|
|
@@ -737,7 +738,7 @@ std::string cmLocalGenerator::ExpandRuleVariable(
|
|
|
}
|
|
|
}
|
|
|
if (variable == "CMAKE_COMMAND") {
|
|
|
- return this->ConvertToOutputFormat(
|
|
|
+ return outputConverter->ConvertToOutputFormat(
|
|
|
cmSystemTools::CollapseFullPath(cmSystemTools::GetCMakeCommand()),
|
|
|
SHELL);
|
|
|
}
|
|
|
@@ -780,12 +781,12 @@ std::string cmLocalGenerator::ExpandRuleVariable(
|
|
|
!compilerOptionExternalToolchain.empty()) {
|
|
|
ret += " ";
|
|
|
ret += compilerOptionExternalToolchain;
|
|
|
- ret += this->EscapeForShell(compilerExternalToolchain, true);
|
|
|
+ ret += outputConverter->EscapeForShell(compilerExternalToolchain, true);
|
|
|
}
|
|
|
if (!this->CompilerSysroot.empty() && !compilerOptionSysroot.empty()) {
|
|
|
ret += " ";
|
|
|
ret += compilerOptionSysroot;
|
|
|
- ret += this->EscapeForShell(this->CompilerSysroot, true);
|
|
|
+ ret += outputConverter->EscapeForShell(this->CompilerSysroot, true);
|
|
|
}
|
|
|
return ret;
|
|
|
}
|
|
|
@@ -794,14 +795,15 @@ std::string cmLocalGenerator::ExpandRuleVariable(
|
|
|
this->VariableMappings.find(variable);
|
|
|
if (mapIt != this->VariableMappings.end()) {
|
|
|
if (variable.find("_FLAG") == variable.npos) {
|
|
|
- return this->ConvertToOutputForExisting(mapIt->second);
|
|
|
+ return outputConverter->ConvertToOutputForExisting(mapIt->second);
|
|
|
}
|
|
|
return mapIt->second;
|
|
|
}
|
|
|
return variable;
|
|
|
}
|
|
|
|
|
|
-void cmLocalGenerator::ExpandRuleVariables(std::string& s,
|
|
|
+void cmLocalGenerator::ExpandRuleVariables(cmOutputConverter* outputConverter,
|
|
|
+ std::string& s,
|
|
|
const RuleVariables& replaceValues)
|
|
|
{
|
|
|
std::string::size_type start = s.find('<');
|
|
|
@@ -825,7 +827,8 @@ void cmLocalGenerator::ExpandRuleVariables(std::string& s,
|
|
|
} else {
|
|
|
// extract the var
|
|
|
std::string var = s.substr(start + 1, end - start - 1);
|
|
|
- std::string replace = this->ExpandRuleVariable(var, replaceValues);
|
|
|
+ std::string replace =
|
|
|
+ this->ExpandRuleVariable(outputConverter, var, replaceValues);
|
|
|
expandedInput += s.substr(pos, start - pos);
|
|
|
expandedInput += replace;
|
|
|
// move to next one
|