diff options
author | Brad King <brad.king@kitware.com> | 2022-10-31 16:11:18 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2022-10-31 16:19:06 (GMT) |
commit | 183b9a9eca8bdf7684a6c281c677c58f3c0a66fd (patch) | |
tree | 88e3880abfdc0c41bacd56634905653ed5cd47dc /Tests/RunCMake/PrecompileHeaders/PchReuseFrom-common.cmake | |
parent | 4d13f472a2ebd09f6f7f3be466e5d000bbeb6908 (diff) | |
download | CMake-183b9a9eca8bdf7684a6c281c677c58f3c0a66fd.zip CMake-183b9a9eca8bdf7684a6c281c677c58f3c0a66fd.tar.gz CMake-183b9a9eca8bdf7684a6c281c677c58f3c0a66fd.tar.bz2 |
CMP0141: Fix PCH REUSE_FROM under policy NEW behavior
Under the CMP0141 NEW behavior added by commit 0e96a20478 (MSVC: Add
abstraction for debug information format, 2022-08-25, v3.25.0-rc1~142^2~1),
the `-Zi` and `-ZI` flags do not appear in `CMAKE_<LANG>_FLAGS_<CONFIG>`
anymore. Teach the PCH REUSE_FROM implementation to recognize the
`EditAndContinue` and `ProgramDatabase` debug information formats
through the policy's new abstraction.
Fixes: #24106
Diffstat (limited to 'Tests/RunCMake/PrecompileHeaders/PchReuseFrom-common.cmake')
-rw-r--r-- | Tests/RunCMake/PrecompileHeaders/PchReuseFrom-common.cmake | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Tests/RunCMake/PrecompileHeaders/PchReuseFrom-common.cmake b/Tests/RunCMake/PrecompileHeaders/PchReuseFrom-common.cmake new file mode 100644 index 0000000..8d5e945 --- /dev/null +++ b/Tests/RunCMake/PrecompileHeaders/PchReuseFrom-common.cmake @@ -0,0 +1,29 @@ +enable_language(C) + +if(CMAKE_C_COMPILE_OPTIONS_USE_PCH) + add_definitions(-DHAVE_PCH_SUPPORT) +endif() + +# Add this before the target from which we will reuse the PCH +# to test that generators can handle reversed ordering. +add_library(foo foo.c) +target_include_directories(foo PUBLIC include) + +add_library(empty empty.c) +target_precompile_headers(empty PRIVATE + <stdio.h> + <string.h> +) +target_include_directories(empty PUBLIC include) + +target_precompile_headers(foo REUSE_FROM empty) + +# should not cause problems if configured multiple times +target_precompile_headers(foo REUSE_FROM empty) + +add_executable(foobar foobar.c) +target_link_libraries(foobar foo ) +set_target_properties(foobar PROPERTIES PRECOMPILE_HEADERS_REUSE_FROM foo) + +enable_testing() +add_test(NAME foobar COMMAND foobar) |