Imported Upstream version 3.25.0
[platform/upstream/cmake.git] / Tests / RunCMake / PrecompileHeaders / RunCMakeTest.cmake
1 cmake_policy(SET CMP0057 NEW)
2 include(RunCMake)
3
4 function(run_test name)
5   set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${name}-build)
6   run_cmake(${name})
7   set(RunCMake_TEST_NO_CLEAN 1)
8   run_cmake_command(${name}-build ${CMAKE_COMMAND} --build . --config Debug)
9   run_cmake_command(${name}-test ${CMAKE_CTEST_COMMAND} -C Debug)
10 endfunction()
11
12 run_cmake(DisabledPch)
13 run_cmake(PchDebugGenex)
14 run_test(PchInterface)
15 run_cmake(PchPrologueEpilogue)
16 run_test(SkipPrecompileHeaders)
17 run_test(CXXnotC)
18 run_test(PchReuseFrom-CMP0141-OLD)
19 run_test(PchReuseFrom-CMP0141-NEW)
20 if(CMAKE_C_COMPILER_ID STREQUAL "MSVC")
21   run_test(PchReuseFrom-CMP0141-NEW-empty)
22 endif()
23 run_test(PchReuseFromPrefixed)
24 run_test(PchReuseFromSubdir)
25 run_cmake(PchMultilanguage)
26 if(RunCMake_GENERATOR MATCHES "Make|Ninja")
27   run_cmake(PchWarnInvalid)
28
29   if(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND
30       CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 11.0.0 AND
31       NOT CMAKE_C_SIMULATE_ID STREQUAL "MSVC")
32     run_cmake(PchInstantiateTemplates)
33   endif()
34 endif()
35 run_test(PchReuseFromObjLib)
36 run_test(PchIncludedAllLanguages)
37 run_test(PchIncludedOneLanguage)
38 run_test(PchLibObjLibExe)