diff options
author | Fred Baksik <fdk17@ftml.net> | 2020-07-15 19:03:45 (GMT) |
---|---|---|
committer | Fred Baksik <fred.baksik@mrcy.com> | 2020-07-29 15:51:27 (GMT) |
commit | ca899af3e2d5af3d79d345322b300c348065f560 (patch) | |
tree | 4dedfc6eec38276f0b7c359c1ff8cb28de6d0a98 | |
parent | 12ba89e142c3db629e6e201a409b4c08bb169bdc (diff) | |
download | CMake-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.cxx | 8 | ||||
-rw-r--r-- | Source/cmRulePlaceholderExpander.cxx | 2 |
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 += " "; |