|
|
@@ -596,7 +596,7 @@ macro (enable_pch HEADER_PATHNAME)
|
|
|
# Precompiling header file
|
|
|
set_property (SOURCE ${FILE} APPEND_STRING PROPERTY COMPILE_FLAGS " /Fp$(IntDir)${PCH_FILENAME} /Yc${HEADER_FILENAME}") # Need a leading space for appending
|
|
|
else ()
|
|
|
- # Use the precompiled header file
|
|
|
+ # Using precompiled header file
|
|
|
get_property (NO_PCH SOURCE ${FILE} PROPERTY NO_PCH)
|
|
|
if (NOT NO_PCH)
|
|
|
set_property (SOURCE ${FILE} APPEND_STRING PROPERTY COMPILE_FLAGS " /Fp$(IntDir)${PCH_FILENAME} /Yu${HEADER_FILENAME} /FI${HEADER_FILENAME}")
|
|
|
@@ -620,10 +620,19 @@ macro (enable_pch HEADER_PATHNAME)
|
|
|
list (APPEND SOURCE_FILES ${CXX_FILENAME})
|
|
|
endif ()
|
|
|
endif ()
|
|
|
+ elseif (XCODE)
|
|
|
+ if (TARGET ${TARGET_NAME})
|
|
|
+ # Precompiling and using precompiled header file
|
|
|
+ set_target_properties (${TARGET_NAME} PROPERTIES XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER YES XCODE_ATTRIBUTE_GCC_PREFIX_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/${HEADER_PATHNAME})
|
|
|
+ unset (${TARGET_NAME}_HEADER_PATHNAME)
|
|
|
+ else ()
|
|
|
+ # The target has not been created yet, so set an internal variable to come back here again later
|
|
|
+ set (${TARGET_NAME}_HEADER_PATHNAME ${HEADER_PATHNAME})
|
|
|
+ endif ()
|
|
|
else ()
|
|
|
# GCC or Clang
|
|
|
if (TARGET ${TARGET_NAME})
|
|
|
- # Cache the compiler flags setup for the current scope so far
|
|
|
+ # Precompiling header file
|
|
|
get_directory_property (COMPILE_DEFINITIONS COMPILE_DEFINITIONS)
|
|
|
get_directory_property (INCLUDE_DIRECTORIES INCLUDE_DIRECTORIES)
|
|
|
get_target_property (TYPE ${TARGET_NAME} TYPE)
|
|
|
@@ -663,15 +672,12 @@ macro (enable_pch HEADER_PATHNAME)
|
|
|
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${HEADER_FILENAME}.${CONFIG}.pch.rsp ${DEPS}
|
|
|
COMMENT "Precompiling header file '${HEADER_FILENAME}' for ${CONFIG} configuration")
|
|
|
endforeach ()
|
|
|
- # Use the precompiled header file
|
|
|
+ # Using precompiled header file
|
|
|
if ($ENV{COVERITY_SCAN_BRANCH})
|
|
|
# Coverity scan does not support PCH so workaround by including the actual header file
|
|
|
set (ABS_PATH_PCH ${CMAKE_CURRENT_SOURCE_DIR}/${HEADER_PATHNAME})
|
|
|
else ()
|
|
|
- if (NOT XCODE)
|
|
|
- set (PCH_DIR ${CMAKE_CURRENT_BINARY_DIR}/)
|
|
|
- endif ()
|
|
|
- set (ABS_PATH_PCH ${PCH_DIR}${HEADER_FILENAME})
|
|
|
+ set (ABS_PATH_PCH ${CMAKE_CURRENT_BINARY_DIR}/${HEADER_FILENAME})
|
|
|
endif ()
|
|
|
foreach (FILE ${SOURCE_FILES})
|
|
|
if (FILE MATCHES \\.cpp$)
|