| 
									
										
										
										
											2013-12-23 02:01:39 +08:00
										 |  |  | # Writes a config file
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-30 04:13:13 +08:00
										 |  |  | set(GTSAM_CONFIG_TEMPLATE_PATH ${CMAKE_CURRENT_LIST_DIR})
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-23 02:01:39 +08:00
										 |  |  | function(GtsamMakeConfigFile PACKAGE_NAME)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if(WIN32 AND NOT CYGWIN)
 | 
					
						
							|  |  |  | 		set(DEF_INSTALL_CMAKE_DIR CMake)
 | 
					
						
							|  |  |  | 	else()
 | 
					
						
							|  |  |  | 		set(DEF_INSTALL_CMAKE_DIR lib/cmake/${PACKAGE_NAME})
 | 
					
						
							|  |  |  | 	endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	# Configure extra file
 | 
					
						
							|  |  |  | 	if(NOT "${ARGV1}" STREQUAL "")
 | 
					
						
							|  |  |  | 		get_filename_component(name "${ARGV1}" NAME_WE)
 | 
					
						
							|  |  |  | 		set(EXTRA_FILE "${name}.cmake")
 | 
					
						
							|  |  |  | 		configure_file(${ARGV1} "${PROJECT_BINARY_DIR}/${EXTRA_FILE}" @ONLY)
 | 
					
						
							| 
									
										
										
										
											2019-12-23 00:09:50 +08:00
										 |  |  | 		install(FILES "${PROJECT_BINARY_DIR}/${EXTRA_FILE}" DESTINATION "${DEF_INSTALL_CMAKE_DIR}")
 | 
					
						
							| 
									
										
										
										
											2013-12-23 02:01:39 +08:00
										 |  |  | 	else()
 | 
					
						
							|  |  |  | 		set(EXTRA_FILE "_does_not_exist_")
 | 
					
						
							|  |  |  | 	endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-03 23:45:58 +08:00
										 |  |  | 	# GTSAM defines its version variable as GTSAM_VERSION_STRING while other
 | 
					
						
							|  |  |  | 	# projects may define it as <ProjectName>_VERSION. Since this file is
 | 
					
						
							|  |  |  | 	# installed on the system as part of GTSAMCMakeTools and may be useful in
 | 
					
						
							|  |  |  | 	# external projects, we need to handle both cases of version variable naming
 | 
					
						
							|  |  |  | 	# here.
 | 
					
						
							|  |  |  | 	if(NOT DEFINED ${PACKAGE_NAME}_VERSION AND DEFINED ${PACKAGE_NAME}_VERSION_STRING)
 | 
					
						
							|  |  |  | 		set(${PACKAGE_NAME}_VERSION ${${PACKAGE_NAME}_VERSION_STRING})
 | 
					
						
							| 
									
										
										
										
											2021-10-24 00:45:44 +08:00
										 |  |  | 	elseif(NOT DEFINED ${PACKAGE_NAME}_VERSION_STRING)
 | 
					
						
							|  |  |  | 		set(${PACKAGE_NAME}_VERSION ${GTSAM_VERSION_STRING})
 | 
					
						
							| 
									
										
										
										
											2019-10-03 23:45:58 +08:00
										 |  |  | 	endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	# Version file
 | 
					
						
							|  |  |  | 	include(CMakePackageConfigHelpers)
 | 
					
						
							|  |  |  | 	write_basic_package_version_file( | 
					
						
							|  |  |  | 	  "${PROJECT_BINARY_DIR}/${PACKAGE_NAME}ConfigVersion.cmake"
 | 
					
						
							|  |  |  | 	  VERSION ${${PACKAGE_NAME}_VERSION}
 | 
					
						
							|  |  |  | 	  COMPATIBILITY SameMajorVersion
 | 
					
						
							|  |  |  | 	)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	# Config file
 | 
					
						
							| 
									
										
										
										
											2013-12-23 02:01:39 +08:00
										 |  |  | 	file(RELATIVE_PATH CONF_REL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/${DEF_INSTALL_CMAKE_DIR}" "${CMAKE_INSTALL_PREFIX}/include")
 | 
					
						
							|  |  |  | 	file(RELATIVE_PATH CONF_REL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/${DEF_INSTALL_CMAKE_DIR}" "${CMAKE_INSTALL_PREFIX}/lib")
 | 
					
						
							| 
									
										
										
										
											2013-12-30 04:13:13 +08:00
										 |  |  | 	configure_file(${GTSAM_CONFIG_TEMPLATE_PATH}/Config.cmake.in "${PROJECT_BINARY_DIR}/${PACKAGE_NAME}Config.cmake" @ONLY)
 | 
					
						
							| 
									
										
										
										
											2013-12-23 02:01:39 +08:00
										 |  |  | 	message(STATUS "Wrote ${PROJECT_BINARY_DIR}/${PACKAGE_NAME}Config.cmake")
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-03 23:45:58 +08:00
										 |  |  | 	# Install config, version and exports files (for find scripts)
 | 
					
						
							|  |  |  | 	install( | 
					
						
							|  |  |  | 		FILES
 | 
					
						
							|  |  |  | 			"${PROJECT_BINARY_DIR}/${PACKAGE_NAME}Config.cmake"
 | 
					
						
							|  |  |  | 			"${PROJECT_BINARY_DIR}/${PACKAGE_NAME}ConfigVersion.cmake"
 | 
					
						
							|  |  |  | 		DESTINATION
 | 
					
						
							|  |  |  | 			"${CMAKE_INSTALL_PREFIX}/${DEF_INSTALL_CMAKE_DIR}"
 | 
					
						
							|  |  |  | 	)
 | 
					
						
							| 
									
										
										
										
											2013-12-23 02:01:39 +08:00
										 |  |  | 	install(EXPORT ${PACKAGE_NAME}-exports DESTINATION ${DEF_INSTALL_CMAKE_DIR})
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | endfunction()
 |