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