aboutsummaryrefslogtreecommitdiff
path: root/cmake/macros/FindPCHSupport.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/macros/FindPCHSupport.cmake')
-rw-r--r--cmake/macros/FindPCHSupport.cmake10
1 files changed, 9 insertions, 1 deletions
diff --git a/cmake/macros/FindPCHSupport.cmake b/cmake/macros/FindPCHSupport.cmake
index f58634bb407..3dcd81baa90 100644
--- a/cmake/macros/FindPCHSupport.cmake
+++ b/cmake/macros/FindPCHSupport.cmake
@@ -121,9 +121,17 @@ FUNCTION(ADD_CXX_PCH_MSVC TARGET_NAME_LIST PCH_HEADER PCH_SOURCE)
GET_COMMON_PCH_PARAMS("${TARGET_NAME_LIST}" ${PCH_HEADER} "pch" "/I")
FOREACH(TARGET_NAME ${TARGET_NAME_LIST})
+ SET(PCH_COMPILE_FLAGS "/FI${PCH_HEADER_NAME} /Yu${PCH_HEADER_NAME}")
+ IF (NOT ${CMAKE_MAKE_PROGRAM} MATCHES "MSBuild")
+ SET(PCH_COMPILE_FLAGS "${PCH_COMPILE_FLAGS} /Fp${PCH_HEADER_OUT}")
+ SET(TARGET_SOURCES_LIST "")
+ GET_PROPERTY(TARGET_SOURCES_LIST TARGET ${TARGET_NAME} PROPERTY SOURCES)
+ LIST(REMOVE_ITEM TARGET_SOURCES_LIST ${PCH_SOURCE})
+ SET_SOURCE_FILES_PROPERTIES(${TARGET_SOURCES_LIST} PROPERTIES OBJECT_DEPENDS "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${TARGET_NAME}.dir/${PCH_SOURCE}.obj")
+ ENDIF()
SET_TARGET_PROPERTIES(
${TARGET_NAME} PROPERTIES
- COMPILE_FLAGS "/FI${PCH_HEADER_NAME} /Yu${PCH_HEADER_NAME}"
+ COMPILE_FLAGS "${PCH_COMPILE_FLAGS}"
)
ENDFOREACH()