Skip to content

Commit 79f4dbc

Browse files
committed
review install and export
1 parent 94e3e9e commit 79f4dbc

File tree

2 files changed

+21
-17
lines changed

2 files changed

+21
-17
lines changed

CMakeLists.txt

+20-14
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
# The target of the library PENF is exported
2-
# as PENF::PENF to a package config file for PENF
1+
# The target of the PENF library is exported
2+
# as PENF::PENF to a package configuration file for this library
33
#
44
# usage:
55
# find_package(PENF)
@@ -48,16 +48,18 @@ endif()
4848
include(GNUInstallDirs)
4949
set(project_config "${PROJECT_NAME}-config.cmake")
5050
set(cmake_files_dir "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles")
51-
set(config_install_dir "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
52-
set(config_build_dir "${CMAKE_CURRENT_BINARY_DIR}/${config_install_dir}")
51+
set(default_config_install_dir "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
52+
set(config_build_dir "${CMAKE_CURRENT_BINARY_DIR}/${default_config_install_dir}")
53+
set(${PROJECT_NAME}_INSTALL_CMAKEDIR ${default_config_install_dir} CACHE PATH "Path to the cmake files for Project ${PROJECT_NAME}")
5354

5455
# export targets for install
5556
install(EXPORT ${TARGETS_EXPORT_NAME}
5657
NAMESPACE
5758
${NAMESPACE}
5859
DESTINATION
59-
${config_install_dir}
60-
COMPONENT Development
60+
${${PROJECT_NAME}_INSTALL_CMAKEDIR}
61+
COMPONENT
62+
${PROJECT_NAME}_Development
6163
)
6264

6365
# export targets into build
@@ -69,20 +71,24 @@ export(EXPORT ${TARGETS_EXPORT_NAME}
6971
)
7072

7173
# create package config
72-
# Variables needed by PackageConfig.cmake.in: PROJECT_NAME, TARGETS_EXPORT_NAME,
73-
# EXPORTED_TARGET
74-
75-
set(EXPORTED_TARGET PENF::PENF)
74+
# Variables needed by PackageConfig.cmake.in: PROJECT_NAME, TARGETS_EXPORT_NAME
7675

7776
include(CMakePackageConfigHelpers)
7877
configure_package_config_file(cmake/PackageConfig.cmake.in ${cmake_files_dir}/${project_config}
79-
INSTALL_DESTINATION ${config_install_dir}
80-
)
81-
install(FILES ${cmake_files_dir}/${project_config}
82-
DESTINATION ${config_install_dir}
78+
INSTALL_DESTINATION ${${PROJECT_NAME}_INSTALL_CMAKEDIR}
8379
)
8480

8581
configure_package_config_file(cmake/PackageConfig.cmake.in ${config_build_dir}/${project_config}
8682
INSTALL_DESTINATION ${config_build_dir}
8783
INSTALL_PREFIX ${CMAKE_CURRENT_BINARY_DIR}
8884
)
85+
86+
write_basic_package_version_file(
87+
${PROJECT_NAME}ConfigVersion.cmake
88+
VERSION ${PROJECT_VERSION}
89+
COMPATIBILITY SameMajorVersion
90+
)
91+
92+
install(FILES ${cmake_files_dir}/${project_config} ${PROJECT_NAME}ConfigVersion.cmake
93+
DESTINATION ${${PROJECT_NAME}_INSTALL_CMAKEDIR}
94+
)

cmake/PackageConfig.cmake.in

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
@PACKAGE_INIT@
22

3-
if(NOT TARGET @EXPORTED_TARGET@ AND NOT @PROJECT_NAME@_BINARY_DIR)
4-
include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake")
5-
endif()
3+
include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake")
64

75
check_required_components("@PROJECT_NAME@")

0 commit comments

Comments
 (0)