summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/PrecompileHeaders/PchReuseFrom-common.cmake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2022-10-31 16:11:18 (GMT)
committerBrad King <brad.king@kitware.com>2022-10-31 16:19:06 (GMT)
commit183b9a9eca8bdf7684a6c281c677c58f3c0a66fd (patch)
tree88e3880abfdc0c41bacd56634905653ed5cd47dc /Tests/RunCMake/PrecompileHeaders/PchReuseFrom-common.cmake
parent4d13f472a2ebd09f6f7f3be466e5d000bbeb6908 (diff)
downloadCMake-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.cmake29
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)