diff --git a/install/CMakeLists.txt b/install/CMakeLists.txt index be4b347c..cbae6c39 100644 --- a/install/CMakeLists.txt +++ b/install/CMakeLists.txt @@ -10,7 +10,7 @@ include(CMakePackageConfigHelpers) # get_target_property(include_dirs zenohcxx INTERFACE_INCLUDE_DIRECTORIES) foreach(dir ${include_dirs}) - install(DIRECTORY "${dir}/" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + install(DIRECTORY "${dir}/" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT dev) endforeach() # @@ -19,7 +19,7 @@ endforeach() configure_file("${CMAKE_CURRENT_SOURCE_DIR}/zenohcxx.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/zenohcxx.pc" @ONLY) if(APPLE OR UNIX) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/zenohcxx.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" OPTIONAL) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/zenohcxx.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" OPTIONAL COMPONENT dev) endif() set(CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/zenohcxx") @@ -40,16 +40,21 @@ write_basic_package_version_file( install( FILES "${CMAKE_CURRENT_BINARY_DIR}/zenohcxxConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/zenohcxxConfigVersion.cmake" - DESTINATION "${CMAKE_INSTALL_CMAKEDIR}") + DESTINATION "${CMAKE_INSTALL_CMAKEDIR}" + COMPONENT dev) + -# # Configure CPack # set(CPACK_PACKAGE_DIRECTORY "${CMAKE_BINARY_DIR}/packages") set(CPACK_PACKAGE_CHECKSUM MD5) set(CPACK_PACKAGE_VENDOR "The Eclipse Foundation") -set(CPACK_COMPONENT_LIB_DESCRIPTION "The C++ header wrapper library for Eclipse zenoh-c and zenoh-pico libraries") -set(CPACK_COMPONENT_DEV_DESCRIPTION "${CPACK_COMPONENT_LIB_DESCRIPTION} - devel files") +set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) +set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR}) +set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH}) +set(CPACK_COMPONENT_DEV_DESCRIPTION "The C++ header wrapper library for Eclipse zenoh-c and zenoh-pico libraries") +set(CPACK_COMPONENT_DEV_DESCRIPTION "${CPACK_COMPONENT_LIB_DESCRIPTION} - cmake files") +set(CPACK_COMPONENT_DEV_GROUP "dev") set(CPACK_GENERATOR ZIP) # set package name to format -. # platform name doesn't matter for header-only library @@ -58,35 +63,6 @@ if(NOT CPACK_PACKAGE_VERSION) set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION}) endif() set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") +set(CPACK_PROJECT_CONFIG_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cpack_project_config.cmake") -if(UNIX) - # DEB package - if(NOT DEBARCH) - execute_process( - COMMAND dpkg --print-architecture - OUTPUT_VARIABLE DEBARCH - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - endif() - message(STATUS "Configure DEB packaging for Linux ${DEBARCH}") - list(APPEND CPACK_GENERATOR DEB) - set(CPACK_DEBIAN_PACKAGE_MAINTAINER "ZettaScale Zenoh Team, ") - set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${DEBARCH}) - set(CPACK_DEB_COMPONENT_INSTALL ON) - set(CPACK_DEBIAN_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") - set(CPACK_DEBIAN_DEV_PACKAGE_DEPENDS "") - - # RPM package - # rpmbuild should be installed - # apt install rpm - if(NOT RPMARCH) - set(RPMARCH ${CMAKE_SYSTEM_PROCESSOR}) - endif() - message(STATUS "Configure RPM packaging for Linux ${RPMARCH}") - list(APPEND CPACK_GENERATOR RPM) - set(CPACK_RPM_PACKAGE_ARCHITECTURE ${RPMARCH}) - set(CPACK_RPM_COMPONENT_INSTALL ON) - set(CPACK_RPM_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") - set(CPACK_RPM_DEV_PACKAGE_REQUIRES "") -endif() include(CPack) diff --git a/install/cpack_project_config.cmake b/install/cpack_project_config.cmake new file mode 100644 index 00000000..19431c0c --- /dev/null +++ b/install/cpack_project_config.cmake @@ -0,0 +1,29 @@ +if(CPACK_GENERATOR MATCHES "DEB") + # DEB package + if(NOT DEBARCH) + execute_process( + COMMAND dpkg --print-architecture + OUTPUT_VARIABLE DEBARCH + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + endif() + message(STATUS "Configure DEB packaging for Linux ${DEBARCH}") + set(CPACK_DEBIAN_PACKAGE_MAINTAINER "ZettaScale Zenoh Team, ") + set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${DEBARCH}) + set(CPACK_DEB_COMPONENT_INSTALL ON) + set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT) + set(CPACK_DEBIAN_DEV_PACKAGE_DEPENDS "") +endif() + +if(CPACK_GENERATOR MATCHES "RPM") + # RPM package + # rpmbuild should be installed + # apt install rpm + if(NOT RPMARCH) + set(RPMARCH ${CMAKE_SYSTEM_PROCESSOR}) + endif() + message(STATUS "Configure RPM packaging for Linux ${RPMARCH}") + set(CPACK_RPM_PACKAGE_ARCHITECTURE ${RPMARCH}) + set(CPACK_RPM_COMPONENT_INSTALL ON) + set(CPACK_RPM_FILE_NAME RPM-DEFAULT) +endif()