Buildsystem: Minor PCH building changes

* *PCH.cpp are now only compiled with MSVC, other compilers use custom helper commands to generate the precompiled header
* Don't call the linker for pch helpertargets
This commit is contained in:
Shauren
2017-06-08 00:37:15 +02:00
parent 271ca88f6d
commit 137f5e7887
8 changed files with 25 additions and 9 deletions

View File

@@ -78,7 +78,7 @@ FUNCTION(GENERATE_CXX_PCH_COMMAND TARGET_NAME_LIST INCLUDE_FLAGS IN PCH_SRC OUT)
ADD_CUSTOM_COMMAND(
OUTPUT ${OUT}
COMMAND ${CMAKE_CXX_COMPILER}
ARGS ${DEFINITION_FLAGS} ${COMPILE_FLAGS} ${INCLUDE_FLAGS} -x c++-header ${IN} -o ${OUT}
ARGS ${DEFINITION_FLAGS} ${COMPILE_FLAGS} ${INCLUDE_FLAGS} -x c++-header -c ${IN} -o ${OUT}
DEPENDS ${IN} ${PCH_SRC_N}_dephelp
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)

View File

@@ -26,6 +26,9 @@ list(APPEND PRIVATE_SOURCES
if (USE_COREPCH)
set(PRIVATE_PCH_HEADER PrecompiledHeaders/commonPCH.h)
set(PRIVATE_PCH_SOURCE PrecompiledHeaders/commonPCH.cpp)
if (MSVC)
list(INSERT PRIVATE_SOURCES 0 PrecompiledHeaders/commonPCH.cpp)
endif (MSVC)
endif (USE_COREPCH)
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
@@ -33,7 +36,6 @@ GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
add_definitions(-DTRINITY_API_EXPORT_COMMON)
add_library(common
${PRIVATE_PCH_SOURCE}
${PRIVATE_SOURCES}
)

View File

@@ -26,12 +26,14 @@ endif()
if (USE_COREPCH)
set(PRIVATE_PCH_HEADER PrecompiledHeaders/bnetPCH.h)
set(PRIVATE_PCH_SOURCE PrecompiledHeaders/bnetPCH.cpp)
if (MSVC)
list(INSERT PRIVATE_SOURCES 0 PrecompiledHeaders/bnetPCH.cpp)
endif (MSVC)
endif()
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
add_executable(bnetserver
${PRIVATE_PCH_SOURCE}
${PRIVATE_SOURCES}
)

View File

@@ -17,12 +17,14 @@ CollectSourceFiles(
if (USE_COREPCH)
set(PRIVATE_PCH_HEADER PrecompiledHeaders/databasePCH.h)
set(PRIVATE_PCH_SOURCE PrecompiledHeaders/databasePCH.cpp)
if (MSVC)
list(INSERT PRIVATE_SOURCES 0 PrecompiledHeaders/databasePCH.cpp)
endif (MSVC)
endif()
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
add_library(database
${PRIVATE_PCH_SOURCE}
${PRIVATE_SOURCES}
)

View File

@@ -17,6 +17,9 @@ CollectSourceFiles(
if (USE_COREPCH)
set(PRIVATE_PCH_HEADER PrecompiledHeaders/gamePCH.h)
set(PRIVATE_PCH_SOURCE PrecompiledHeaders/gamePCH.cpp)
if (MSVC)
list(INSERT PRIVATE_SOURCES 0 PrecompiledHeaders/gamePCH.cpp)
endif (MSVC)
endif ()
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
@@ -43,7 +46,6 @@ target_link_libraries(game-interface
Detour)
add_library(game
${PRIVATE_PCH_SOURCE}
${PRIVATE_SOURCES})
target_include_directories(game

View File

@@ -25,6 +25,9 @@ CollectSourceFiles(
if (USE_COREPCH)
set(PRIVATE_PCH_HEADER PrecompiledHeaders/protoPCH.h)
set(PRIVATE_PCH_SOURCE PrecompiledHeaders/protoPCH.cpp)
if (MSVC)
list(INSERT PRIVATE_SOURCES 0 PrecompiledHeaders/protoPCH.cpp)
endif (MSVC)
endif()
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
@@ -32,7 +35,6 @@ GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
add_definitions(-DTRINITY_API_EXPORT_PROTO)
add_library(proto
${PRIVATE_PCH_SOURCE}
${PRIVATE_SOURCES}
)

View File

@@ -92,6 +92,9 @@ endforeach()
if (USE_SCRIPTPCH)
set(PRIVATE_PCH_HEADER ScriptPCH.h)
set(PRIVATE_PCH_SOURCE ScriptPCH.cpp)
if (MSVC)
list(INSERT PRIVATE_SOURCES 0 ScriptPCH.cpp)
endif (MSVC)
endif ()
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
@@ -158,9 +161,11 @@ foreach(SCRIPT_MODULE ${SCRIPT_MODULE_LIST})
GetProjectNameOfScriptModule(${SCRIPT_MODULE} SCRIPT_MODULE_PROJECT_NAME)
# Add the module name to DYNAMIC_SCRIPT_MODULES
list(APPEND DYNAMIC_SCRIPT_MODULE_PROJECTS ${SCRIPT_MODULE_PROJECT_NAME})
if (USE_SCRIPTPCH)
list(INSERT SCRIPT_MODULE_PRIVATE_SOURCES 0 ScriptPCH.cpp)
endif (USE_SCRIPTPCH)
# Create the script module project
add_library(${SCRIPT_MODULE_PROJECT_NAME} SHARED
${PRIVATE_PCH_SOURCE}
${SCRIPT_MODULE_PRIVATE_SOURCES}
${SCRIPT_MODULE_PRIVATE_SCRIPTLOADER})
target_link_libraries(${SCRIPT_MODULE_PROJECT_NAME}
@@ -200,7 +205,6 @@ ConfigureScriptLoader("static" SCRIPT_MODULE_PRIVATE_SCRIPTLOADER OFF ${STATIC_S
add_library(scripts STATIC
ScriptLoader.h
${PRIVATE_PCH_SOURCE}
${SCRIPT_MODULE_PRIVATE_SCRIPTLOADER}
${PRIVATE_SOURCES})

View File

@@ -24,12 +24,14 @@ endif()
if (USE_COREPCH)
set(PRIVATE_PCH_HEADER PrecompiledHeaders/worldPCH.h)
set(PRIVATE_PCH_SOURCE PrecompiledHeaders/worldPCH.cpp)
if (MSVC)
list(INSERT PRIVATE_SOURCES 0 PrecompiledHeaders/worldPCH.cpp)
endif (MSVC)
endif()
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
add_executable(worldserver
${PRIVATE_PCH_SOURCE}
${PRIVATE_SOURCES}
)