diff options
author | Brad King <brad.king@kitware.com> | 2021-04-07 17:36:23 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2021-04-07 17:53:22 (GMT) |
commit | 3953dfcb315f6d85966703f01c7fbb0ac262e928 (patch) | |
tree | bedb763e0afdccbcc64fa5c6ae186eb83ff80fee /Tests | |
parent | f8af94a2124d61e33f71f67b4ae282475314da25 (diff) | |
download | CMake-3953dfcb315f6d85966703f01c7fbb0ac262e928.zip CMake-3953dfcb315f6d85966703f01c7fbb0ac262e928.tar.gz CMake-3953dfcb315f6d85966703f01c7fbb0ac262e928.tar.bz2 |
Restore support for backslashes in initial language-wide flags
Refactoring in commit bdc40742bd (CMakeDetermineCompilerId: Test without
COMPILER_ID_FLAGS if REQUIRE_SUCCESS, 2021-02-27, v3.20.0-rc3~6^2) added
an extra macro layer through which flag strings are passed. That caused
an extra level of argument re-parsing, and broke flags with backslashes.
Pass flags to the helper macro through variable names instead.
Fixes: #22041
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/RunCMake/CMakeLists.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/InitialFlags/C-stdout.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/InitialFlags/C.cmake | 3 | ||||
-rw-r--r-- | Tests/RunCMake/InitialFlags/CMakeLists.txt | 3 | ||||
-rw-r--r-- | Tests/RunCMake/InitialFlags/CXX-stdout.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/InitialFlags/CXX.cmake | 3 | ||||
-rw-r--r-- | Tests/RunCMake/InitialFlags/RunCMakeTest.cmake | 7 |
7 files changed, 19 insertions, 0 deletions
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index f33e4af..78e0b6a 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -243,6 +243,7 @@ add_RunCMake_test(FileAPI -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} add_RunCMake_test(FindBoost) add_RunCMake_test(FindLua) add_RunCMake_test(FindOpenGL) +add_RunCMake_test(InitialFlags) if(CMake_TEST_FindOpenSSL) add_RunCMake_test(FindOpenSSL) endif() diff --git a/Tests/RunCMake/InitialFlags/C-stdout.txt b/Tests/RunCMake/InitialFlags/C-stdout.txt new file mode 100644 index 0000000..9a7341d --- /dev/null +++ b/Tests/RunCMake/InitialFlags/C-stdout.txt @@ -0,0 +1 @@ +CMAKE_C_FLAGS='[^']*-Denv="a\\b"[^']+-Dvar="b\\c"[^']*' diff --git a/Tests/RunCMake/InitialFlags/C.cmake b/Tests/RunCMake/InitialFlags/C.cmake new file mode 100644 index 0000000..5afc395 --- /dev/null +++ b/Tests/RunCMake/InitialFlags/C.cmake @@ -0,0 +1,3 @@ +set(CMAKE_C_FLAGS_INIT [[-Dvar="b\c"]]) +enable_language(C) +message(STATUS "CMAKE_C_FLAGS='${CMAKE_C_FLAGS}'") diff --git a/Tests/RunCMake/InitialFlags/CMakeLists.txt b/Tests/RunCMake/InitialFlags/CMakeLists.txt new file mode 100644 index 0000000..7cabeb6 --- /dev/null +++ b/Tests/RunCMake/InitialFlags/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 3.20) +project(${RunCMake_TEST} NONE) +include(${RunCMake_TEST}.cmake) diff --git a/Tests/RunCMake/InitialFlags/CXX-stdout.txt b/Tests/RunCMake/InitialFlags/CXX-stdout.txt new file mode 100644 index 0000000..623b74a --- /dev/null +++ b/Tests/RunCMake/InitialFlags/CXX-stdout.txt @@ -0,0 +1 @@ +CMAKE_CXX_FLAGS='[^']*-Denv="a\\b"[^']+-Dvar="b\\c"[^']*' diff --git a/Tests/RunCMake/InitialFlags/CXX.cmake b/Tests/RunCMake/InitialFlags/CXX.cmake new file mode 100644 index 0000000..1d7a53c --- /dev/null +++ b/Tests/RunCMake/InitialFlags/CXX.cmake @@ -0,0 +1,3 @@ +set(CMAKE_CXX_FLAGS_INIT [[-Dvar="b\c"]]) +enable_language(CXX) +message(STATUS "CMAKE_CXX_FLAGS='${CMAKE_CXX_FLAGS}'") diff --git a/Tests/RunCMake/InitialFlags/RunCMakeTest.cmake b/Tests/RunCMake/InitialFlags/RunCMakeTest.cmake new file mode 100644 index 0000000..d13019e --- /dev/null +++ b/Tests/RunCMake/InitialFlags/RunCMakeTest.cmake @@ -0,0 +1,7 @@ +include(RunCMake) + +set(ENV{CFLAGS} "$ENV{CFLAGS} -Denv=\"a\\b\"") +run_cmake(C) + +set(ENV{CXXFLAGS} "$ENV{CXXFLAGS} -Denv=\"a\\b\"") +run_cmake(CXX) |