summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/CompilerArgs
diff options
context:
space:
mode:
authorKlein, Thorsten (BSH) <thorsten.klein@bshg.com>2022-03-28 11:01:08 (GMT)
committerBrad King <brad.king@kitware.com>2022-03-29 14:36:28 (GMT)
commit211a9deac1d4144c7d7ce18ecb6c5d21c4854eaa (patch)
treea2d1fc22e1fb674146983bf29a486c273638bc7f /Tests/RunCMake/CompilerArgs
parentb4de4217aefedaf46cbb1d700cbd463c3d2d8914 (diff)
downloadCMake-211a9deac1d4144c7d7ce18ecb6c5d21c4854eaa.zip
CMake-211a9deac1d4144c7d7ce18ecb6c5d21c4854eaa.tar.gz
CMake-211a9deac1d4144c7d7ce18ecb6c5d21c4854eaa.tar.bz2
Preserve CMAKE_${lang}_COMPILER_ARG1 from existing CMakeCache.txt
`CMAKE_<LANG>_COMPILER` may be a list if it was defined by a toolchain file. In this case we move the args to `CMAKE_<LANG>_COMPILER_ARG1`. If `CMAKE_<LANG>_COMPILER` is not a list, then it might have been cached by a previous run that split the `CC` or `CXX` environment variable into `CMAKE_<LANG>_COMPILER` and `CMAKE_<LANG>_COMPILER_ARG1`. In this latter case, avoid clobbering `CMAKE_<LANG>_COMPILER_ARG1`. Fixes: #23358
Diffstat (limited to 'Tests/RunCMake/CompilerArgs')
-rw-r--r--Tests/RunCMake/CompilerArgs/C-stdout.txt1
-rw-r--r--Tests/RunCMake/CompilerArgs/C.cmake1
-rw-r--r--Tests/RunCMake/CompilerArgs/CXX-stdout.txt1
-rw-r--r--Tests/RunCMake/CompilerArgs/CXX.cmake1
-rw-r--r--Tests/RunCMake/CompilerArgs/RunCMakeTest.cmake10
5 files changed, 14 insertions, 0 deletions
diff --git a/Tests/RunCMake/CompilerArgs/C-stdout.txt b/Tests/RunCMake/CompilerArgs/C-stdout.txt
new file mode 100644
index 0000000..e553cbb
--- /dev/null
+++ b/Tests/RunCMake/CompilerArgs/C-stdout.txt
@@ -0,0 +1 @@
+-- CMAKE_C_COMPILER_ARG1=' ?-DFOO1 -DFOO2'
diff --git a/Tests/RunCMake/CompilerArgs/C.cmake b/Tests/RunCMake/CompilerArgs/C.cmake
index 96b004b..0fbfdd2 100644
--- a/Tests/RunCMake/CompilerArgs/C.cmake
+++ b/Tests/RunCMake/CompilerArgs/C.cmake
@@ -1,3 +1,4 @@
enable_language(C)
set(CMAKE_VERBOSE_MAKEFILE TRUE)
+message(STATUS "CMAKE_C_COMPILER_ARG1='${CMAKE_C_COMPILER_ARG1}'")
add_executable(main main.c)
diff --git a/Tests/RunCMake/CompilerArgs/CXX-stdout.txt b/Tests/RunCMake/CompilerArgs/CXX-stdout.txt
new file mode 100644
index 0000000..c543d3b
--- /dev/null
+++ b/Tests/RunCMake/CompilerArgs/CXX-stdout.txt
@@ -0,0 +1 @@
+-- CMAKE_CXX_COMPILER_ARG1=' ?-DFOO1 -DFOO2'
diff --git a/Tests/RunCMake/CompilerArgs/CXX.cmake b/Tests/RunCMake/CompilerArgs/CXX.cmake
index 3d2ee00..b6cf87e 100644
--- a/Tests/RunCMake/CompilerArgs/CXX.cmake
+++ b/Tests/RunCMake/CompilerArgs/CXX.cmake
@@ -1,3 +1,4 @@
enable_language(CXX)
set(CMAKE_VERBOSE_MAKEFILE TRUE)
+message(STATUS "CMAKE_CXX_COMPILER_ARG1='${CMAKE_CXX_COMPILER_ARG1}'")
add_executable(main main.cxx)
diff --git a/Tests/RunCMake/CompilerArgs/RunCMakeTest.cmake b/Tests/RunCMake/CompilerArgs/RunCMakeTest.cmake
index 5e8b39b..62294cd 100644
--- a/Tests/RunCMake/CompilerArgs/RunCMakeTest.cmake
+++ b/Tests/RunCMake/CompilerArgs/RunCMakeTest.cmake
@@ -31,6 +31,11 @@ function(run_compiler_env lang)
run_cmake(${lang})
set(RunCMake_TEST_NO_CLEAN 1)
run_cmake_command(${lang}-Build ${CMAKE_COMMAND} --build . ${verbose_args})
+
+ file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}/CMakeFiles")
+ set(RunCMake_TEST_VARIANT_DESCRIPTION "-env-cached")
+ run_cmake(${lang})
+ run_cmake_command(${lang}-Build ${CMAKE_COMMAND} --build . ${verbose_args})
endfunction()
function(run_compiler_tc lang)
@@ -42,6 +47,11 @@ function(run_compiler_tc lang)
run_cmake(${lang})
set(RunCMake_TEST_NO_CLEAN 1)
run_cmake_command(${lang}-Build ${CMAKE_COMMAND} --build . ${verbose_args})
+
+ file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}/CMakeFiles")
+ set(RunCMake_TEST_VARIANT_DESCRIPTION "-tc-cached")
+ run_cmake(${lang})
+ run_cmake_command(${lang}-Build ${CMAKE_COMMAND} --build . ${verbose_args})
endfunction()
set(langs C CXX)