summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2024-03-24 18:33:17 (GMT)
committerKitware Robot <kwrobot@kitware.com>2024-03-24 18:33:31 (GMT)
commit899af837559d3003ac83b85891488b12105e5b6e (patch)
tree365a9e76fedf2ac1dd46bd1453af6ff893ab720e
parentdbe05e4d7c787a0293e0f9563d936b51883e6495 (diff)
parent98cc86e26545300c120481fc230b9fd270dbb226 (diff)
downloadCMake-899af837559d3003ac83b85891488b12105e5b6e.zip
CMake-899af837559d3003ac83b85891488b12105e5b6e.tar.gz
CMake-899af837559d3003ac83b85891488b12105e5b6e.tar.bz2
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
-rw-r--r--Source/cmCoreTryCompile.cxx2
-rw-r--r--Tests/RunCMake/try_compile/ProjectVars-stdout.txt8
-rw-r--r--Tests/RunCMake/try_compile/ProjectVars.cmake18
-rw-r--r--Tests/RunCMake/try_compile/RunCMakeTest.cmake2
-rw-r--r--Tests/RunCMake/try_compile/proj_vars/CMakeLists.txt12
5 files changed, 41 insertions, 1 deletions
diff --git a/Source/cmCoreTryCompile.cxx b/Source/cmCoreTryCompile.cxx
index 25fc52f..6d3e01c 100644
--- a/Source/cmCoreTryCompile.cxx
+++ b/Source/cmCoreTryCompile.cxx
@@ -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)) {
diff --git a/Tests/RunCMake/try_compile/ProjectVars-stdout.txt b/Tests/RunCMake/try_compile/ProjectVars-stdout.txt
new file mode 100644
index 0000000..1744bbc
--- /dev/null
+++ b/Tests/RunCMake/try_compile/ProjectVars-stdout.txt
@@ -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
diff --git a/Tests/RunCMake/try_compile/ProjectVars.cmake b/Tests/RunCMake/try_compile/ProjectVars.cmake
new file mode 100644
index 0000000..f51fa7d
--- /dev/null
+++ b/Tests/RunCMake/try_compile/ProjectVars.cmake
@@ -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}")
diff --git a/Tests/RunCMake/try_compile/RunCMakeTest.cmake b/Tests/RunCMake/try_compile/RunCMakeTest.cmake
index 29c0538..229c102 100644
--- a/Tests/RunCMake/try_compile/RunCMakeTest.cmake
+++ b/Tests/RunCMake/try_compile/RunCMakeTest.cmake
@@ -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)
diff --git a/Tests/RunCMake/try_compile/proj_vars/CMakeLists.txt b/Tests/RunCMake/try_compile/proj_vars/CMakeLists.txt
new file mode 100644
index 0000000..7f97ff2
--- /dev/null
+++ b/Tests/RunCMake/try_compile/proj_vars/CMakeLists.txt
@@ -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}"
+)