Ensure exported package is relocatable
As per CMake's Importing and Exporting Guide[1], configure_package_config_file() should be used for configuring the package configuration file, not the regular configure_file() function. This ensures that a spdlog package built on one system (with a given directory tree) can be imported from a different system - e.g. creating a pre-compiled spdlog package for use on different systems. [1]: https://cmake.org/cmake/help/git-stage/guide/importing-exporting/index.html#id8
This commit is contained in:
		@@ -307,7 +307,8 @@ if(SPDLOG_INSTALL)
 | 
				
			|||||||
    install(EXPORT spdlog DESTINATION ${export_dest_dir} NAMESPACE spdlog:: FILE ${config_targets_file})
 | 
					    install(EXPORT spdlog DESTINATION ${export_dest_dir} NAMESPACE spdlog:: FILE ${config_targets_file})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    include(CMakePackageConfigHelpers)
 | 
					    include(CMakePackageConfigHelpers)
 | 
				
			||||||
    configure_file("${project_config_in}" "${project_config_out}" @ONLY)
 | 
					    configure_package_config_file("${project_config_in}" "${project_config_out}"
 | 
				
			||||||
 | 
					        INSTALL_DESTINATION ${export_dest_dir})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    write_basic_package_version_file("${version_config_file}" COMPATIBILITY SameMajorVersion)
 | 
					    write_basic_package_version_file("${version_config_file}" COMPATIBILITY SameMajorVersion)
 | 
				
			||||||
    install(FILES "${project_config_out}" "${version_config_file}" DESTINATION "${export_dest_dir}")
 | 
					    install(FILES "${project_config_out}" "${version_config_file}" DESTINATION "${export_dest_dir}")
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,8 @@
 | 
				
			|||||||
# Copyright(c) 2019 spdlog authors
 | 
					# Copyright(c) 2019 spdlog authors
 | 
				
			||||||
# Distributed under the MIT License (http://opensource.org/licenses/MIT)
 | 
					# Distributed under the MIT License (http://opensource.org/licenses/MIT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@PACKAGE_INIT@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
find_package(Threads REQUIRED)
 | 
					find_package(Threads REQUIRED)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set(SPDLOG_FMT_EXTERNAL @SPDLOG_FMT_EXTERNAL@)
 | 
					set(SPDLOG_FMT_EXTERNAL @SPDLOG_FMT_EXTERNAL@)
 | 
				
			||||||
@@ -13,3 +15,5 @@ endif()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
include("${CMAKE_CURRENT_LIST_DIR}/${config_targets_file}")
 | 
					include("${CMAKE_CURRENT_LIST_DIR}/${config_targets_file}")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					check_required_components(spdlog)
 | 
				
			||||||
		Reference in New Issue
	
	Block a user