Merge topic 'try_compile-copy-config' into release-3.25

80fc564dd7 try_compile: Restore COPY_FILE with CMAKE_TRY_COMPILE_CONFIGURATION

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Acked-by: Robert Maynard <robertjmaynard@gmail.com>
Merge-request: !7948
This commit is contained in:
Brad King
2022-11-23 12:09:01 +00:00
committed by Kitware Robot
3 changed files with 20 additions and 4 deletions
+11 -4
View File
@@ -206,6 +206,8 @@ auto const TryRunSourcesArgParser =
auto const TryRunOldArgParser = makeTryRunParser(TryCompileOldArgParser);
#undef BIND_LANG_PROPS
std::string const TryCompileDefaultConfig = "DEBUG";
}
Arguments cmCoreTryCompile::ParseArgs(
@@ -706,9 +708,9 @@ bool cmCoreTryCompile::TryCompileCode(Arguments& arguments,
CM_FALLTHROUGH;
case cmPolicies::NEW: {
// NEW behavior is to pass config-specific compiler flags.
static std::string const cfgDefault = "DEBUG";
std::string const cfg =
!tcConfig.empty() ? cmSystemTools::UpperCase(tcConfig) : cfgDefault;
std::string const cfg = !tcConfig.empty()
? cmSystemTools::UpperCase(tcConfig)
: TryCompileDefaultConfig;
for (std::string const& li : testLangs) {
std::string const langFlagsCfg =
cmStrCat("CMAKE_", li, "_FLAGS_", cfg);
@@ -1199,7 +1201,12 @@ void cmCoreTryCompile::FindOutputFile(const std::string& targetName)
tmpOutputFile += targetName;
if (this->Makefile->GetGlobalGenerator()->IsMultiConfig()) {
tmpOutputFile += "_DEBUG";
std::string const tcConfig =
this->Makefile->GetSafeDefinition("CMAKE_TRY_COMPILE_CONFIGURATION");
std::string const cfg = !tcConfig.empty()
? cmSystemTools::UpperCase(tcConfig)
: TryCompileDefaultConfig;
tmpOutputFile = cmStrCat(tmpOutputFile, '_', cfg);
}
tmpOutputFile += "_loc";
@@ -0,0 +1,8 @@
enable_language(C)
set(CMAKE_TRY_COMPILE_CONFIGURATION Release)
include(${CMAKE_CURRENT_SOURCE_DIR}/${try_compile_DEFS})
try_compile(RESULT
${try_compile_bindir_or_SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/src.c
COPY_FILE "${CMAKE_CURRENT_BINARY_DIR}/out.bin"
)
@@ -23,6 +23,7 @@ run_cmake(TryRunArgs)
run_cmake(BuildType)
run_cmake(BuildTypeAsFlag)
run_cmake(OutputDirAsFlag)
run_cmake(CopyFileConfig)
run_cmake(EnvConfig)