mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-13 01:29:02 -05:00
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:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user