diff options
author | Clemens Wasser <clemens.wasser@gmail.com> | 2023-06-17 11:10:50 (GMT) |
---|---|---|
committer | Clemens Wasser <clemens.wasser@gmail.com> | 2023-06-22 16:11:45 (GMT) |
commit | 30c882827ec6f7b26fe07e5fba42f1a7400e9b36 (patch) | |
tree | e0093c98912337a2b0478b9b7867dba37db85655 /Source/CMakeLists.txt | |
parent | 17b16696d4c5cc26ed956848f7d5e9fe59a09c0a (diff) | |
download | CMake-30c882827ec6f7b26fe07e5fba42f1a7400e9b36.zip CMake-30c882827ec6f7b26fe07e5fba42f1a7400e9b36.tar.gz CMake-30c882827ec6f7b26fe07e5fba42f1a7400e9b36.tar.bz2 |
C{Make,Test}Lib: Precompile common expensive headers
Diffstat (limited to 'Source/CMakeLists.txt')
-rw-r--r-- | Source/CMakeLists.txt | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index a79366e..708aec7 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -929,6 +929,44 @@ if(WIN32 OR CMAKE_SYSTEM_NAME STREQUAL "Linux") ) endif() +if(CMake_BUILD_PCH) + target_precompile_headers(CMakeLib PRIVATE + "$<$<COMPILE_LANGUAGE:CXX>:<string$<ANGLE-R>>" + "$<$<COMPILE_LANGUAGE:CXX>:<iostream$<ANGLE-R>>" + "$<$<COMPILE_LANGUAGE:CXX>:<sstream$<ANGLE-R>>" + "$<$<COMPILE_LANGUAGE:CXX>:<iomanip$<ANGLE-R>>" + "$<$<COMPILE_LANGUAGE:CXX>:<cm/memory$<ANGLE-R>>" + "$<$<COMPILE_LANGUAGE:CXX>:<cm3p/cppdap/protocol.h$<ANGLE-R>>" + "$<$<COMPILE_LANGUAGE:CXX>:cmMakefile.h>" + "$<$<COMPILE_LANGUAGE:CXX>:cmGlobalGenerator.h>" + "$<$<COMPILE_LANGUAGE:CXX>:cmLocalGenerator.h>" + "$<$<COMPILE_LANGUAGE:CXX>:cmGeneratorTarget.h>" + "$<$<COMPILE_LANGUAGE:CXX>:cmGeneratorExpression.h>" + "$<$<COMPILE_LANGUAGE:CXX>:cmArgumentParser.h>" + "$<$<COMPILE_LANGUAGE:CXX>:cmake.h>" + "$<$<COMPILE_LANGUAGE:CXX>:cmCMakePath.h>" + "$<$<COMPILE_LANGUAGE:CXX>:cmDebuggerPipeConnection.h>" + "$<$<COMPILE_LANGUAGE:CXX>:cmCurl.h>") + + set_source_files_properties( + "LexerParser/cmFortranLexer.cxx" + PROPERTIES SKIP_PRECOMPILE_HEADERS ON) + + if(WIN32) + target_precompile_headers(CMakeLib PRIVATE + "$<$<COMPILE_LANGUAGE:CXX>:<cm3p/uv.h$<ANGLE-R>>" + "$<$<COMPILE_LANGUAGE:CXX>:cmVSSetupHelper.h>") + set_source_files_properties("LexerParser/cmFortranParser.cxx" PROPERTIES SKIP_PRECOMPILE_HEADERS ON) + else() + set_source_files_properties( + "LexerParser/cmCommandArgumentLexer.cxx" + "LexerParser/cmGccDepfileLexer.cxx" + "LexerParser/cmExprLexer.cxx" + "LexerParser/cmDependsJavaLexer.cxx" + PROPERTIES SKIP_PRECOMPILE_HEADERS ON) + endif() +endif() + # Temporary variable for tools targets set(_tools) @@ -1041,6 +1079,24 @@ target_include_directories( ) target_link_libraries(CTestLib PUBLIC CMakeLib) +if(CMake_BUILD_PCH) + target_precompile_headers(CTestLib PRIVATE + "cmDuration.h" + "cmMakefile.h" + "cmSystemTools.h" + "cmGlobalGenerator.h" + "cmake.h" + "CTest/cmCTestGenericHandler.h" + "<sstream>" + "<cm3p/uv.h>") + + if(WIN32) + target_precompile_headers(CTestLib PRIVATE "cmCurl.h" "CTest/cmCTestMultiProcessHandler.h") + else() + set_source_files_properties("LexerParser/cmCTestResourceGroupsLexer.cxx" PROPERTIES SKIP_PRECOMPILE_HEADERS ON) + endif() +endif() + # # Build CPackLib # |