Use modern cmake function export to generate target

This commit is contained in:
JackBoosY 2021-06-07 02:12:20 -07:00
parent 17aa824c92
commit f4be0ada85
2 changed files with 14 additions and 11 deletions

View File

@ -194,6 +194,11 @@ install(FILES readme.md
DESTINATION "${DOC_INSTALL_DIR}"
COMPONENT doc)
# Add an interface target to export it
add_library(RapidJSON INTERFACE)
target_include_directories(RapidJSON INTERFACE $<INSTALL_INTERFACE:include/rapidjson>)
install(DIRECTORY include/rapidjson
DESTINATION "${INCLUDE_INSTALL_DIR}"
COMPONENT dev)
@ -220,6 +225,7 @@ SET( CONFIG_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
SET( CONFIG_DIR ${CMAKE_CURRENT_BINARY_DIR})
SET( ${PROJECT_NAME}_INCLUDE_DIR "\${${PROJECT_NAME}_SOURCE_DIR}/include" )
INCLUDE(CMakePackageConfigHelpers)
CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}Config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake @ONLY )
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}ConfigVersion.cmake.in
@ -246,3 +252,6 @@ INSTALL(FILES
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
DESTINATION "${CMAKE_INSTALL_DIR}"
COMPONENT dev)
INSTALL(TARGETS RapidJSON EXPORT RapidJSON-targets)
INSTALL(EXPORT RapidJSON-targets DESTINATION ${CMAKECONFIG_INSTALL_DIR})

View File

@ -1,6 +1,6 @@
################################################################################
# CMake minimum version required
cmake_minimum_required(VERSION 3.0)
@PACKAGE_INIT@
include ("${CMAKE_CURRENT_LIST_DIR}/RapidJSON-targets.cmake")
################################################################################
# RapidJSON source dir
@ -14,12 +14,6 @@ set( RapidJSON_DIR "@CONFIG_DIR@")
# Compute paths
get_filename_component(RapidJSON_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
set( RapidJSON_INCLUDE_DIR "@RapidJSON_INCLUDE_DIR@" )
set( RapidJSON_INCLUDE_DIRS "@RapidJSON_INCLUDE_DIR@" )
message(STATUS "RapidJSON found. Headers: ${RapidJSON_INCLUDE_DIRS}")
get_target_property(RapidJSON_INCLUDE_DIR RapidJSON INTERFACE_INCLUDE_DIRECTORIES)
if(NOT TARGET rapidjson)
add_library(rapidjson INTERFACE IMPORTED)
set_property(TARGET rapidjson PROPERTY
INTERFACE_INCLUDE_DIRECTORIES ${RapidJSON_INCLUDE_DIRS})
endif()
set( RapidJSON_INCLUDE_DIRS ${RapidJSON_INCLUDE_DIR} )