Merge topic 'linker-vars-propagate-try_compile'

98cc86e265 try_compile(): Include languages with _ or - when passing linker vars

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !9361
This commit is contained in:
Brad King 2024-03-24 18:33:17 +00:00 committed by Kitware Robot
commit 899af83755
5 changed files with 41 additions and 1 deletions

View File

@ -1164,7 +1164,7 @@ cm::optional<cmTryCompileResult> cmCoreTryCompile::TryCompileCode(
vars.insert(kCMAKE_LINKER_TYPE);
auto defs = this->Makefile->GetDefinitions();
cmsys::RegularExpression linkerTypeDef{
"^CMAKE_[A-Za-z]+_USING_LINKER_"
"^CMAKE_[A-Za-z_-]+_USING_LINKER_"
};
for (auto const& def : defs) {
if (linkerTypeDef.find(def)) {

View File

@ -0,0 +1,8 @@
CMAKE_LINKER_TYPE = DEFAULT
.*CMAKE_C_USING_LINKER_MODE = [^
]*
.*CMAKE_C_USING_LINKER_abc123 = /path/to/somewhere
.*CMAKE_C_USING_LINKER_Hi_There = some-tool
.*CMAKE_ASM_NASM_USING_LINKER_custom = /place/holder
.*CMAKE_ASM-ATT_USING_LINKER_custom = /more/text
.*CMAKE_ASM-ATT_USING_LINKER_MODE = TOOL

View File

@ -0,0 +1,18 @@
cmake_minimum_required(VERSION 3.29)
enable_language(C)
set(CMAKE_LINKER_TYPE DEFAULT)
set(CMAKE_C_USING_LINKER_abc123 /path/to/somewhere)
set(CMAKE_C_USING_LINKER_Hi_There some-tool)
set(CMAKE_ASM_NASM_USING_LINKER_custom /place/holder)
set(CMAKE_ASM-ATT_USING_LINKER_custom /more/text)
set(CMAKE_ASM-ATT_USING_LINKER_MODE TOOL)
try_compile(RESULT
PROJECT TestProject
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/proj_vars
OUTPUT_VARIABLE output
)
message(STATUS "\n${output}")

View File

@ -47,6 +47,8 @@ run_cmake(NonSourceCompileDefinitions)
run_cmake(Verbose)
run_cmake(ProjectVars)
set(RunCMake_TEST_OPTIONS --debug-trycompile)
run_cmake(PlatformVariables)
run_cmake(WarnDeprecated)

View File

@ -0,0 +1,12 @@
cmake_minimum_required(VERSION 3.29)
project(TestProject LANGUAGES NONE)
add_custom_target(show_vars ALL
COMMAND ${CMAKE_COMMAND} -E echo "CMAKE_LINKER_TYPE = ${CMAKE_LINKER_TYPE}"
COMMAND ${CMAKE_COMMAND} -E echo "CMAKE_C_USING_LINKER_MODE = ${CMAKE_C_USING_LINKER_MODE}"
COMMAND ${CMAKE_COMMAND} -E echo "CMAKE_C_USING_LINKER_abc123 = ${CMAKE_C_USING_LINKER_abc123}"
COMMAND ${CMAKE_COMMAND} -E echo "CMAKE_C_USING_LINKER_Hi_There = ${CMAKE_C_USING_LINKER_Hi_There}"
COMMAND ${CMAKE_COMMAND} -E echo "CMAKE_ASM_NASM_USING_LINKER_custom = ${CMAKE_ASM_NASM_USING_LINKER_custom}"
COMMAND ${CMAKE_COMMAND} -E echo "CMAKE_ASM-ATT_USING_LINKER_custom = ${CMAKE_ASM-ATT_USING_LINKER_custom}"
COMMAND ${CMAKE_COMMAND} -E echo "CMAKE_ASM-ATT_USING_LINKER_MODE = ${CMAKE_ASM-ATT_USING_LINKER_MODE}"
)