Skip to content

Commit 5f8035b

Browse files
committed
Rewrite package config
Not sure if this is going to work without the "targets" part, but example code looks more promising that previous.
1 parent 9b13957 commit 5f8035b

File tree

1 file changed

+32
-44
lines changed

1 file changed

+32
-44
lines changed

CMakeLists.txt

Lines changed: 32 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ project(rsp-cmake-scripts
4646
VERSION "${version_VERSION}"
4747
DESCRIPTION "A collection of CMake scripts for C++ projects"
4848
HOMEPAGE_URL "https://github.com/rsps/cmake-scripts"
49-
LANGUAGES NONE
49+
LANGUAGES "CXX"
5050
)
5151

5252
# Ensure parent project has modules and other properties available.
@@ -119,57 +119,45 @@ endif ()
119119
# TODO: Package Configuration
120120
# -------------------------------------------------------------------------------------------------------------- #
121121

122-
include(CMakePackageConfigHelpers)
123-
124-
# Introduce variables:
125-
# * CMAKE_INSTALL_LIBDIR
126-
# * CMAKE_INSTALL_BINDIR
127-
# * CMAKE_INSTALL_INCLUDEDIR
128122
include(GNUInstallDirs)
123+
include(CMakePackageConfigHelpers)
129124

130-
# Layout. This works for all platforms:
131-
# * <prefix>/lib*/cmake/<PROJECT-NAME>
132-
# * <prefix>/lib*/
133-
# * <prefix>/include/
134-
set(config_install_dir "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
135-
136-
set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}")
137-
138-
# Configuration
139-
# set(version_config "${generated_dir}/${PROJECT_NAME}-version.cmake")
140-
set(project_config "${generated_dir}/${PROJECT_NAME}-config.cmake")
141-
142-
#configure_package_config_file(
143-
# "cmake/rsp-cmake-scripts-config.cmake.in"
144-
# "${CMAKE_CURRENT_BINARY_DIR}/cmake/rsp/rsp-cmake-scripts-config.cmake"
125+
#install(
126+
# TARGETS "${PROJECT_NAME}"
127+
# EXPORT "${PROJECT_NAME}-export"
128+
## INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}
129+
## RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
130+
## LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
131+
## ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
132+
#)
145133
#
146-
# INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/rsp"
147-
# #PATH_VARS INCLUDE_INSTALL_DIR SYSCONFIG_INSTALL_DIR
134+
## Export cmake targets
135+
#install(
136+
# EXPORT "${PROJECT_NAME}-export"
137+
# FILE "${PROJECT_NAME}-targets.cmake"
138+
# NAMESPACE "${PROJECT_NAME}::"
139+
# DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
148140
#)
149141

150-
configure_package_config_file(
151-
"cmake/${PROJECT_NAME}-config.cmake.in"
152-
"${project_config}"
153-
INSTALL_DESTINATION "${config_install_dir}"
142+
# Write config-version
143+
write_basic_package_version_file(
144+
${PROJECT_NAME}-config-version.cmake
145+
VERSION "${PROJECT_VERSION}"
146+
COMPATIBILITY SameMinorVersion
154147
)
155148

156-
# TODO: CMake Version file
157-
158-
#install(
159-
# FILES
160-
# "${CMAKE_CURRENT_BINARY_DIR}/cmake/rsp/rsp-cmake-scripts-config.cmake"
161-
# # "${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake"
162-
# DESTINATION
163-
# "${CMAKE_INSTALL_LIBDIR}/cmake/rsp"
164-
#)
149+
# Configure installable cmake config
150+
configure_package_config_file(
151+
"${PROJECT_SOURCE_DIR}/cmake/${PROJECT_NAME}-config.cmake.in"
152+
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
153+
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/rsp/${PROJECT_NAME}"
154+
NO_SET_AND_CHECK_MACRO
155+
)
165156

166-
# Config
167-
# * <prefix>/lib/cmake/Foo/FooConfig.cmake
168-
# * <prefix>/lib/cmake/Foo/FooConfigVersion.cmake
157+
# Install config-version and config
169158
install(
170159
FILES
171-
"${project_config}"
172-
#"${version_config}"
173-
DESTINATION
174-
"${config_install_dir}"
160+
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
161+
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake"
162+
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/rsp/${PROJECT_NAME}"
175163
)

0 commit comments

Comments
 (0)