28 lines
1.2 KiB
CMake
28 lines
1.2 KiB
CMake
###############################################################################
|
|
# Macro:
|
|
#
|
|
# gtsamAddPch(precompiledHeader precompiledSource sources)
|
|
#
|
|
# Adds a precompiled header to compile all sources with. Currently only on MSVC.
|
|
# Inspired by https://stackoverflow.com/questions/148570/
|
|
#
|
|
# Arguments:
|
|
# precompiledHeader: the header file that includes headers to be precompiled.
|
|
# precompiledSource: the source file that simply includes that header above.
|
|
# sources: the list of source files to apply this to.
|
|
#
|
|
macro(gtsamAddPch precompiledHeader precompiledSource sources)
|
|
get_filename_component(pchBasename ${precompiledHeader} NAME_WE)
|
|
SET(precompiledBinary "${CMAKE_CURRENT_BINARY_DIR}/${pchBasename}.pch")
|
|
IF(MSVC)
|
|
message(STATUS "Adding precompiled header for MSVC")
|
|
set_source_files_properties(${precompiledSource}
|
|
PROPERTIES COMPILE_FLAGS "/Yc\"${precompiledHeader}\" /Fp\"${precompiledBinary}\""
|
|
OBJECT_OUTPUTS "${precompiledBinary}")
|
|
set_source_files_properties(${sources}
|
|
PROPERTIES COMPILE_FLAGS "/Yu\"${precompiledHeader}\" /FI\"${precompiledHeader}\" /Fp\"${precompiledBinary}\""
|
|
OBJECT_DEPENDS "${precompiledBinary}")
|
|
ENDIF(MSVC)
|
|
endmacro(gtsamAddPch)
|
|
|