Browse Source

Merge pull request #789 from offlinemark/mark/cmake-clean

cmake: Refactor targets export variable and improve comments
Lee Thomason 5 years ago
parent
commit
a0ce5527ab
1 changed files with 8 additions and 5 deletions
  1. 8 5
      CMakeLists.txt

+ 8 - 5
CMakeLists.txt

@@ -46,6 +46,8 @@ set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
 # to distinguish between debug and release lib
 set(CMAKE_DEBUG_POSTFIX "d")
 
+set(TARGETS_EXPORT_NAME "${CMAKE_PROJECT_NAME}Targets")
+
 add_library(tinyxml2 tinyxml2.cpp tinyxml2.h)
 
 set_target_properties(tinyxml2 PROPERTIES
@@ -71,12 +73,13 @@ else()
     endif(MSVC)
 endif()
 
-# export targets for find_package config mode
+# Export cmake script that can be used by downstream project
+# via `include()`
 export(TARGETS tinyxml2
-      FILE ${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}Targets.cmake)
+      FILE ${CMAKE_BINARY_DIR}/${TARGETS_EXPORT_NAME}.cmake)
 
 install(TARGETS tinyxml2
-        EXPORT ${CMAKE_PROJECT_NAME}Targets
+        EXPORT ${TARGETS_EXPORT_NAME}
         RUNTIME 
                 DESTINATION ${CMAKE_INSTALL_BINDIR}
                 COMPONENT tinyxml2_runtime
@@ -119,7 +122,6 @@ if(NOT TARGET uninstall)
 endif()
 
 include(CMakePackageConfigHelpers)
-set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
 configure_package_config_file(
   "Config.cmake.in"
   "${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}Config.cmake"
@@ -136,6 +138,7 @@ install(FILES
         DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME}
         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}
         COMPONENT tinyxml2_config)