make the install location for the generated cmake files configurable

By default the cmake files are installed to "<prefix>/lib/cmake/cppformat".
This can now be customized using the `FMT_CMAKE_DIR` cache variable.
Valid paths are documented in the cmake manual [1].

e.g., install the cmake files to "<prefix>/share/cmake/cppformat"
```
cmake -DFMT_CMAKE_DIR=share/cmake/cppformat <path-to-source>
```

Tip: Try `make package` to examine the result.

[1] https://cmake.org/cmake/help/v3.0/command/find_package.html
This commit is contained in:
Mario Werner 2016-04-06 09:33:13 +02:00
parent a99891e7a5
commit dcbb6b1e4d

View File

@ -45,7 +45,8 @@ endif ()
# Install targets. # Install targets.
if (FMT_INSTALL) if (FMT_INSTALL)
include(CMakePackageConfigHelpers) include(CMakePackageConfigHelpers)
set(config_install_dir lib/cmake/cppformat) set(FMT_CMAKE_DIR lib/cmake/cppformat CACHE STRING
"Installation directory for cmake files, relative to ${CMAKE_INSTALL_PREFIX}.")
set(version_config ${PROJECT_BINARY_DIR}/cppformat-config-version.cmake) set(version_config ${PROJECT_BINARY_DIR}/cppformat-config-version.cmake)
set(project_config ${PROJECT_BINARY_DIR}/cppformat-config.cmake) set(project_config ${PROJECT_BINARY_DIR}/cppformat-config.cmake)
set(targets_export_name cppformat-targets) set(targets_export_name cppformat-targets)
@ -66,14 +67,14 @@ if (FMT_INSTALL)
configure_package_config_file( configure_package_config_file(
${PROJECT_SOURCE_DIR}/support/cmake/cppformat-config.cmake.in ${PROJECT_SOURCE_DIR}/support/cmake/cppformat-config.cmake.in
${project_config} ${project_config}
INSTALL_DESTINATION ${config_install_dir}) INSTALL_DESTINATION ${FMT_CMAKE_DIR})
export(TARGETS ${INSTALL_TARGETS} FILE ${PROJECT_BINARY_DIR}/${targets_export_name}.cmake) export(TARGETS ${INSTALL_TARGETS} FILE ${PROJECT_BINARY_DIR}/${targets_export_name}.cmake)
# Install version, config and target files. # Install version, config and target files.
install( install(
FILES ${project_config} ${version_config} FILES ${project_config} ${version_config}
DESTINATION ${config_install_dir}) DESTINATION ${FMT_CMAKE_DIR})
install(EXPORT ${targets_export_name} DESTINATION ${config_install_dir}) install(EXPORT ${targets_export_name} DESTINATION ${FMT_CMAKE_DIR})
# Install the library and headers. # Install the library and headers.
install(TARGETS ${INSTALL_TARGETS} EXPORT ${targets_export_name} DESTINATION ${FMT_LIB_DIR}) install(TARGETS ${INSTALL_TARGETS} EXPORT ${targets_export_name} DESTINATION ${FMT_LIB_DIR})