summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFred Baksik <fdk17@ftml.net>2020-07-15 19:03:45 (GMT)
committerFred Baksik <fred.baksik@mrcy.com>2020-07-29 15:51:27 (GMT)
commitca899af3e2d5af3d79d345322b300c348065f560 (patch)
tree4dedfc6eec38276f0b7c359c1ff8cb28de6d0a98
parent12ba89e142c3db629e6e201a409b4c08bb169bdc (diff)
downloadCMake-ca899af3e2d5af3d79d345322b300c348065f560.zip
CMake-ca899af3e2d5af3d79d345322b300c348065f560.tar.gz
CMake-ca899af3e2d5af3d79d345322b300c348065f560.tar.bz2
Toolchain: Handle repeated invocations of CMake with -DCMAKE_C_COMPILER
Repeated invocations of `cmake ... -DCMAKE_C_COMPILER=gcc` should not trigger a "You have changed variables" message even though the cache value of CMAKE_C_COMPILER changes from '/path/to/gcc' to 'gcc'. Make repeated invocations of `cmake ... -DCMAKE_C_COMPILER=gcc;-pipe` not trigger the warning by comparing the compiler name portion of the list to the compiler being used.
-rw-r--r--Source/cmGlobalGenerator.cxx8
-rw-r--r--Source/cmRulePlaceholderExpander.cxx2
2 files changed, 9 insertions, 1 deletions
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 5c07e31..b227599 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -235,6 +235,14 @@ void cmGlobalGenerator::ResolveLanguageCompiler(const std::string& lang,
}
cmProp cname =
this->GetCMakeInstance()->GetState()->GetInitializedCacheValue(langComp);
+
+ // Split compiler from arguments
+ std::vector<std::string> cnameArgVec;
+ if (cname && !cname->empty()) {
+ cmExpandList(*cname, cnameArgVec);
+ cname = &cnameArgVec.front();
+ }
+
std::string changeVars;
if (cname && !optional) {
std::string cnameString;
diff --git a/Source/cmRulePlaceholderExpander.cxx b/Source/cmRulePlaceholderExpander.cxx
index 254131b..4ff81c1 100644
--- a/Source/cmRulePlaceholderExpander.cxx
+++ b/Source/cmRulePlaceholderExpander.cxx
@@ -261,7 +261,7 @@ std::string cmRulePlaceholderExpander::ExpandRuleVariable(
this->VariableMappings["CMAKE_" + compIt->second +
"_COMPILE_OPTIONS_SYSROOT"];
- // if there is a required first argument to the compiler add it
+ // if there are required arguments to the compiler add it
// to the compiler string
if (!compilerArg1.empty()) {
ret += " ";