Skip to content

Commit 22300e1

Browse files
committed
add cmake exported targets
1 parent 1f8a50c commit 22300e1

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

CMakeLists.txt

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
cmake_minimum_required(VERSION 3.14.0)
2+
include(CMakePackageConfigHelpers)
3+
include(GNUInstallDirs)
24

35
project(geometry-central)
6+
set(PROJECT_VERSION 0.1.0)
47

58
### Policy settings
69
cmake_policy(SET CMP0054 NEW) # don't implicitly dereference inside if()
@@ -51,15 +54,16 @@ SET(GC_HAVE_SUITESPARSE ${GC_HAVE_SUITESPARSE} PARENT_SCOPE)
5154
add_subdirectory(src)
5255

5356
# install
54-
install(
55-
TARGETS geometry-central
56-
ARCHIVE DESTINATION lib
57-
RUNTIME DESTINATION bin
58-
LIBRARY DESTINATION lib)
5957

58+
configure_package_config_file(geometry-central-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/geometry-central-config.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/geometry-central/cmake)
59+
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/geometry-centralConfigVersion.cmake COMPATIBILITY SameMajorVersion)
60+
install(TARGETS geometry-central eigen nanort nanoflann happly EXPORT geometry-central-targets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
61+
62+
install(EXPORT geometry-central-targets FILE geometry-centralTargets.cmake DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/geometry-central/cmake)
63+
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/geometry-central-config.cmake DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/geometry-central/cmake)
6064
install(
6165
DIRECTORY ${CMAKE_SOURCE_DIR}/include/
62-
DESTINATION include
66+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
6367
FILES_MATCHING
6468
PATTERN "*.h"
6569
PATTERN "*.ipp")

src/CMakeLists.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,10 @@ SET(HEADERS
175175
add_library(geometry-central ${SRCS} ${HEADERS})
176176

177177
# Includes from this project
178-
target_include_directories(geometry-central PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../include")
178+
target_include_directories(geometry-central PUBLIC
179+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
180+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>
181+
)
179182

180183
# Add all includes and link libraries from dependencies, which were populated in deps/CMakeLists.txt
181184
target_link_libraries(geometry-central PUBLIC ${GC_DEP_LIBS})

0 commit comments

Comments
 (0)