Merge pull request #789 from offlinemark/mark/cmake-clean
cmake: Refactor targets export variable and improve comments
This commit is contained in:
@@ -46,6 +46,8 @@ set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
|
|||||||
# to distinguish between debug and release lib
|
# to distinguish between debug and release lib
|
||||||
set(CMAKE_DEBUG_POSTFIX "d")
|
set(CMAKE_DEBUG_POSTFIX "d")
|
||||||
|
|
||||||
|
set(TARGETS_EXPORT_NAME "${CMAKE_PROJECT_NAME}Targets")
|
||||||
|
|
||||||
add_library(tinyxml2 tinyxml2.cpp tinyxml2.h)
|
add_library(tinyxml2 tinyxml2.cpp tinyxml2.h)
|
||||||
|
|
||||||
set_target_properties(tinyxml2 PROPERTIES
|
set_target_properties(tinyxml2 PROPERTIES
|
||||||
@@ -71,12 +73,13 @@ else()
|
|||||||
endif(MSVC)
|
endif(MSVC)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# export targets for find_package config mode
|
# Export cmake script that can be used by downstream project
|
||||||
|
# via `include()`
|
||||||
export(TARGETS tinyxml2
|
export(TARGETS tinyxml2
|
||||||
FILE ${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}Targets.cmake)
|
FILE ${CMAKE_BINARY_DIR}/${TARGETS_EXPORT_NAME}.cmake)
|
||||||
|
|
||||||
install(TARGETS tinyxml2
|
install(TARGETS tinyxml2
|
||||||
EXPORT ${CMAKE_PROJECT_NAME}Targets
|
EXPORT ${TARGETS_EXPORT_NAME}
|
||||||
RUNTIME
|
RUNTIME
|
||||||
DESTINATION ${CMAKE_INSTALL_BINDIR}
|
DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
COMPONENT tinyxml2_runtime
|
COMPONENT tinyxml2_runtime
|
||||||
@@ -119,7 +122,6 @@ if(NOT TARGET uninstall)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
include(CMakePackageConfigHelpers)
|
include(CMakePackageConfigHelpers)
|
||||||
set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
|
|
||||||
configure_package_config_file(
|
configure_package_config_file(
|
||||||
"Config.cmake.in"
|
"Config.cmake.in"
|
||||||
"${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}Config.cmake"
|
"${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}Config.cmake"
|
||||||
@@ -136,6 +138,7 @@ install(FILES
|
|||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME}
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME}
|
||||||
COMPONENT tinyxml2_config)
|
COMPONENT tinyxml2_config)
|
||||||
|
|
||||||
install(EXPORT ${CMAKE_PROJECT_NAME}Targets NAMESPACE tinyxml2::
|
# Export targets for find_package config mode
|
||||||
|
install(EXPORT ${TARGETS_EXPORT_NAME} NAMESPACE tinyxml2::
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME}
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME}
|
||||||
COMPONENT tinyxml2_config)
|
COMPONENT tinyxml2_config)
|
||||||
|
|||||||
Reference in New Issue
Block a user