setup instalation and exports stuffs
This commit is contained in:
@@ -31,3 +31,64 @@ if(BUILD_EXAMPLES)
|
||||
add_executable(${EXAM_HMAP} examples/hmap_example.cpp)
|
||||
target_link_libraries(${EXAM_HMAP} ${PROJECT_NAME})
|
||||
endif()
|
||||
|
||||
|
||||
include(GNUInstallDirs)
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
install(
|
||||
TARGETS ${PROJECT_NAME}
|
||||
EXPORT ${PROJECT_NAME}_Targets
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
)
|
||||
|
||||
|
||||
set(SNPLIB_CONFIG_INSTALLDIR
|
||||
${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
|
||||
# CACHE PATH
|
||||
# "install path for generated library config files"
|
||||
)
|
||||
set(SNPLIB_HEADERS_INSTALLDIR
|
||||
${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}
|
||||
# CACHE PATH
|
||||
# "install path for headers"
|
||||
)
|
||||
|
||||
configure_package_config_file(
|
||||
"${PROJECT_SOURCE_DIR}/${PROJECT_NAME}Config.cmake.in"
|
||||
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
|
||||
INSTALL_DESTINATION ${SNPLIB_CONFIG_INSTALLDIR}
|
||||
PATH_VARS SNPLIB_HEADERS_INSTALLDIR
|
||||
)
|
||||
|
||||
install(
|
||||
EXPORT ${PROJECT_NAME}_Targets
|
||||
FILE ${PROJECT_NAME}Targets.cmake
|
||||
NAMESPACE ${PROJECT_NAME_NAMESPACE}::
|
||||
DESTINATION ${SNPLIB_CONFIG_INSTALLDIR}
|
||||
)
|
||||
install(
|
||||
FILES
|
||||
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
|
||||
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
|
||||
DESTINATION ${SNPLIB_CONFIG_INSTALLDIR}
|
||||
)
|
||||
install(FILES ${SNPLIB_SRC} DESTINATION include/${PROJECT_NAME})
|
||||
|
||||
# uninstall target
|
||||
if(NOT TARGET uninstall)
|
||||
configure_file(
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
||||
IMMEDIATE
|
||||
@ONLY
|
||||
)
|
||||
|
||||
add_custom_target(
|
||||
uninstall
|
||||
COMMAND
|
||||
${CMAKE_COMMAND} -P
|
||||
${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
|
||||
)
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user