diff options
author | Adam <Adam@anope.org> | 2011-02-16 12:50:23 -0500 |
---|---|---|
committer | Adam <Adam@anope.org> | 2011-02-16 12:50:23 -0500 |
commit | 18bd33f9a477f7ce00d6f3c00acc0b0b68f5028d (patch) | |
tree | ed5fda786329c9238f83aa50237a72062cf98b8b /include/CMakeLists.txt | |
parent | d436e4ca4a0043272061c64468b630168267dabe (diff) |
Use precompiled headers when building with gnu g++ to speed up build time
Diffstat (limited to 'include/CMakeLists.txt')
-rw-r--r-- | include/CMakeLists.txt | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index c484334c1..8b292aea2 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -16,5 +16,26 @@ if(NOT WIN32) add_to_cpack_ignored_files("version.h$" TRUE) endif(NOT WIN32) +set(PCH_SOURCES_GCH "") +if(CMAKE_COMPILER_IS_GNUCXX) + string(REPLACE " " ";" PCH_CXXFLAGS ${CXXFLAGS}) + + set(PCH_SOURCES "module.h;modules.h;services.h") + foreach(PCH_SOURCE ${PCH_SOURCES}) + set(PCH_EXTRAFLAGS "") + if(DEBUG_BUILD) + set(PCH_EXTRAFLAGS "-g") + endif(DEBUG_BUILD) + if(PCH_SOURCE STREQUAL "module.h") + set(PCH_EXTRAFLAGS ${PCH_EXTRAFLAGS} -fPIC) + endif(PCH_SOURCE STREQUAL "module.h") + + set(PCH_SOURCES_GCH "${PCH_SOURCES_GCH};${CMAKE_CURRENT_BINARY_DIR}/${PCH_SOURCE}.gch") + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${PCH_SOURCE}.gch + COMMAND ${CMAKE_CXX_COMPILER} ARGS ${PCH_CXXFLAGS} ${PCH_EXTRAFLAGS} -I${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${PCH_SOURCE} -o ${CMAKE_CURRENT_BINARY_DIR}/${PCH_SOURCE}.gch VERBATIM + ) + endforeach(PCH_SOURCE ${PCH_SOURCES}) +endif(CMAKE_COMPILER_IS_GNUCXX) + # Add a custom target to the above file -add_custom_target(headers DEPENDS version ${CMAKE_CURRENT_BINARY_DIR}/version.h) +add_custom_target(headers DEPENDS version ${CMAKE_CURRENT_BINARY_DIR}/version.h ${PCH_SOURCES_GCH}) |