macro(export_library_macro PROJ_TARGET PROJ_EXPORT_NAME PROJ_EXPORT_NAMESPACE PROJ_CONFIG_DIR) set_target_properties(${PROJ_TARGET} PROPERTIES EXPORT_NAME ${PROJ_EXPORT_NAME}) if(NOT (${PROJ_EXPORT_NAMESPACE}${PROJ_EXPORT_NAME} STREQUAL ${PROJ_TARGET})) add_library(${PROJ_EXPORT_NAMESPACE}${PROJ_EXPORT_NAME} ALIAS ${PROJ_TARGET}) endif() install(TARGETS ${PROJ_TARGET} EXPORT ${PROJ_EXPORT_NAME}Targets LIBRARY DESTINATION lib ARCHIVE DESTINATION lib RUNTIME DESTINATION bin INCLUDES DESTINATION include ) install(DIRECTORY include/ DESTINATION include) install(EXPORT ${PROJ_EXPORT_NAME}Targets FILE ${PROJ_EXPORT_NAME}Targets.cmake NAMESPACE ${PROJ_EXPORT_NAMESPACE} DESTINATION ${PROJ_CONFIG_DIR} ) include(CMakePackageConfigHelpers) write_basic_package_version_file( ${CMAKE_CURRENT_BINARY_DIR}/${PROJ_EXPORT_NAME}ConfigVersion.cmake VERSION ${PROJECT_VERSION} COMPATIBILITY AnyNewerVersion ) configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/${PROJ_EXPORT_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PROJ_EXPORT_NAME}Config.cmake INSTALL_DESTINATION ${PROJ_CONFIG_DIR} ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJ_EXPORT_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PROJ_EXPORT_NAME}ConfigVersion.cmake DESTINATION ${PROJ_CONFIG_DIR} ) export(EXPORT ${PROJ_EXPORT_NAME}Targets FILE ${CMAKE_CURRENT_BINARY_DIR}/${PROJ_EXPORT_NAME}Targets.cmake NAMESPACE ${PROJ_EXPORT_NAMESPACE}) export(PACKAGE ${PROJ_EXPORT_NAME}) endmacro()