2022-09-29 11:34:59 +00:00
|
|
|
include_guard(GLOBAL)
|
|
|
|
|
|
|
|
if(${CMAKE_VERSION} VERSION_LESS "3.17.0")
|
2022-09-29 14:20:02 +00:00
|
|
|
set(CMAKE_CURRENT_FUNCTION_LIST_DIR ${CMAKE_CURRENT_LIST_DIR})
|
2022-09-29 11:34:59 +00:00
|
|
|
endif()
|
|
|
|
|
2022-09-29 11:19:40 +00:00
|
|
|
include(CMakePackageConfigHelpers)
|
|
|
|
|
2022-09-29 14:20:02 +00:00
|
|
|
function(myx_install_library NAME)
|
|
|
|
if(NOT PROJECT_IS_TOP_LEVEL)
|
|
|
|
return()
|
|
|
|
endif()
|
|
|
|
|
2022-09-29 11:19:40 +00:00
|
|
|
write_basic_package_version_file(
|
2022-09-29 14:20:02 +00:00
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/${NAME}ConfigVersion.cmake
|
2022-09-29 11:19:40 +00:00
|
|
|
VERSION ${PROJECT_VERSION}
|
|
|
|
COMPATIBILITY AnyNewerVersion
|
|
|
|
)
|
|
|
|
|
|
|
|
configure_package_config_file(
|
2022-09-29 11:34:59 +00:00
|
|
|
${CMAKE_CURRENT_FUNCTION_LIST_DIR}/InstallLibraryConfig.cmake.in
|
2022-09-29 14:20:02 +00:00
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/${NAME}Config.cmake
|
|
|
|
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${NAME}
|
2022-09-29 11:19:40 +00:00
|
|
|
NO_SET_AND_CHECK_MACRO
|
|
|
|
NO_CHECK_REQUIRED_COMPONENTS_MACRO
|
|
|
|
)
|
|
|
|
|
|
|
|
install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/
|
|
|
|
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
|
|
COMPONENT dev
|
|
|
|
)
|
|
|
|
|
2022-09-29 14:20:02 +00:00
|
|
|
install(EXPORT ${NAME}Targets
|
|
|
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${NAME}
|
2022-09-29 11:19:40 +00:00
|
|
|
COMPONENT dev
|
|
|
|
)
|
|
|
|
|
|
|
|
install(
|
|
|
|
FILES
|
2022-09-29 14:20:02 +00:00
|
|
|
${PROJECT_BINARY_DIR}/${NAME}ConfigVersion.cmake
|
|
|
|
${PROJECT_BINARY_DIR}/${NAME}Config.cmake
|
|
|
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${NAME}
|
2022-09-29 11:19:40 +00:00
|
|
|
COMPONENT dev
|
|
|
|
)
|
2022-09-29 11:57:54 +00:00
|
|
|
|
2022-09-29 14:20:02 +00:00
|
|
|
if(TARGET ${NAME}_shared)
|
2022-09-29 11:57:54 +00:00
|
|
|
install(
|
2022-09-29 14:20:02 +00:00
|
|
|
TARGETS ${NAME}_shared
|
|
|
|
EXPORT ${NAME}Targets
|
2022-09-29 11:57:54 +00:00
|
|
|
LIBRARY
|
|
|
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
|
|
COMPONENT lib
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
2022-09-29 14:20:02 +00:00
|
|
|
if(TARGET ${NAME}_static)
|
2022-09-29 11:57:54 +00:00
|
|
|
install(
|
2022-09-29 14:20:02 +00:00
|
|
|
TARGETS ${NAME}_static
|
|
|
|
EXPORT ${NAME}Targets
|
|
|
|
ARCHIVE
|
|
|
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
|
|
COMPONENT lib
|
2022-09-29 11:57:54 +00:00
|
|
|
)
|
|
|
|
endif()
|
2022-09-29 11:19:40 +00:00
|
|
|
endfunction()
|