myx/lib/InstallLibrary.cmake

66 lines
1.5 KiB
CMake
Raw Normal View History

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()