mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-26 10:48:38 -06:00
try_compile(): Include languages with _ or - when passing linker vars
Fixes: #25809
This commit is contained in:
@@ -1163,7 +1163,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)) {
|
||||
|
||||
8
Tests/RunCMake/try_compile/ProjectVars-stdout.txt
Normal file
8
Tests/RunCMake/try_compile/ProjectVars-stdout.txt
Normal 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
|
||||
18
Tests/RunCMake/try_compile/ProjectVars.cmake
Normal file
18
Tests/RunCMake/try_compile/ProjectVars.cmake
Normal 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}")
|
||||
@@ -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)
|
||||
|
||||
12
Tests/RunCMake/try_compile/proj_vars/CMakeLists.txt
Normal file
12
Tests/RunCMake/try_compile/proj_vars/CMakeLists.txt
Normal 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}"
|
||||
)
|
||||
Reference in New Issue
Block a user