diff options
author | Klein, Thorsten (BSH) <thorsten.klein@bshg.com> | 2022-03-28 11:01:08 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2022-03-29 14:36:28 (GMT) |
commit | 211a9deac1d4144c7d7ce18ecb6c5d21c4854eaa (patch) | |
tree | a2d1fc22e1fb674146983bf29a486c273638bc7f /Tests/RunCMake/CompilerArgs | |
parent | b4de4217aefedaf46cbb1d700cbd463c3d2d8914 (diff) | |
download | CMake-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.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/CompilerArgs/C.cmake | 1 | ||||
-rw-r--r-- | Tests/RunCMake/CompilerArgs/CXX-stdout.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/CompilerArgs/CXX.cmake | 1 | ||||
-rw-r--r-- | Tests/RunCMake/CompilerArgs/RunCMakeTest.cmake | 10 |
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) |