Skip to content
This repository was archived by the owner on Jul 24, 2025. It is now read-only.

Commit b0e473e

Browse files
committed
feat: export configs
1 parent 20da62a commit b0e473e

File tree

2 files changed

+28
-4
lines changed

2 files changed

+28
-4
lines changed

CMakeLists.txt

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,16 @@ if (POLICY CMP0141)
66
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<IF:$<AND:$<C_COMPILER_ID:MSVC>,$<CXX_COMPILER_ID:MSVC>>,$<$<CONFIG:Debug,RelWithDebInfo>:EditAndContinue>,$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>>")
77
endif()
88

9-
project ("MyLibrary")
9+
set(MYLIBRARY_INCLUDE_DIR
10+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
11+
$<INSTALL_INTERFACE:include>)
12+
13+
project("MyLibrary")
1014
set(PROJECT_VERSION_MAJOR 1)
1115
set(PROJECT_VERSION_MINOR 0)
1216
set(PROJECT_VERSION_PATCH 0)
1317
set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
1418
set(PROJECT_DESCRIPTION "A simple CMake library.")
15-
set(MYLIBRARY_INCLUDE_DIR
16-
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
17-
$<INSTALL_INTERFACE:include>)
1819
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
1920

2021
# Add build options to this project.
@@ -88,4 +89,21 @@ if (MYLIBRARY_INSTALL)
8889
NAMESPACE ${PROJECT_NAME}::
8990
DESTINATION ${MYLIBRARY_EXPORT_PATH})
9091

92+
set(MYLIBRARY_EXPORT_CONFIGS_FILE "${PROJECT_NAME}Config.cmake")
93+
include(CMakePackageConfigHelpers)
94+
configure_package_config_file(
95+
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/${MYLIBRARY_EXPORT_CONFIGS_FILE}"
96+
"${CMAKE_CURRENT_BINARY_DIR}/${MYLIBRARY_EXPORT_CONFIGS_FILE}"
97+
INSTALL_DESTINATION ${MYLIBRARY_EXPORT_PATH})
98+
99+
set(MYLIBRARY_EXPORT_CONFIGS_VERSION_FILE "${PROJECT_NAME}ConfigVersion.cmake")
100+
write_basic_package_version_file(
101+
${MYLIBRARY_EXPORT_CONFIGS_VERSION_FILE}
102+
VERSION ${PACKAGE_VERSION}
103+
COMPATIBILITY SameMajorVersion)
104+
105+
install(FILES
106+
"${CMAKE_CURRENT_BINARY_DIR}/${MYLIBRARY_EXPORT_CONFIGS_FILE}"
107+
"${CMAKE_CURRENT_BINARY_DIR}/${MYLIBRARY_EXPORT_CONFIGS_VERSION_FILE}"
108+
DESTINATION ${MYLIBRARY_EXPORT_PATH})
91109
endif()

cmake/MyLibraryConfig.cmake

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
@PACKAGE_INIT@
2+
file(GLOB EXPORT_FILES "${CMAKE_CURRENT_LIST_DIR}/*Targets.cmake")
3+
foreach(EXPORT_FILE ${EXPORT_FILES})
4+
include(${EXPORT_FILE})
5+
endforeach()
6+
check_required_components(MyLibrary::MyLibrary)

0 commit comments

Comments
 (0)