summaryrefslogtreecommitdiffstats
path: root/Source/cmCoreTryCompile.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-04-11 14:45:56 (GMT)
committerBrad King <brad.king@kitware.com>2016-04-11 15:25:08 (GMT)
commitbd581a373373ee9807fcab35dd3e83334b73174b (patch)
treec8d918fe75350d5e80ab4533372ecd3b92634a75 /Source/cmCoreTryCompile.cxx
parent82ef90fcfccb1eaf53e4d15884ff3464aa9072a3 (diff)
downloadCMake-bd581a373373ee9807fcab35dd3e83334b73174b.zip
CMake-bd581a373373ee9807fcab35dd3e83334b73174b.tar.gz
CMake-bd581a373373ee9807fcab35dd3e83334b73174b.tar.bz2
try_compile: Honor CMAKE_<LANG>_FLAGS_<CONFIG> changes (#16054)
In the `try_compile` source file signature we propagate the caller's value of `CMAKE_<LANG>_FLAGS` into the test project. Extend this to propagate `CMAKE_<LANG>_FLAGS_<CONFIG>` too instead of always using the default value in the test project. This will be useful, for example, to allow the MSVC runtime library to be changed (e.g. `-MDd` => `-MTd`).
Diffstat (limited to 'Source/cmCoreTryCompile.cxx')
-rw-r--r--Source/cmCoreTryCompile.cxx7
1 files changed, 7 insertions, 0 deletions
diff --git a/Source/cmCoreTryCompile.cxx b/Source/cmCoreTryCompile.cxx
index bf89dcb..cfd31b2 100644
--- a/Source/cmCoreTryCompile.cxx
+++ b/Source/cmCoreTryCompile.cxx
@@ -353,6 +353,13 @@ int cmCoreTryCompile::TryCompileCode(std::vector<std::string> const& argv,
cmOutputConverter::EscapeForCMake(flags?flags:"").c_str());
fprintf(fout, "set(CMAKE_%s_FLAGS \"${CMAKE_%s_FLAGS}"
" ${COMPILE_DEFINITIONS}\")\n", li->c_str(), li->c_str());
+ static std::string const cfgDefault = "DEBUG";
+ std::string const cfg = !tcConfig.empty()?
+ cmSystemTools::UpperCase(tcConfig) : cfgDefault;
+ std::string const langFlagsCfg = "CMAKE_" + *li + "_FLAGS_" + cfg;
+ const char* flagsCfg = this->Makefile->GetDefinition(langFlagsCfg);
+ fprintf(fout, "set(%s %s)\n", langFlagsCfg.c_str(),
+ cmOutputConverter::EscapeForCMake(flagsCfg?flagsCfg:"").c_str());
}
switch(this->Makefile->GetPolicyStatus(cmPolicies::CMP0056))
{