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)
 | 
						|
 |