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);
|
vars.insert(kCMAKE_LINKER_TYPE);
|
||||||
auto defs = this->Makefile->GetDefinitions();
|
auto defs = this->Makefile->GetDefinitions();
|
||||||
cmsys::RegularExpression linkerTypeDef{
|
cmsys::RegularExpression linkerTypeDef{
|
||||||
"^CMAKE_[A-Za-z]+_USING_LINKER_"
|
"^CMAKE_[A-Za-z_-]+_USING_LINKER_"
|
||||||
};
|
};
|
||||||
for (auto const& def : defs) {
|
for (auto const& def : defs) {
|
||||||
if (linkerTypeDef.find(def)) {
|
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(Verbose)
|
||||||
|
|
||||||
|
run_cmake(ProjectVars)
|
||||||
|
|
||||||
set(RunCMake_TEST_OPTIONS --debug-trycompile)
|
set(RunCMake_TEST_OPTIONS --debug-trycompile)
|
||||||
run_cmake(PlatformVariables)
|
run_cmake(PlatformVariables)
|
||||||
run_cmake(WarnDeprecated)
|
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