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