Skip to content

Commit c6fcff1

Browse files
committed
improve cmake: fix install/export bits for clean find_package consumption
1 parent f74150a commit c6fcff1

2 files changed

Lines changed: 36 additions & 3 deletions

File tree

CMakeLists.txt

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ project(libOpenDrive VERSION 0.6.0 DESCRIPTION ".xodr library")
44

55
include(FetchContent)
66
include(GNUInstallDirs)
7+
include(CMakePackageConfigHelpers)
78

89
option(OPENDRIVE_BUILD_TESTS "Build OpenDrive tests" OFF)
910

@@ -89,7 +90,30 @@ install(
8990
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
9091
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
9192
)
92-
install(FILES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
93+
9394
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
94-
install(TARGETS OpenDrive EXPORT OpenDriveConfig)
95-
install(EXPORT OpenDriveConfig NAMESPACE OpenDrive:: DESTINATION cmake)
95+
96+
install(
97+
EXPORT OpenDriveTargets
98+
NAMESPACE OpenDrive::
99+
FILE OpenDriveTargets.cmake
100+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/OpenDrive
101+
)
102+
103+
write_basic_package_version_file(
104+
"${CMAKE_CURRENT_BINARY_DIR}/OpenDriveConfigVersion.cmake"
105+
VERSION ${PROJECT_VERSION}
106+
COMPATIBILITY ExactVersion
107+
)
108+
109+
configure_package_config_file(
110+
"${CMAKE_CURRENT_SOURCE_DIR}/OpenDriveConfig.cmake.in"
111+
"${CMAKE_CURRENT_BINARY_DIR}/OpenDriveConfig.cmake"
112+
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/OpenDrive
113+
)
114+
115+
install(FILES
116+
"${CMAKE_CURRENT_BINARY_DIR}/OpenDriveConfig.cmake"
117+
"${CMAKE_CURRENT_BINARY_DIR}/OpenDriveConfigVersion.cmake"
118+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/OpenDrive
119+
)

OpenDriveConfig.cmake.in

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
@PACKAGE_INIT@
2+
include(CMakeFindDependencyMacro)
3+
4+
# Dependencies
5+
find_dependency(pugixml CONFIG)
6+
7+
# Targets
8+
include("${CMAKE_CURRENT_LIST_DIR}/OpenDriveTargets.cmake")
9+

0 commit comments

Comments
 (0)