skullc-peripherals/cmake/skullc-install.cmake
Erki 9820816d06
All checks were successful
continuous-integration/drone/push Build is passing
Make the project use cmake components
2021-03-28 18:18:27 +03:00

44 lines
1.5 KiB
CMake

macro(skullc_install_packages in_project in_component in_version)
# reference: https://stackoverflow.com/questions/54702582/how-to-configure-project-with-components-in-cmake
install(TARGETS ${in_component} EXPORT ${in_component}-targets
COMPONENT ${in_component}
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin
INCLUDES DESTINATION include
)
install(EXPORT ${in_component}-targets
FILE "${in_project}-${in_component}-targets.cmake"
NAMESPACE ${in_project}::
DESTINATION lib/cmake/${in_project}
COMPONENT ${in_component}
)
configure_file("${in_component}-config.cmake.in"
"${CMAKE_BINARY_DIR}/${in_project}-${in_component}-config.cmake"
@ONLY
)
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
"${CMAKE_BINARY_DIR}/${in_project}-${in_component}-config-version.cmake"
VERSION ${in_version}
COMPATIBILITY AnyNewerVersion
)
install(
FILES
"${CMAKE_BINARY_DIR}/${in_project}-${in_component}-config.cmake"
"${CMAKE_BINARY_DIR}/${in_project}-${in_component}-config-version.cmake"
DESTINATION lib/cmake/${in_project}
COMPONENT ${in_component}
)
install(
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Inc/
COMPONENT ${in_component}
DESTINATION ${CMAKE_INSTALL_PREFIX}/include
)
endmacro()