cmLocalGenerator: Move compiler option handling to be more direct
This commit is contained in:
parent
6cd27a853a
commit
f009d8f5e2
@ -740,6 +740,30 @@ std::string cmLocalGenerator::ExpandRuleVariable(
|
|||||||
compilerSysroot = this->Makefile->GetDefinition("CMAKE_SYSROOT");
|
compilerSysroot = this->Makefile->GetDefinition("CMAKE_SYSROOT");
|
||||||
compilerOptionSysroot = this->Makefile->GetDefinition(
|
compilerOptionSysroot = this->Makefile->GetDefinition(
|
||||||
std::string("CMAKE_") + compIt->second + "_COMPILE_OPTIONS_SYSROOT");
|
std::string("CMAKE_") + compIt->second + "_COMPILE_OPTIONS_SYSROOT");
|
||||||
|
|
||||||
|
std::string ret = this->ConvertToOutputForExisting(replace);
|
||||||
|
// if there is a required first argument to the compiler add it
|
||||||
|
// to the compiler string
|
||||||
|
if (compilerArg1) {
|
||||||
|
ret += " ";
|
||||||
|
ret += compilerArg1;
|
||||||
|
}
|
||||||
|
if (compilerTarget && compilerOptionTarget) {
|
||||||
|
ret += " ";
|
||||||
|
ret += compilerOptionTarget;
|
||||||
|
ret += compilerTarget;
|
||||||
|
}
|
||||||
|
if (compilerExternalToolchain && compilerOptionExternalToolchain) {
|
||||||
|
ret += " ";
|
||||||
|
ret += compilerOptionExternalToolchain;
|
||||||
|
ret += this->EscapeForShell(compilerExternalToolchain, true);
|
||||||
|
}
|
||||||
|
if (compilerSysroot && compilerOptionSysroot) {
|
||||||
|
ret += " ";
|
||||||
|
ret += compilerOptionSysroot;
|
||||||
|
ret += this->EscapeForShell(compilerSysroot, true);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
if (actualReplace.find("${LANG}") != actualReplace.npos) {
|
if (actualReplace.find("${LANG}") != actualReplace.npos) {
|
||||||
cmSystemTools::ReplaceString(actualReplace, "${LANG}", lang);
|
cmSystemTools::ReplaceString(actualReplace, "${LANG}", lang);
|
||||||
@ -747,29 +771,7 @@ std::string cmLocalGenerator::ExpandRuleVariable(
|
|||||||
if (actualReplace == variable) {
|
if (actualReplace == variable) {
|
||||||
// if the variable is not a FLAG then treat it like a path
|
// if the variable is not a FLAG then treat it like a path
|
||||||
if (variable.find("_FLAG") == variable.npos) {
|
if (variable.find("_FLAG") == variable.npos) {
|
||||||
std::string ret = this->ConvertToOutputForExisting(replace);
|
return this->ConvertToOutputForExisting(replace);
|
||||||
// if there is a required first argument to the compiler add it
|
|
||||||
// to the compiler string
|
|
||||||
if (compilerArg1) {
|
|
||||||
ret += " ";
|
|
||||||
ret += compilerArg1;
|
|
||||||
}
|
|
||||||
if (compilerTarget && compilerOptionTarget) {
|
|
||||||
ret += " ";
|
|
||||||
ret += compilerOptionTarget;
|
|
||||||
ret += compilerTarget;
|
|
||||||
}
|
|
||||||
if (compilerExternalToolchain && compilerOptionExternalToolchain) {
|
|
||||||
ret += " ";
|
|
||||||
ret += compilerOptionExternalToolchain;
|
|
||||||
ret += this->EscapeForShell(compilerExternalToolchain, true);
|
|
||||||
}
|
|
||||||
if (compilerSysroot && compilerOptionSysroot) {
|
|
||||||
ret += " ";
|
|
||||||
ret += compilerOptionSysroot;
|
|
||||||
ret += this->EscapeForShell(compilerSysroot, true);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
return replace;
|
return replace;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user