From 9cd1a85f77d0b990001ea4a22831cc0663d4429b Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Mon, 22 Mar 2021 10:32:27 -0300 Subject: [PATCH 01/23] examples/*/rtmlamp*: fix wrong dac_wr command-line option --- examples/src/rtmlamp_ohwr_ctl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/src/rtmlamp_ohwr_ctl.c b/examples/src/rtmlamp_ohwr_ctl.c index f7ddd8ef..147a8e00 100644 --- a/examples/src/rtmlamp_ohwr_ctl.c +++ b/examples/src/rtmlamp_ohwr_ctl.c @@ -39,7 +39,7 @@ static struct option long_options[] = {NULL, 0, NULL, 0} }; -static const char* shortopt = "hb:vo:s:c:yw:rpatu:e:r:"; +static const char* shortopt = "hb:vo:s:c:yw:rpatu:e:x:"; void print_help (char *program_name) { @@ -351,7 +351,7 @@ int main (int argc, char *argv []) uint32_t arg = 0; halcs_get_rtmlamp_ohwr_dac_wr (halcs_client, service, chan, &arg); - printf ("[client:rtmlamp_ohwr]: halcs_get_rtmlamp_ohwr_rcv_src: 0x%08X\n", arg); + printf ("[client:rtmlamp_ohwr]: halcs_set_rtmlamp_ohwr_dac_wr: 0x%08X\n", arg); } } From c4b9ee7f89f389e5f5c20512bb2f1adb8a18bc27 Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Tue, 30 Mar 2021 18:01:38 -0300 Subject: [PATCH 02/23] cmake: initial CPack component split in pciedriver and all others --- .../AddExternalProjectPciedriver.cmake | 100 ++++++++++++++++-- src/apps/halcsd/CMakeConfigureInstall.cmake | 5 + src/apps/halcsd/CMakeLists.txt | 30 ++++++ .../etc/systemd/system/halcs-be@.service.in | 4 +- .../etc/systemd/system/halcs-fe@.service.in | 4 +- src/apps/halcsd/postinst.debian.in | 14 +++ src/apps/halcsd/postinst.redhat.in | 14 +++ 7 files changed, 162 insertions(+), 9 deletions(-) create mode 100755 src/apps/halcsd/postinst.debian.in create mode 100755 src/apps/halcsd/postinst.redhat.in diff --git a/cmake/Modules/AddExternalProjectPciedriver.cmake b/cmake/Modules/AddExternalProjectPciedriver.cmake index 377784d3..50b103f7 100644 --- a/cmake/Modules/AddExternalProjectPciedriver.cmake +++ b/cmake/Modules/AddExternalProjectPciedriver.cmake @@ -98,6 +98,7 @@ install(DIRECTORY ${pciedriver_public_dirs} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + COMPONENT pciedriver FILES_MATCHING PATTERN "*.h" ) @@ -109,6 +110,7 @@ install(FILES ${pciedriver_LIBRARY_DIRECTORIES}/libpcidriver.a DESTINATION ${CMAKE_INSTALL_LIBDIR} + COMPONENT pciedriver ) ####################################### @@ -169,7 +171,7 @@ if(BUILD_PCIE_DRIVER) REALPATH ) -get_filename_component(pciedriver_driver_UDEV_ABS + get_filename_component(pciedriver_driver_UDEV_ABS ${pciedriver_driver_KO_DIRECTORY}/60-udev_fpga.rules REALPATH ) @@ -199,16 +201,100 @@ get_filename_component(pciedriver_driver_UDEV_ABS ${pciedriver_driver_KO_DIRECTORY}/version.sh ) - install(FILES ${pciedriver_driver_SRCS} DESTINATION ${pciedriver_DKMS_INSTALL_DIR}) + install(FILES ${pciedriver_driver_SRCS} + DESTINATION ${pciedriver_DKMS_INSTALL_DIR} + COMPONENT pciedriver + ) install(FILES ${pciedriver_driver_SCRIPT} DESTINATION ${pciedriver_DKMS_INSTALL_DIR} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE + COMPONENT pciedriver + ) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${DKMS_FILE_NAME} + DESTINATION ${pciedriver_DKMS_INSTALL_DIR} + COMPONENT pciedriver + ) + +endif() + +# CPack rules +option(ENABLE_CPACK "Enables cpack rules" ON) + +if(ENABLE_CPACK) + if(${CMAKE_BUILD_TYPE} MATCHES "Debug") + set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) + set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) + set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) + endif() + + include(InstallRequiredSystemLibraries) + + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) + + set(CPACK_GENERATOR "DEB") + + set(CPACK_DEB_COMPONENT_INSTALL ON) + set(CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS ON) + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + set(CPACK_DEBIAN_PCIEDRIVER_PACKAGE_DEPENDS "dkms") + set(CPACK_DEBIAN_PCIEDRIVER_PACKAGE_CONTROL_EXTRA + "${CMAKE_CURRENT_BINARY_DIR}/postinst;${CMAKE_CURRENT_BINARY_DIR}/prerm" ) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${DKMS_FILE_NAME} DESTINATION ${pciedriver_DKMS_INSTALL_DIR}) + set(CPACK_DEBIAN_PCIEDRIVER_PACKAGE_NAME "pcieDriver") + set(CPACK_DEBIAN_PCIEDRIVER_FILE_NAME + "${CPACK_DEBIAN_PCIEDRIVER_PACKAGE_NAME}_${pciedriver_VERSION}" + ) + set(CPACK_DEBIAN_PCIEDRIVER_DESCRIPTION "pcieDriver library/driver") + set(CPACK_DEBIAN_PCIEDRIVER_PACKAGE_VERSION ${pciedriver_VERSION}) + + set(CPACK_RPM_COMPONENT_INSTALL ON) + set(CPACK_RPM_PACKAGE_AUTOREQ no) + set(CPACK_RPM_PACKAGE_AUTOPROV yes) + set(CPACK_RPM_PCIEDRIVER_PACKAGE_REQUIRE "dkms") + set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION + /lib + /usr/etc + /etc/systemd + /lib/systemd + /etc/systemd/system + /lib/systemd/system + /etc/udev + /etc/udev/rules.d + ) + set(CPACK_RPM_PCIEDRIVER_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/postinst") + set(CPACK_RPM_PCIEDRIVER_PRE_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/prerm") + set(CPACK_RPM_PCIEDRIVER_PACKAGE_NAME "pcieDriver") + set(CPACK_RPM_PCIEDRIVER_FILE_NAME + "${CPACK_RPM_PCIEDRIVER_PACKAGE_NAME}_${pciedriver_VERSION}" + ) + set(CPACK_RPM_PCIEDRIVER_PACKAGE_DESCRIPTION "pcieDriver library/driver") + set(CPACK_RPM_PCIEDRIVER_PACKAGE_VERSION ${pciedriver_VERSION}) + + set(pciedriver_DISTRO_VERSION "" CACHE STRING "pciedriver distribution version") + string(APPEND pciedriver_VERSION "${pciedriver_DISTRO_VERSION}") + set(CPACK_PACKAGE_VENDOR "LNLS") + set(CPACK_PACKAGE_CONTACT "Lucas Russo ") + + # Install pciedriver component + set(CPACK_COMPONENTS_ALL "pciedriver") + message(STATUS "CPACK_COMPONENTS_ALL: ${CPACK_COMPONENTS_ALL}") + + include(CPack) - # For CPack - set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_BINARY_DIR}/postinst;${CMAKE_CURRENT_BINARY_DIR}/prerm") - set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/postinst") - set(CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/prerm") + cpack_add_component_group(PcieDriver + DISPLAY_NAME "pcieDriver drivers, headers and libraries" + ) + + cpack_add_component(pciedriver + DISPLAY_NAME "pcieDriver drivers, headers and libraries" + GROUP PcieDriver + INSTALL_TYPES FullDriver + ) + + cpack_add_install_type(FullDriver + DISPLAY_NAME "Full drivers, headers and libraries" + ) endif() diff --git a/src/apps/halcsd/CMakeConfigureInstall.cmake b/src/apps/halcsd/CMakeConfigureInstall.cmake index 9531c4cd..e9c1c6da 100644 --- a/src/apps/halcsd/CMakeConfigureInstall.cmake +++ b/src/apps/halcsd/CMakeConfigureInstall.cmake @@ -44,6 +44,10 @@ if(NOT DEFINED NOPREFIX_HALCS_DATADIR) message(FATAL_ERROR "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): error: Variable NOPREFIX_HALCS_DATADIR is not defined.") endif() +if(NOT DEFINED HALCS_LOG_DIR) + message(FATAL_ERROR "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): error: Variable HALCS_LOG_DIR is not defined.") +endif() + if(NOT DEFINED CMAKE_INSTALL_FULL_BINDIR) message(FATAL_ERROR "${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): error: Variable CMAKE_INSTALL_FULL_BINDIR is not defined.") endif() @@ -67,6 +71,7 @@ set(halcsd_CMAKE_INSTALL_FULL_DATADIR "${CMAKE_INSTALL_FULL_DATADIR}") set(halcsd_HALCS_INSTALL_FULL_DATADIR "${CMAKE_INSTALL_FULL_DATADIR}/${NOPREFIX_HALCS_DATADIR}") set(halcsd_HALCS_INSTALL_FULL_SYSCONFDIR "${HALCS_SYSCONFDIR}") set(halcsd_UDEV_INSTALL_FULL_SYSCONFDIR "${UDEV_SYSCONFDIR}") +set(halcsd_HALCS_FULL_LOG_DIR "${HALCS_LOG_DIR}") configure_file(${input_file} ${output_file} diff --git a/src/apps/halcsd/CMakeLists.txt b/src/apps/halcsd/CMakeLists.txt index 154497ea..75216b48 100644 --- a/src/apps/halcsd/CMakeLists.txt +++ b/src/apps/halcsd/CMakeLists.txt @@ -124,6 +124,12 @@ set(HALCS_SYSCONFDIR ${HALCS_CFG_PREFIX}/${NOPREFIX_HALCS_SYSCONFDIR}) # relative directory for halcs data files set(NOPREFIX_HALCS_DATADIR "halcs") +# set postinst filenames +set(DEBIAN_POSTINST_FILE_NAME "postinst.debian") +set(REDHAT_POSTINST_FILE_NAME "postinst.redhat") + +set(HALCS_LOG_DIR "/var/log/halcs") + ######################################################################## # Library compile options ######################################################################## @@ -363,6 +369,20 @@ foreach(bin_target ${apps_halcsd}) OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) + set(halcsd_FULL_LOG_DIR ${HALCS_LOG_DIR}) + + configure_file ( + "${CMAKE_CURRENT_SOURCE_DIR}/${DEBIAN_POSTINST_FILE_NAME}.in" + "${CMAKE_CURRENT_BINARY_DIR}/${DEBIAN_POSTINST_FILE_NAME}" + @ONLY + ) + + configure_file ( + "${CMAKE_CURRENT_SOURCE_DIR}/${REDHAT_POSTINST_FILE_NAME}.in" + "${CMAKE_CURRENT_BINARY_DIR}/${REDHAT_POSTINST_FILE_NAME}" + @ONLY + ) + if(WITH_SYSTEMD) # service files. Use an install script so we are able to change the # absolute paths of systemd unit files on install, which can be @@ -374,6 +394,7 @@ foreach(bin_target ${apps_halcsd}) install(CODE "set(HALCS_SYSCONFDIR ${HALCS_SYSCONFDIR})") install(CODE "set(NOPREFIX_HALCS_SYSCONFDIR ${NOPREFIX_HALCS_SYSCONFDIR})") install(CODE "set(NOPREFIX_HALCS_DATADIR ${NOPREFIX_HALCS_DATADIR})") + install(CODE "set(HALCS_LOG_DIR ${HALCS_LOG_DIR})") install(CODE "set(input_file \"${CMAKE_CURRENT_SOURCE_DIR}/init/systemd/etc/systemd/system/halcs-be@.service.in\")") @@ -475,6 +496,8 @@ if(ENABLE_CPACK) # we also depend on malamute >= 1.0, but this has not been packaged into the official # repositories yet set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsodium-dev (>= 1.0.8), libzmq3-dev (>= 4.2.5), libczmq-dev (>= 4.0.2), dkms") + set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_BINARY_DIR}/${DEBIAN_POSTINST_FILE_NAME}") + set(CPACK_RPM_PACKAGE_AUTOREQ no) set(CPACK_RPM_PACKAGE_AUTOPROV yes) # we also depend on malamute >= 1.0, but this has not been packaged into the official @@ -490,6 +513,13 @@ if(ENABLE_CPACK) /etc/udev /etc/udev/rules.d ) + set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/${REDHAT_POSTINST_FILE_NAME}") + + # Install all components but pciedriver: already packaged + get_cmake_property(CPACK_COMPONENTS_ALL COMPONENTS) + list(REMOVE_ITEM CPACK_COMPONENTS_ALL "pciedriver") + message(STATUS "CPACK_COMPONENTS_ALL: ${CPACK_COMPONENTS_ALL}") + set(CPACK_PACKAGE_NAME "halcsd") set(halcs_DISTRO_VERSION "" CACHE STRING "halcs distribution version") string(APPEND halcs_VERSION "${halcs_DISTRO_VERSION}") diff --git a/src/apps/halcsd/init/systemd/etc/systemd/system/halcs-be@.service.in b/src/apps/halcsd/init/systemd/etc/systemd/system/halcs-be@.service.in index 6130b09a..0f041945 100644 --- a/src/apps/halcsd/init/systemd/etc/systemd/system/halcs-be@.service.in +++ b/src/apps/halcsd/init/systemd/etc/systemd/system/halcs-be@.service.in @@ -7,8 +7,10 @@ Requires=malamute.service PartOf=halcs@%i.target [Service] +User=halcs +Group=halcs EnvironmentFile=@halcsd_SYSTEMD_CONF_INSTALL_DIR@/halcs-board -Environment=HALCS_LOG_DIR=/var/log/halcs +Environment=HALCS_LOG_DIR=@halcsd_HALCS_FULL_LOG_DIR@ ExecStartPre=/bin/mkdir -p ${HALCS_LOG_DIR} ExecStart=@halcsd_CMAKE_INSTALL_FULL_BINDIR@/halcsd -f @halcsd_HALCS_INSTALL_FULL_SYSCONFDIR@/halcs.cfg -n be -t pcie -i %i -b ipc:///tmp/malamute -l ${HALCS_LOG_DIR} WorkingDirectory=@halcsd_CMAKE_INSTALL_FULL_BINDIR@ diff --git a/src/apps/halcsd/init/systemd/etc/systemd/system/halcs-fe@.service.in b/src/apps/halcsd/init/systemd/etc/systemd/system/halcs-fe@.service.in index 07518112..5bd09b3d 100644 --- a/src/apps/halcsd/init/systemd/etc/systemd/system/halcs-fe@.service.in +++ b/src/apps/halcsd/init/systemd/etc/systemd/system/halcs-fe@.service.in @@ -7,8 +7,10 @@ Requires=malamute.service PartOf=halcs@%i.target [Service] +User=halcs +Group=halcs EnvironmentFile=@halcsd_SYSTEMD_CONF_INSTALL_DIR@/halcs-board -Environment=HALCS_LOG_DIR=/var/log/halcs +Environment=HALCS_LOG_DIR=@halcsd_HALCS_FULL_LOG_DIR@ ExecStartPre=/bin/mkdir -p ${HALCS_LOG_DIR} ExecStart=@halcsd_CMAKE_INSTALL_FULL_BINDIR@/halcsd -f @halcsd_HALCS_INSTALL_FULL_SYSCONFDIR@/halcs.cfg -n fe -t eth -i %i -b ipc:///tmp/malamute -l ${HALCS_LOG_DIR} WorkingDirectory=@halcsd_CMAKE_INSTALL_FULL_BINDIR@ diff --git a/src/apps/halcsd/postinst.debian.in b/src/apps/halcsd/postinst.debian.in new file mode 100755 index 00000000..1b56554e --- /dev/null +++ b/src/apps/halcsd/postinst.debian.in @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e + +echo "Creating user/group halcs" +adduser --system --quiet --group --no-create-home halcs || : +echo "Adding user halcs to group users" +usermod -a -G users halcs || : +echo "Creating /var/log/halcs directory" +mkdir -p @halcsd_FULL_LOG_DIR@ +echo "Changing permissions" +chown -R halcs:halcs @halcsd_FULL_LOG_DIR@ + +exit 0 diff --git a/src/apps/halcsd/postinst.redhat.in b/src/apps/halcsd/postinst.redhat.in new file mode 100755 index 00000000..081beba4 --- /dev/null +++ b/src/apps/halcsd/postinst.redhat.in @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e + +echo "Creating user/group halcs" +useradd --system --no-create-home halcs || : +echo "Adding user halcs to group users" +usermod -a -G users halcs || : +echo "Creating /var/log/halcs directory" +mkdir -p @halcsd_FULL_LOG_DIR@ +echo "Changing permissions" +chown -R halcs:halcs @halcsd_FULL_LOG_DIR@ + +exit 0 From eccc35cddb05da4d8b46068e8c7c275a8ed1eaee Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Wed, 31 Mar 2021 12:54:01 -0300 Subject: [PATCH 03/23] foreign/pcie-driver: update submodule reference --- foreign/pcie-driver | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/foreign/pcie-driver b/foreign/pcie-driver index 6eb66abb..35fc3bb2 160000 --- a/foreign/pcie-driver +++ b/foreign/pcie-driver @@ -1 +1 @@ -Subproject commit 6eb66abb7e70e21094507f97aa14f059eb4aa7d8 +Subproject commit 35fc3bb235d506df6463387086885876a6f3df78 From c30060715961ed27e71bbd6a40bb1e397d596f69 Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Wed, 31 Mar 2021 12:56:55 -0300 Subject: [PATCH 04/23] foreign/libbsm: update submodule reference --- foreign/libbsmp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/foreign/libbsmp b/foreign/libbsmp index 39518d8e..0dce82f1 160000 --- a/foreign/libbsmp +++ b/foreign/libbsmp @@ -1 +1 @@ -Subproject commit 39518d8eb1b5eadb6489ddb617d8cde45384726a +Subproject commit 0dce82f13558d39f731149ab164df11d69d42e80 From 9ef76f3b8ff6a9bde7eacb2d5d92c9ef1f59678e Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Wed, 31 Mar 2021 17:47:53 -0300 Subject: [PATCH 05/23] cmake: fix COMPONENT based CPack install rules You can control which packages are generated by changing two CMAKE variables: - cpack_components_grouping_OPT - cpack_components_all_OPT set(cpack_components_grouping_OPT "ALL_COMPONENTS_IN_ONE" CACHE STRING "CPack CPACK_COMPONENTS_GROUPING variable" ) set(CPACK_COMPONENTS_GROUPING "${cpack_components_grouping_OPT}") set(cpack_components_all_OPT "Binaries;Libs;Scripts;Tools" CACHE STRING "CPack CPACK_COMPONENTS_ALL variable" ) set(CPACK_COMPONENTS_ALL "${cpack_components_all_OPT}") --- CMakeLists.txt | 149 ++++++++++++ cmake/Modules/AddExternalProjectBsmp.cmake | 2 + .../AddExternalProjectPciedriver.cmake | 69 +++--- examples/CMakeLists.txt | 63 +++--- ldconf/CMakeLists.txt | 1 + libs/acqclient/CMakeLists.txt | 74 +++--- libs/bpmclient/CMakeLists.txt | 74 +++--- libs/convc/CMakeLists.txt | 74 +++--- libs/disptable/CMakeLists.txt | 74 +++--- libs/errhand/CMakeLists.txt | 74 +++--- libs/hutils/CMakeLists.txt | 74 +++--- libs/llio/CMakeLists.txt | 75 +++--- libs/sdbfs/CMakeLists.txt | 75 +++--- libs/sdbutils/CMakeLists.txt | 74 +++--- src/apps/halcs_generic_udev/CMakeLists.txt | 133 +++-------- src/apps/halcsd/CMakeLists.txt | 214 +++++++----------- src/client/CMakeLists.txt | 75 +++--- 17 files changed, 740 insertions(+), 634 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cd5bd2aa..dea5b8a0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,6 +13,12 @@ list(APPEND CMAKE_MODULE_PATH ${halcs_CMAKE_MODULES_DIR}) # add module to prevent in-source builds include(PreventInSourceBuilds) +# detect target architecture +include(TargetArch) +# extract version numbers from header file +include(TestHalcsVersion) + +target_architecture(ARCH) # find pkg-config find_package(PkgConfig) @@ -254,6 +260,149 @@ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/ldconf) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src/dev_mngr) add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src/apps) +################################################# +## CPack +################################################# + +# ALL_COMPONENTS_IN_ONE or ONE_PER_GROUP +set(cpack_components_grouping_OPT "ALL_COMPONENTS_IN_ONE" + CACHE STRING "CPack CPACK_COMPONENTS_GROUPING variable" +) +set(CPACK_COMPONENTS_GROUPING "${cpack_components_grouping_OPT}") + +# Any of Binaries;Libs;Scripts;Tools;Pciedriver +set(cpack_components_all_OPT "Binaries;Libs;Scripts;Tools" + CACHE STRING "CPack CPACK_COMPONENTS_ALL variable" +) +set(CPACK_COMPONENTS_ALL "${cpack_components_all_OPT}") + +# CPack rules +option(ENABLE_CPACK "Enables cpack rules" ON) + +if(ENABLE_CPACK) + if(${CMAKE_BUILD_TYPE} MATCHES "Debug") + set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) + set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) + set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) + endif() + + include(InstallRequiredSystemLibraries) + + # set architecture as detected by TargetArch module + set(arch_name ${ARCH}) + + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) + + set(CPACK_GENERATOR "DEB") + + set(CPACK_DEB_COMPONENT_INSTALL ON) + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) + # we also depend on malamute >= 1.0, but this has not been packaged into the official + # repositories yet + set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsodium-dev (>= 1.0.8), libzmq3-dev (>= 4.2.5), libczmq-dev (>= 4.0.2)") + set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_BINARY_DIR}/${DEBIAN_POSTINST_FILE_NAME}") + + set(CPACK_RPM_COMPONENT_INSTALL ON) + set(CPACK_RPM_PACKAGE_AUTOREQ no) + set(CPACK_RPM_PACKAGE_AUTOPROV yes) + # we also depend on malamute >= 1.0, but this has not been packaged into the official + # repositories yet + set(CPACK_RPM_PACKAGE_REQUIRE "libsodium-devel >= 1.0.8, zeromq-devel >= 4.2.5, czmq-devel >= 4.0.2") + set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION + /lib + /usr/etc + /etc/systemd + /lib/systemd + /etc/systemd/system + /lib/systemd/system + /etc/udev + /etc/udev/rules.d + ) + set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/${REDHAT_POSTINST_FILE_NAME}") + + set(CPACK_PACKAGE_NAME "halcsd") + set(halcs_DISTRO_VERSION "" CACHE STRING "halcs distribution version") + string(APPEND halcs_VERSION "${halcs_DISTRO_VERSION}") + set(CPACK_PACKAGE_FILE_NAME + "${CPACK_PACKAGE_NAME}-${halcs_BOARD_OPT}_${halcs_VERSION}_${arch_name}" + ) + set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "halcsd daemon") + set(CPACK_PACKAGE_VENDOR "LNLS") + set(CPACK_PACKAGE_CONTACT "Lucas Russo ") + #set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") + # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") + # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") + # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") + + # if we are packaging Pciedriver use it's own version + if("${CPACK_COMPONENTS_ALL}" STREQUAL "Pciedriver") + set(CPACK_PACKAGE_VERSION ${pciedriver_VERSION}) + set(CPACK_PACKAGE_VERSION_MAJOR ${pciedriver_VERSION_MAJOR}) + set(CPACK_PACKAGE_VERSION_MINOR ${pciedriver_VERSION_MINOR}) + set(CPACK_PACKAGE_VERSION_PATCH ${pciedriver_VERSION_PATCH}) + else() + set(CPACK_PACKAGE_VERSION ${halcs_VERSION}) + set(CPACK_PACKAGE_VERSION_MAJOR ${halcs_VERSION_MAJOR}) + set(CPACK_PACKAGE_VERSION_MINOR ${halcs_VERSION_MINOR}) + set(CPACK_PACKAGE_VERSION_PATCH ${halcs_VERSION_PATCH}) + endif() + # set(CPACK_PACKAGE_INSTALL_DIRECTORY "halcsd Install Directory") + # set(CPACK_TEMPORARY_DIRECTORY "halcsd Temporary CPack Directory") + + include(CPack) + + # For HALCS + cpack_add_component_group(HalcsFull + DISPLAY_NAME "HALCS libs, scripts, tools, headers and binaries" + ) + + cpack_add_component(Binaries + DISPLAY_NAME "Halcs binaries" + GROUP HalcsFull + INSTALL_TYPES FullHalcs + ) + + cpack_add_component(Libs + DISPLAY_NAME "Halcs libraries" + GROUP HalcsFull + INSTALL_TYPES FullHalcs + ) + + cpack_add_component(Scripts + DISPLAY_NAME "Halcs scripts" + GROUP HalcsFull + INSTALL_TYPES FullHalcs + ) + + cpack_add_component(Tools + DISPLAY_NAME "Halcs tools" + GROUP HalcsFull + INSTALL_TYPES FullHalcs + ) + + cpack_add_install_type(FullHalcs + DISPLAY_NAME "Full Halcs" + ) + + # For Pciedriver + cpack_add_component_group(Pciedriver + DISPLAY_NAME "pcieDriver drivers, headers and libraries" + ) + + cpack_add_component(Pciedriver + DISPLAY_NAME "pcieDriver drivers, headers and libraries" + GROUP Pciedriver + INSTALL_TYPES FullDriver + ) + + cpack_add_install_type(FullDriver + DISPLAY_NAME "Full drivers, headers and libraries" + ) + +endif() + ######################################################################## # Custom targets ######################################################################## diff --git a/cmake/Modules/AddExternalProjectBsmp.cmake b/cmake/Modules/AddExternalProjectBsmp.cmake index 4bae2d1d..ec4135f3 100644 --- a/cmake/Modules/AddExternalProjectBsmp.cmake +++ b/cmake/Modules/AddExternalProjectBsmp.cmake @@ -85,6 +85,7 @@ install(DIRECTORY ${bsmp_public_dirs} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + COMPONENT Libs ) # as we can't intall IMPORTED libraries as TARGETS, just use plain @@ -94,4 +95,5 @@ install(FILES ${bsmp_LIBRARY_DIRECTORIES}/libbsmp.a DESTINATION ${CMAKE_INSTALL_LIBDIR} + COMPONENT Libs ) diff --git a/cmake/Modules/AddExternalProjectPciedriver.cmake b/cmake/Modules/AddExternalProjectPciedriver.cmake index 50b103f7..01db8ce7 100644 --- a/cmake/Modules/AddExternalProjectPciedriver.cmake +++ b/cmake/Modules/AddExternalProjectPciedriver.cmake @@ -8,6 +8,10 @@ include(GNUInstallDirs) include(TestPciedriverVersion) # add external project include(ExternalProject) +# detect target architecture +include(TargetArch) + +target_architecture(ARCH) ExternalProject_Add(pciedriver_ext URL ${CMAKE_CURRENT_SOURCE_DIR}/foreign/pcie-driver @@ -98,7 +102,7 @@ install(DIRECTORY ${pciedriver_public_dirs} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - COMPONENT pciedriver + COMPONENT Libs FILES_MATCHING PATTERN "*.h" ) @@ -110,7 +114,7 @@ install(FILES ${pciedriver_LIBRARY_DIRECTORIES}/libpcidriver.a DESTINATION ${CMAKE_INSTALL_LIBDIR} - COMPONENT pciedriver + COMPONENT Libs ) ####################################### @@ -203,16 +207,16 @@ if(BUILD_PCIE_DRIVER) install(FILES ${pciedriver_driver_SRCS} DESTINATION ${pciedriver_DKMS_INSTALL_DIR} - COMPONENT pciedriver + COMPONENT Pciedriver ) install(FILES ${pciedriver_driver_SCRIPT} DESTINATION ${pciedriver_DKMS_INSTALL_DIR} PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE - COMPONENT pciedriver + COMPONENT Pciedriver ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${DKMS_FILE_NAME} DESTINATION ${pciedriver_DKMS_INSTALL_DIR} - COMPONENT pciedriver + COMPONENT Pciedriver ) endif() @@ -229,25 +233,28 @@ if(ENABLE_CPACK) include(InstallRequiredSystemLibraries) + # set architecture as detected by TargetArch module + set(arch_name ${ARCH}) + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) + set(pciedriver_DISTRO_VERSION "" CACHE STRING "pciedriver distribution version") + string(APPEND pciedriver_VERSION "${pciedriver_DISTRO_VERSION}") set(CPACK_GENERATOR "DEB") set(CPACK_DEB_COMPONENT_INSTALL ON) set(CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS ON) set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) set(CPACK_DEBIAN_PCIEDRIVER_PACKAGE_DEPENDS "dkms") set(CPACK_DEBIAN_PCIEDRIVER_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_BINARY_DIR}/postinst;${CMAKE_CURRENT_BINARY_DIR}/prerm" ) set(CPACK_DEBIAN_PCIEDRIVER_PACKAGE_NAME "pcieDriver") set(CPACK_DEBIAN_PCIEDRIVER_FILE_NAME - "${CPACK_DEBIAN_PCIEDRIVER_PACKAGE_NAME}_${pciedriver_VERSION}" + "${CPACK_DEBIAN_PCIEDRIVER_PACKAGE_NAME}_${pciedriver_VERSION}_${arch_name}.deb" ) - set(CPACK_DEBIAN_PCIEDRIVER_DESCRIPTION "pcieDriver library/driver") - set(CPACK_DEBIAN_PCIEDRIVER_PACKAGE_VERSION ${pciedriver_VERSION}) set(CPACK_RPM_COMPONENT_INSTALL ON) set(CPACK_RPM_PACKAGE_AUTOREQ no) @@ -267,34 +274,30 @@ if(ENABLE_CPACK) set(CPACK_RPM_PCIEDRIVER_PRE_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/prerm") set(CPACK_RPM_PCIEDRIVER_PACKAGE_NAME "pcieDriver") set(CPACK_RPM_PCIEDRIVER_FILE_NAME - "${CPACK_RPM_PCIEDRIVER_PACKAGE_NAME}_${pciedriver_VERSION}" + "${CPACK_RPM_PCIEDRIVER_PACKAGE_NAME}_${pciedriver_VERSION}_${arch_name}.rpm" ) - set(CPACK_RPM_PCIEDRIVER_PACKAGE_DESCRIPTION "pcieDriver library/driver") - set(CPACK_RPM_PCIEDRIVER_PACKAGE_VERSION ${pciedriver_VERSION}) - set(pciedriver_DISTRO_VERSION "" CACHE STRING "pciedriver distribution version") - string(APPEND pciedriver_VERSION "${pciedriver_DISTRO_VERSION}") + set(CPACK_COMPONENT_PCIEDRIVER_DESCRIPTION "pcieDriver library/driver") set(CPACK_PACKAGE_VENDOR "LNLS") set(CPACK_PACKAGE_CONTACT "Lucas Russo ") - # Install pciedriver component - set(CPACK_COMPONENTS_ALL "pciedriver") - message(STATUS "CPACK_COMPONENTS_ALL: ${CPACK_COMPONENTS_ALL}") - - include(CPack) - - cpack_add_component_group(PcieDriver - DISPLAY_NAME "pcieDriver drivers, headers and libraries" - ) - - cpack_add_component(pciedriver - DISPLAY_NAME "pcieDriver drivers, headers and libraries" - GROUP PcieDriver - INSTALL_TYPES FullDriver - ) - - cpack_add_install_type(FullDriver - DISPLAY_NAME "Full drivers, headers and libraries" - ) + # if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + # include(CPack) + # + # cpack_add_component_group(PciedriverAll + # DISPLAY_NAME "pcieDriver drivers, headers and libraries" + # ) + # + # cpack_add_component(Pciedriver + # DISPLAY_NAME "pcieDriver drivers, headers and libraries" + # GROUP PciedriverAll + # INSTALL_TYPES FullDriver + # ) + # + # cpack_add_install_type(FullDriver + # DISPLAY_NAME "Full drivers, headers and libraries" + # ) + # + # endif() endif() diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index dfb39721..140423dd 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -509,7 +509,7 @@ if(ENABLE_CPACK) set(CPACK_GENERATOR "DEB") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) set(CPACK_RPM_PACKAGE_AUTOREQ no) set(CPACK_RPM_PACKAGE_AUTOPROV yes) set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION @@ -542,34 +542,37 @@ if(ENABLE_CPACK) # set(CPACK_PACKAGE_INSTALL_DIRECTORY "HALCS examples Install Directory") # set(CPACK_TEMPORARY_DIRECTORY "HALCS examples Temporary CPack Directory") - include(CPack) + if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + include(CPack) + + cpack_add_component_group(Development + DISPLAY_NAME "HALCS examples library" + EXPANDED + ) + cpack_add_component(SourceCode + DISPLAY_NAME "HALCS examples source code" + DISABLED + INSTALL_TYPES FullInstall + ) + cpack_add_component(SDK + DISPLAY_NAME "HALCS examples headers and libraries" + INSTALL_TYPES FullInstall DevInstall + GROUP Development + ) + cpack_add_component(Runtime + DISPLAY_NAME "HALCS examples runtime files" + REQUIRED + INSTALL_TYPES FullInstall DevInstall MinInstall + ) + cpack_add_install_type(FullInstall + DISPLAY_NAME "Full install, including source code" + ) + cpack_add_install_type(DevInstall + DISPLAY_NAME "Developer install, headers and libraries" + ) + cpack_add_install_type(MinInstall + DISPLAY_NAME "Minimal install, runtime only" + ) + endif() - cpack_add_component_group(Development - DISPLAY_NAME "HALCS examples library" - EXPANDED - ) - cpack_add_component(SourceCode - DISPLAY_NAME "HALCS examples source code" - DISABLED - INSTALL_TYPES FullInstall - ) - cpack_add_component(SDK - DISPLAY_NAME "HALCS examples headers and libraries" - INSTALL_TYPES FullInstall DevInstall - GROUP Development - ) - cpack_add_component(Runtime - DISPLAY_NAME "HALCS examples runtime files" - REQUIRED - INSTALL_TYPES FullInstall DevInstall MinInstall - ) - cpack_add_install_type(FullInstall - DISPLAY_NAME "Full install, including source code" - ) - cpack_add_install_type(DevInstall - DISPLAY_NAME "Developer install, headers and libraries" - ) - cpack_add_install_type(MinInstall - DISPLAY_NAME "Minimal install, runtime only" - ) endif() diff --git a/ldconf/CMakeLists.txt b/ldconf/CMakeLists.txt index be709549..5100132d 100644 --- a/ldconf/CMakeLists.txt +++ b/ldconf/CMakeLists.txt @@ -32,6 +32,7 @@ if(INSTALL_LDCONFIG_halcs) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ldconf/halcs.conf DESTINATION ${LDCONF_SYSCONFDIR} + COMPONENT Scripts PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) diff --git a/libs/acqclient/CMakeLists.txt b/libs/acqclient/CMakeLists.txt index f1461804..8f2bd289 100644 --- a/libs/acqclient/CMakeLists.txt +++ b/libs/acqclient/CMakeLists.txt @@ -407,11 +407,11 @@ endif() install(TARGETS ${target_outputs} acqclient_compiler_flags EXPORT ${PROJECT_NAME}-targets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Libs + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libs + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libs FRAMEWORK DESTINATION "Library/Frameworks" - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT Libs ) # CMake search path wants either "share" (AKA GNUInstallDirs DATAROOTDIR) @@ -446,6 +446,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libacqclient.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig + COMPONENT Libs ) # only available on CMake >= 3.0. Generates Targets.cmake @@ -476,12 +477,14 @@ if(BUILD_SHARED OR BUILD_STATIC) install(EXPORT ${PROJECT_NAME}-targets FILE ${PROJECT_NAME}Targets.cmake DESTINATION ${acqclient_CMAKECONFIG_INSTALL_DIR} + COMPONENT Libs ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake DESTINATION ${acqclient_CMAKECONFIG_INSTALL_DIR} + COMPONENT Libs ) endif() @@ -504,7 +507,7 @@ if(ENABLE_CPACK) set(CPACK_GENERATOR "DEB") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) set(CPACK_RPM_PACKAGE_AUTOREQ no) set(CPACK_RPM_PACKAGE_AUTOPROV yes) set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION @@ -537,34 +540,37 @@ if(ENABLE_CPACK) # set(CPACK_PACKAGE_INSTALL_DIRECTORY "acqclient Install Directory") # set(CPACK_TEMPORARY_DIRECTORY "acqclient Temporary CPack Directory") - include(CPack) + if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + include(CPack) + + cpack_add_component_group(Development + DISPLAY_NAME "Acquisition client library" + EXPANDED + ) + cpack_add_component(SourceCode + DISPLAY_NAME "Acquisition client source code" + DISABLED + INSTALL_TYPES FullInstall + ) + cpack_add_component(SDK + DISPLAY_NAME "Acquisition client headers and libraries" + INSTALL_TYPES FullInstall DevInstall + GROUP Development + ) + cpack_add_component(Runtime + DISPLAY_NAME "Acquisition client runtime files" + REQUIRED + INSTALL_TYPES FullInstall DevInstall MinInstall + ) + cpack_add_install_type(FullInstall + DISPLAY_NAME "Full install, including source code" + ) + cpack_add_install_type(DevInstall + DISPLAY_NAME "Developer install, headers and libraries" + ) + cpack_add_install_type(MinInstall + DISPLAY_NAME "Minimal install, runtime only" + ) + endif() - cpack_add_component_group(Development - DISPLAY_NAME "Acquisition client library" - EXPANDED - ) - cpack_add_component(SourceCode - DISPLAY_NAME "Acquisition client source code" - DISABLED - INSTALL_TYPES FullInstall - ) - cpack_add_component(SDK - DISPLAY_NAME "Acquisition client headers and libraries" - INSTALL_TYPES FullInstall DevInstall - GROUP Development - ) - cpack_add_component(Runtime - DISPLAY_NAME "Acquisition client runtime files" - REQUIRED - INSTALL_TYPES FullInstall DevInstall MinInstall - ) - cpack_add_install_type(FullInstall - DISPLAY_NAME "Full install, including source code" - ) - cpack_add_install_type(DevInstall - DISPLAY_NAME "Developer install, headers and libraries" - ) - cpack_add_install_type(MinInstall - DISPLAY_NAME "Minimal install, runtime only" - ) endif() diff --git a/libs/bpmclient/CMakeLists.txt b/libs/bpmclient/CMakeLists.txt index 698f78fe..59a6c3f1 100644 --- a/libs/bpmclient/CMakeLists.txt +++ b/libs/bpmclient/CMakeLists.txt @@ -430,11 +430,11 @@ endif() install(TARGETS ${target_outputs} bpmclient_compiler_flags EXPORT ${PROJECT_NAME}-targets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Libs + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libs + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libs FRAMEWORK DESTINATION "Library/Frameworks" - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT Libs ) # CMake search path wants either "share" (AKA GNUInstallDirs DATAROOTDIR) @@ -469,6 +469,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libbpmclient.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig + COMPONENT Libs ) # only available on CMake >= 3.0. Generates Targets.cmake @@ -499,12 +500,14 @@ if(BUILD_SHARED OR BUILD_STATIC) install(EXPORT ${PROJECT_NAME}-targets FILE ${PROJECT_NAME}Targets.cmake DESTINATION ${bpmclient_CMAKECONFIG_INSTALL_DIR} + COMPONENT Libs ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake DESTINATION ${bpmclient_CMAKECONFIG_INSTALL_DIR} + COMPONENT Libs ) endif() @@ -527,7 +530,7 @@ if(ENABLE_CPACK) set(CPACK_GENERATOR "DEB") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) set(CPACK_RPM_PACKAGE_AUTOREQ no) set(CPACK_RPM_PACKAGE_AUTOPROV yes) set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION @@ -560,34 +563,37 @@ if(ENABLE_CPACK) # set(CPACK_PACKAGE_INSTALL_DIRECTORY "bpmclient Install Directory") # set(CPACK_TEMPORARY_DIRECTORY "bpmclient Temporary CPack Directory") - include(CPack) + if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + include(CPack) + + cpack_add_component_group(Development + DISPLAY_NAME "BPM client library" + EXPANDED + ) + cpack_add_component(SourceCode + DISPLAY_NAME "BPM client source code" + DISABLED + INSTALL_TYPES FullInstall + ) + cpack_add_component(SDK + DISPLAY_NAME "BPM client headers and libraries" + INSTALL_TYPES FullInstall DevInstall + GROUP Development + ) + cpack_add_component(Runtime + DISPLAY_NAME "BPM client runtime files" + REQUIRED + INSTALL_TYPES FullInstall DevInstall MinInstall + ) + cpack_add_install_type(FullInstall + DISPLAY_NAME "Full install, including source code" + ) + cpack_add_install_type(DevInstall + DISPLAY_NAME "Developer install, headers and libraries" + ) + cpack_add_install_type(MinInstall + DISPLAY_NAME "Minimal install, runtime only" + ) + endif() - cpack_add_component_group(Development - DISPLAY_NAME "BPM client library" - EXPANDED - ) - cpack_add_component(SourceCode - DISPLAY_NAME "BPM client source code" - DISABLED - INSTALL_TYPES FullInstall - ) - cpack_add_component(SDK - DISPLAY_NAME "BPM client headers and libraries" - INSTALL_TYPES FullInstall DevInstall - GROUP Development - ) - cpack_add_component(Runtime - DISPLAY_NAME "BPM client runtime files" - REQUIRED - INSTALL_TYPES FullInstall DevInstall MinInstall - ) - cpack_add_install_type(FullInstall - DISPLAY_NAME "Full install, including source code" - ) - cpack_add_install_type(DevInstall - DISPLAY_NAME "Developer install, headers and libraries" - ) - cpack_add_install_type(MinInstall - DISPLAY_NAME "Minimal install, runtime only" - ) endif() diff --git a/libs/convc/CMakeLists.txt b/libs/convc/CMakeLists.txt index 40f1025f..b3140110 100644 --- a/libs/convc/CMakeLists.txt +++ b/libs/convc/CMakeLists.txt @@ -301,11 +301,11 @@ endif() install(TARGETS ${target_outputs} convc_compiler_flags EXPORT ${PROJECT_NAME}-targets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Libs + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libs + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libs FRAMEWORK DESTINATION "Library/Frameworks" - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT Libs ) # CMake search path wants either "share" (AKA GNUInstallDirs DATAROOTDIR) @@ -340,6 +340,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libconvc.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig + COMPONENT Libs ) # only available on CMake >= 3.0. Generates Targets.cmake @@ -370,12 +371,14 @@ if(BUILD_SHARED OR BUILD_STATIC) install(EXPORT ${PROJECT_NAME}-targets FILE ${PROJECT_NAME}Targets.cmake DESTINATION ${convc_CMAKECONFIG_INSTALL_DIR} + COMPONENT Libs ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake DESTINATION ${convc_CMAKECONFIG_INSTALL_DIR} + COMPONENT Libs ) endif() @@ -398,7 +401,7 @@ if(ENABLE_CPACK) set(CPACK_GENERATOR "DEB") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) set(CPACK_RPM_PACKAGE_AUTOREQ no) set(CPACK_RPM_PACKAGE_AUTOPROV yes) set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION @@ -431,34 +434,37 @@ if(ENABLE_CPACK) # set(CPACK_PACKAGE_INSTALL_DIRECTORY "convc Install Directory") # set(CPACK_TEMPORARY_DIRECTORY "convc Temporary CPack Directory") - include(CPack) + if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + include(CPack) + + cpack_add_component_group(Development + DISPLAY_NAME "Convc library" + EXPANDED + ) + cpack_add_component(SourceCode + DISPLAY_NAME "Convc source code" + DISABLED + INSTALL_TYPES FullInstall + ) + cpack_add_component(SDK + DISPLAY_NAME "Convc headers and libraries" + INSTALL_TYPES FullInstall DevInstall + GROUP Development + ) + cpack_add_component(Runtime + DISPLAY_NAME "Convc runtime files" + REQUIRED + INSTALL_TYPES FullInstall DevInstall MinInstall + ) + cpack_add_install_type(FullInstall + DISPLAY_NAME "Full install, including source code" + ) + cpack_add_install_type(DevInstall + DISPLAY_NAME "Developer install, headers and libraries" + ) + cpack_add_install_type(MinInstall + DISPLAY_NAME "Minimal install, runtime only" + ) + endif() - cpack_add_component_group(Development - DISPLAY_NAME "Convc library" - EXPANDED - ) - cpack_add_component(SourceCode - DISPLAY_NAME "Convc source code" - DISABLED - INSTALL_TYPES FullInstall - ) - cpack_add_component(SDK - DISPLAY_NAME "Convc headers and libraries" - INSTALL_TYPES FullInstall DevInstall - GROUP Development - ) - cpack_add_component(Runtime - DISPLAY_NAME "Convc runtime files" - REQUIRED - INSTALL_TYPES FullInstall DevInstall MinInstall - ) - cpack_add_install_type(FullInstall - DISPLAY_NAME "Full install, including source code" - ) - cpack_add_install_type(DevInstall - DISPLAY_NAME "Developer install, headers and libraries" - ) - cpack_add_install_type(MinInstall - DISPLAY_NAME "Minimal install, runtime only" - ) endif() diff --git a/libs/disptable/CMakeLists.txt b/libs/disptable/CMakeLists.txt index 68e261df..5106796d 100644 --- a/libs/disptable/CMakeLists.txt +++ b/libs/disptable/CMakeLists.txt @@ -324,11 +324,11 @@ endif() install(TARGETS ${target_outputs} disptable_compiler_flags EXPORT ${PROJECT_NAME}-targets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Libs + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libs + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libs FRAMEWORK DESTINATION "Library/Frameworks" - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT Libs ) # CMake search path wants either "share" (AKA GNUInstallDirs DATAROOTDIR) @@ -363,6 +363,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libdisptable.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig + COMPONENT Libs ) # only available on CMake >= 3.0. Generates Targets.cmake @@ -393,12 +394,14 @@ if(BUILD_SHARED OR BUILD_STATIC) install(EXPORT ${PROJECT_NAME}-targets FILE ${PROJECT_NAME}Targets.cmake DESTINATION ${disptable_CMAKECONFIG_INSTALL_DIR} + COMPONENT Libs ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake DESTINATION ${disptable_CMAKECONFIG_INSTALL_DIR} + COMPONENT Libs ) endif() @@ -421,7 +424,7 @@ if(ENABLE_CPACK) set(CPACK_GENERATOR "DEB") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) set(CPACK_RPM_PACKAGE_AUTOREQ no) set(CPACK_RPM_PACKAGE_AUTOPROV yes) set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION @@ -454,34 +457,37 @@ if(ENABLE_CPACK) # set(CPACK_PACKAGE_INSTALL_DIRECTORY "disptable Install Directory") # set(CPACK_TEMPORARY_DIRECTORY "disptable Temporary CPack Directory") - include(CPack) + if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + include(CPack) + + cpack_add_component_group(Development + DISPLAY_NAME "Disptable library" + EXPANDED + ) + cpack_add_component(SourceCode + DISPLAY_NAME "Disptable source code" + DISABLED + INSTALL_TYPES FullInstall + ) + cpack_add_component(SDK + DISPLAY_NAME "Disptable headers and libraries" + INSTALL_TYPES FullInstall DevInstall + GROUP Development + ) + cpack_add_component(Runtime + DISPLAY_NAME "Disptable runtime files" + REQUIRED + INSTALL_TYPES FullInstall DevInstall MinInstall + ) + cpack_add_install_type(FullInstall + DISPLAY_NAME "Full install, including source code" + ) + cpack_add_install_type(DevInstall + DISPLAY_NAME "Developer install, headers and libraries" + ) + cpack_add_install_type(MinInstall + DISPLAY_NAME "Minimal install, runtime only" + ) + endif() - cpack_add_component_group(Development - DISPLAY_NAME "Disptable library" - EXPANDED - ) - cpack_add_component(SourceCode - DISPLAY_NAME "Disptable source code" - DISABLED - INSTALL_TYPES FullInstall - ) - cpack_add_component(SDK - DISPLAY_NAME "Disptable headers and libraries" - INSTALL_TYPES FullInstall DevInstall - GROUP Development - ) - cpack_add_component(Runtime - DISPLAY_NAME "Disptable runtime files" - REQUIRED - INSTALL_TYPES FullInstall DevInstall MinInstall - ) - cpack_add_install_type(FullInstall - DISPLAY_NAME "Full install, including source code" - ) - cpack_add_install_type(DevInstall - DISPLAY_NAME "Developer install, headers and libraries" - ) - cpack_add_install_type(MinInstall - DISPLAY_NAME "Minimal install, runtime only" - ) endif() diff --git a/libs/errhand/CMakeLists.txt b/libs/errhand/CMakeLists.txt index dfdcec1a..6423cdff 100644 --- a/libs/errhand/CMakeLists.txt +++ b/libs/errhand/CMakeLists.txt @@ -345,11 +345,11 @@ endif() install(TARGETS ${target_outputs} errhand_compiler_flags EXPORT ${PROJECT_NAME}-targets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Libs + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libs + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libs FRAMEWORK DESTINATION "Library/Frameworks" - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT Libs ) # CMake search path wants either "share" (AKA GNUInstallDirs DATAROOTDIR) @@ -384,6 +384,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/liberrhand.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig + COMPONENT Libs ) # only available on CMake >= 3.0. Generates Targets.cmake @@ -414,12 +415,14 @@ if(BUILD_SHARED OR BUILD_STATIC) install(EXPORT ${PROJECT_NAME}-targets FILE ${PROJECT_NAME}Targets.cmake DESTINATION ${errhand_CMAKECONFIG_INSTALL_DIR} + COMPONENT Libs ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake DESTINATION ${errhand_CMAKECONFIG_INSTALL_DIR} + COMPONENT Libs ) endif() @@ -442,7 +445,7 @@ if(ENABLE_CPACK) set(CPACK_GENERATOR "DEB") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) set(CPACK_RPM_PACKAGE_AUTOREQ no) set(CPACK_RPM_PACKAGE_AUTOPROV yes) set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION @@ -475,34 +478,37 @@ if(ENABLE_CPACK) # set(CPACK_PACKAGE_INSTALL_DIRECTORY "errhand Install Directory") # set(CPACK_TEMPORARY_DIRECTORY "errhand Temporary CPack Directory") - include(CPack) + if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + include(CPack) + + cpack_add_component_group(Development + DISPLAY_NAME "Errhand library" + EXPANDED + ) + cpack_add_component(SourceCode + DISPLAY_NAME "Errhand source code" + DISABLED + INSTALL_TYPES FullInstall + ) + cpack_add_component(SDK + DISPLAY_NAME "Errhand headers and libraries" + INSTALL_TYPES FullInstall DevInstall + GROUP Development + ) + cpack_add_component(Runtime + DISPLAY_NAME "Errhand runtime files" + REQUIRED + INSTALL_TYPES FullInstall DevInstall MinInstall + ) + cpack_add_install_type(FullInstall + DISPLAY_NAME "Full install, including source code" + ) + cpack_add_install_type(DevInstall + DISPLAY_NAME "Developer install, headers and libraries" + ) + cpack_add_install_type(MinInstall + DISPLAY_NAME "Minimal install, runtime only" + ) + endif() - cpack_add_component_group(Development - DISPLAY_NAME "Errhand library" - EXPANDED - ) - cpack_add_component(SourceCode - DISPLAY_NAME "Errhand source code" - DISABLED - INSTALL_TYPES FullInstall - ) - cpack_add_component(SDK - DISPLAY_NAME "Errhand headers and libraries" - INSTALL_TYPES FullInstall DevInstall - GROUP Development - ) - cpack_add_component(Runtime - DISPLAY_NAME "Errhand runtime files" - REQUIRED - INSTALL_TYPES FullInstall DevInstall MinInstall - ) - cpack_add_install_type(FullInstall - DISPLAY_NAME "Full install, including source code" - ) - cpack_add_install_type(DevInstall - DISPLAY_NAME "Developer install, headers and libraries" - ) - cpack_add_install_type(MinInstall - DISPLAY_NAME "Minimal install, runtime only" - ) endif() diff --git a/libs/hutils/CMakeLists.txt b/libs/hutils/CMakeLists.txt index f6afd2e2..6284475b 100644 --- a/libs/hutils/CMakeLists.txt +++ b/libs/hutils/CMakeLists.txt @@ -332,11 +332,11 @@ endif() install(TARGETS ${target_outputs} hutils_compiler_flags EXPORT ${PROJECT_NAME}-targets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Libs + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libs + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libs FRAMEWORK DESTINATION "Library/Frameworks" - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT Libs ) # CMake search path wants either "share" (AKA GNUInstallDirs DATAROOTDIR) @@ -371,6 +371,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libhutils.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig + COMPONENT Libs ) # only available on CMake >= 3.0. Generates Targets.cmake @@ -401,12 +402,14 @@ if(BUILD_SHARED OR BUILD_STATIC) install(EXPORT ${PROJECT_NAME}-targets FILE ${PROJECT_NAME}Targets.cmake DESTINATION ${hutils_CMAKECONFIG_INSTALL_DIR} + COMPONENT Libs ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake DESTINATION ${hutils_CMAKECONFIG_INSTALL_DIR} + COMPONENT Libs ) endif() @@ -429,7 +432,7 @@ if(ENABLE_CPACK) set(CPACK_GENERATOR "DEB") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) set(CPACK_RPM_PACKAGE_AUTOREQ no) set(CPACK_RPM_PACKAGE_AUTOPROV yes) set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION @@ -462,34 +465,37 @@ if(ENABLE_CPACK) # set(CPACK_PACKAGE_INSTALL_DIRECTORY "hutils Install Directory") # set(CPACK_TEMPORARY_DIRECTORY "hutils Temporary CPack Directory") - include(CPack) + if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + include(CPack) + + cpack_add_component_group(Development + DISPLAY_NAME "Hutils library" + EXPANDED + ) + cpack_add_component(SourceCode + DISPLAY_NAME "Hutils source code" + DISABLED + INSTALL_TYPES FullInstall + ) + cpack_add_component(SDK + DISPLAY_NAME "Hutils headers and libraries" + INSTALL_TYPES FullInstall DevInstall + GROUP Development + ) + cpack_add_component(Runtime + DISPLAY_NAME "Hutils runtime files" + REQUIRED + INSTALL_TYPES FullInstall DevInstall MinInstall + ) + cpack_add_install_type(FullInstall + DISPLAY_NAME "Full install, including source code" + ) + cpack_add_install_type(DevInstall + DISPLAY_NAME "Developer install, headers and libraries" + ) + cpack_add_install_type(MinInstall + DISPLAY_NAME "Minimal install, runtime only" + ) + endif() - cpack_add_component_group(Development - DISPLAY_NAME "Hutils library" - EXPANDED - ) - cpack_add_component(SourceCode - DISPLAY_NAME "Hutils source code" - DISABLED - INSTALL_TYPES FullInstall - ) - cpack_add_component(SDK - DISPLAY_NAME "Hutils headers and libraries" - INSTALL_TYPES FullInstall DevInstall - GROUP Development - ) - cpack_add_component(Runtime - DISPLAY_NAME "Hutils runtime files" - REQUIRED - INSTALL_TYPES FullInstall DevInstall MinInstall - ) - cpack_add_install_type(FullInstall - DISPLAY_NAME "Full install, including source code" - ) - cpack_add_install_type(DevInstall - DISPLAY_NAME "Developer install, headers and libraries" - ) - cpack_add_install_type(MinInstall - DISPLAY_NAME "Minimal install, runtime only" - ) endif() diff --git a/libs/llio/CMakeLists.txt b/libs/llio/CMakeLists.txt index 9bb9fca8..4a67d6ad 100644 --- a/libs/llio/CMakeLists.txt +++ b/libs/llio/CMakeLists.txt @@ -384,11 +384,11 @@ endif() install(TARGETS ${target_outputs} llio_compiler_flags EXPORT ${PROJECT_NAME}-targets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Libs + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libs + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libs FRAMEWORK DESTINATION "Library/Frameworks" - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT Libs ) # install headers that are inside another directory @@ -396,6 +396,7 @@ install(DIRECTORY ${llio_public_dirs} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + COMPONENT Libs ) # CMake search path wants either "share" (AKA GNUInstallDirs DATAROOTDIR) @@ -430,6 +431,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libllio.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig + COMPONENT Libs ) # only available on CMake >= 3.0. Generates Targets.cmake @@ -460,12 +462,14 @@ if(BUILD_SHARED OR BUILD_STATIC) install(EXPORT ${PROJECT_NAME}-targets FILE ${PROJECT_NAME}Targets.cmake DESTINATION ${llio_CMAKECONFIG_INSTALL_DIR} + COMPONENT Libs ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake DESTINATION ${llio_CMAKECONFIG_INSTALL_DIR} + COMPONENT Libs ) endif() @@ -488,7 +492,7 @@ if(ENABLE_CPACK) set(CPACK_GENERATOR "DEB") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) set(CPACK_RPM_PACKAGE_AUTOREQ no) set(CPACK_RPM_PACKAGE_AUTOPROV yes) set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION @@ -521,34 +525,37 @@ if(ENABLE_CPACK) # set(CPACK_PACKAGE_INSTALL_DIRECTORY "llio Install Directory") # set(CPACK_TEMPORARY_DIRECTORY "llio Temporary CPack Directory") - include(CPack) + if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + include(CPack) + + cpack_add_component_group(Development + DISPLAY_NAME "Low-level I/O library" + EXPANDED + ) + cpack_add_component(SourceCode + DISPLAY_NAME "Low-level I/O source code" + DISABLED + INSTALL_TYPES FullInstall + ) + cpack_add_component(SDK + DISPLAY_NAME "Low-level I/O headers and libraries" + INSTALL_TYPES FullInstall DevInstall + GROUP Development + ) + cpack_add_component(Runtime + DISPLAY_NAME "Low-level I/O runtime files" + REQUIRED + INSTALL_TYPES FullInstall DevInstall MinInstall + ) + cpack_add_install_type(FullInstall + DISPLAY_NAME "Full install, including source code" + ) + cpack_add_install_type(DevInstall + DISPLAY_NAME "Developer install, headers and libraries" + ) + cpack_add_install_type(MinInstall + DISPLAY_NAME "Minimal install, runtime only" + ) + endif() - cpack_add_component_group(Development - DISPLAY_NAME "Low-level I/O library" - EXPANDED - ) - cpack_add_component(SourceCode - DISPLAY_NAME "Low-level I/O source code" - DISABLED - INSTALL_TYPES FullInstall - ) - cpack_add_component(SDK - DISPLAY_NAME "Low-level I/O headers and libraries" - INSTALL_TYPES FullInstall DevInstall - GROUP Development - ) - cpack_add_component(Runtime - DISPLAY_NAME "Low-level I/O runtime files" - REQUIRED - INSTALL_TYPES FullInstall DevInstall MinInstall - ) - cpack_add_install_type(FullInstall - DISPLAY_NAME "Full install, including source code" - ) - cpack_add_install_type(DevInstall - DISPLAY_NAME "Developer install, headers and libraries" - ) - cpack_add_install_type(MinInstall - DISPLAY_NAME "Minimal install, runtime only" - ) endif() diff --git a/libs/sdbfs/CMakeLists.txt b/libs/sdbfs/CMakeLists.txt index 5b38650e..93e9e995 100644 --- a/libs/sdbfs/CMakeLists.txt +++ b/libs/sdbfs/CMakeLists.txt @@ -528,11 +528,11 @@ endif() install(TARGETS ${target_outputs} sdbfs_compiler_flags EXPORT ${PROJECT_NAME}-targets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Libs + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libs + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libs FRAMEWORK DESTINATION "Library/Frameworks" - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT Libs ) # install headers that are inside another directory @@ -540,6 +540,7 @@ install(DIRECTORY ${sdbfs_public_dirs} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + COMPONENT Libs ) # CMake search path wants either "share" (AKA GNUInstallDirs DATAROOTDIR) @@ -574,6 +575,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libsdbfs.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig + COMPONENT Libs ) # only available on CMake >= 3.0. Generates Targets.cmake @@ -604,12 +606,14 @@ if(BUILD_SHARED OR BUILD_STATIC) install(EXPORT ${PROJECT_NAME}-targets FILE ${PROJECT_NAME}Targets.cmake DESTINATION ${sdbfs_CMAKECONFIG_INSTALL_DIR} + COMPONENT Libs ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake DESTINATION ${sdbfs_CMAKECONFIG_INSTALL_DIR} + COMPONENT Libs ) endif() @@ -632,7 +636,7 @@ if(ENABLE_CPACK) set(CPACK_GENERATOR "DEB") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) set(CPACK_RPM_PACKAGE_AUTOREQ no) set(CPACK_RPM_PACKAGE_AUTOPROV yes) set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION @@ -665,34 +669,37 @@ if(ENABLE_CPACK) # set(CPACK_PACKAGE_INSTALL_DIRECTORY "sdbfs Install Directory") # set(CPACK_TEMPORARY_DIRECTORY "sdbfs Temporary CPack Directory") - include(CPack) + if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + include(CPack) + + cpack_add_component_group(Development + DISPLAY_NAME "SDB Filesystem library" + EXPANDED + ) + cpack_add_component(SourceCode + DISPLAY_NAME "SDB Filesystem source code" + DISABLED + INSTALL_TYPES FullInstall + ) + cpack_add_component(SDK + DISPLAY_NAME "SDB Filesystem headers and libraries" + INSTALL_TYPES FullInstall DevInstall + GROUP Development + ) + cpack_add_component(Runtime + DISPLAY_NAME "SDB Filesystem runtime files" + REQUIRED + INSTALL_TYPES FullInstall DevInstall MinInstall + ) + cpack_add_install_type(FullInstall + DISPLAY_NAME "Full install, including source code" + ) + cpack_add_install_type(DevInstall + DISPLAY_NAME "Developer install, headers and libraries" + ) + cpack_add_install_type(MinInstall + DISPLAY_NAME "Minimal install, runtime only" + ) + endif() - cpack_add_component_group(Development - DISPLAY_NAME "SDB Filesystem library" - EXPANDED - ) - cpack_add_component(SourceCode - DISPLAY_NAME "SDB Filesystem source code" - DISABLED - INSTALL_TYPES FullInstall - ) - cpack_add_component(SDK - DISPLAY_NAME "SDB Filesystem headers and libraries" - INSTALL_TYPES FullInstall DevInstall - GROUP Development - ) - cpack_add_component(Runtime - DISPLAY_NAME "SDB Filesystem runtime files" - REQUIRED - INSTALL_TYPES FullInstall DevInstall MinInstall - ) - cpack_add_install_type(FullInstall - DISPLAY_NAME "Full install, including source code" - ) - cpack_add_install_type(DevInstall - DISPLAY_NAME "Developer install, headers and libraries" - ) - cpack_add_install_type(MinInstall - DISPLAY_NAME "Minimal install, runtime only" - ) endif() diff --git a/libs/sdbutils/CMakeLists.txt b/libs/sdbutils/CMakeLists.txt index 41da2217..97b1407c 100644 --- a/libs/sdbutils/CMakeLists.txt +++ b/libs/sdbutils/CMakeLists.txt @@ -278,11 +278,11 @@ endif() install(TARGETS ${target_outputs} sdbutils_compiler_flags EXPORT ${PROJECT_NAME}-targets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Libs + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libs + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libs FRAMEWORK DESTINATION "Library/Frameworks" - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT Libs ) # CMake search path wants either "share" (AKA GNUInstallDirs DATAROOTDIR) @@ -317,6 +317,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libsdbutils.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig + COMPONENT Libs ) # only available on CMake >= 3.0. Generates Targets.cmake @@ -347,12 +348,14 @@ if(BUILD_SHARED OR BUILD_STATIC) install(EXPORT ${PROJECT_NAME}-targets FILE ${PROJECT_NAME}Targets.cmake DESTINATION ${sdbutils_CMAKECONFIG_INSTALL_DIR} + COMPONENT Libs ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake DESTINATION ${sdbutils_CMAKECONFIG_INSTALL_DIR} + COMPONENT Libs ) endif() @@ -375,7 +378,7 @@ if(ENABLE_CPACK) set(CPACK_GENERATOR "DEB") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) set(CPACK_RPM_PACKAGE_AUTOREQ no) set(CPACK_RPM_PACKAGE_AUTOPROV yes) set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION @@ -408,34 +411,37 @@ if(ENABLE_CPACK) # set(CPACK_PACKAGE_INSTALL_DIRECTORY "sdbutils Install Directory") # set(CPACK_TEMPORARY_DIRECTORY "sdbutils Temporary CPack Directory") - include(CPack) + if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + include(CPack) + + cpack_add_component_group(Development + DISPLAY_NAME "SDB utilities library" + EXPANDED + ) + cpack_add_component(SourceCode + DISPLAY_NAME "SDB Utilities source code" + DISABLED + INSTALL_TYPES FullInstall + ) + cpack_add_component(SDK + DISPLAY_NAME "SDB utilities headers and libraries" + INSTALL_TYPES FullInstall DevInstall + GROUP Development + ) + cpack_add_component(Runtime + DISPLAY_NAME "Sdbutils runtime files" + REQUIRED + INSTALL_TYPES FullInstall DevInstall MinInstall + ) + cpack_add_install_type(FullInstall + DISPLAY_NAME "Full install, including source code" + ) + cpack_add_install_type(DevInstall + DISPLAY_NAME "Developer install, headers and libraries" + ) + cpack_add_install_type(MinInstall + DISPLAY_NAME "Minimal install, runtime only" + ) + endif() - cpack_add_component_group(Development - DISPLAY_NAME "SDB utilities library" - EXPANDED - ) - cpack_add_component(SourceCode - DISPLAY_NAME "SDB Utilities source code" - DISABLED - INSTALL_TYPES FullInstall - ) - cpack_add_component(SDK - DISPLAY_NAME "SDB utilities headers and libraries" - INSTALL_TYPES FullInstall DevInstall - GROUP Development - ) - cpack_add_component(Runtime - DISPLAY_NAME "Sdbutils runtime files" - REQUIRED - INSTALL_TYPES FullInstall DevInstall MinInstall - ) - cpack_add_install_type(FullInstall - DISPLAY_NAME "Full install, including source code" - ) - cpack_add_install_type(DevInstall - DISPLAY_NAME "Developer install, headers and libraries" - ) - cpack_add_install_type(MinInstall - DISPLAY_NAME "Minimal install, runtime only" - ) endif() diff --git a/src/apps/halcs_generic_udev/CMakeLists.txt b/src/apps/halcs_generic_udev/CMakeLists.txt index 9e9fba34..56a18666 100644 --- a/src/apps/halcs_generic_udev/CMakeLists.txt +++ b/src/apps/halcs_generic_udev/CMakeLists.txt @@ -2,16 +2,10 @@ # Binary setup ######################################################################## -# detect target architecture -include(TargetArch) # set installation variables compliant with distributions include(GNUInstallDirs) # Get systemd service directories' include(TestSystemd) -# extract version numbers from header file -include(TestHalcsVersion) - -target_architecture(ARCH) # halcs_generic_udev basename set (halcs_generic_udev_OUTPUT_BASENAME "halcs_generic_udev" @@ -81,7 +75,10 @@ if(BUILD_halcs_generic_udev) if(halcs_generic_udev_INSTALL_UDEV_RULES) # general scripts location set(halcs_generic_udev_INSTALL_DATADIR ${CMAKE_INSTALL_DATADIR}/${NOPREFIX_HALCS_DATADIR}) - install(DIRECTORY DESTINATION ${halcs_generic_udev_INSTALL_DATADIR}) + install(DIRECTORY + DESTINATION ${halcs_generic_udev_INSTALL_DATADIR} + COMPONENT Scripts + ) # general scripts install(FILES @@ -91,6 +88,7 @@ if(BUILD_halcs_generic_udev) ${CMAKE_CURRENT_SOURCE_DIR}/init-generic/share/halcs/scripts/run-fpga-program.sh ${CMAKE_CURRENT_SOURCE_DIR}/init-generic/share/halcs/scripts/stop-fpga-program.sh DESTINATION ${halcs_generic_udev_INSTALL_DATADIR} + COMPONENT Scripts PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) @@ -99,23 +97,42 @@ if(BUILD_halcs_generic_udev) # absolute paths of systemd unit files on install, which can be # prefixed by CMAKE_INSTALL_PREFIX. SYSTEMD variables are always fixed # to an absolute path. - install(CODE "set(SYSTEMD_SERVICES_INSTALL_DIR ${SYSTEMD_SERVICES_INSTALL_DIR})") - install(CODE "set(SYSTEMD_CONF_INSTALL_DIR ${SYSTEMD_CONF_INSTALL_DIR})") - install(CODE "set(HALCS_SYSCONFDIR ${HALCS_SYSCONFDIR})") - install(CODE "set(UDEV_SYSCONFDIR ${UDEV_SYSCONFDIR})") - install(CODE "set(NOPREFIX_HALCS_SYSCONFDIR ${NOPREFIX_HALCS_SYSCONFDIR})") - install(CODE "set(NOPREFIX_HALCS_DATADIR ${NOPREFIX_HALCS_DATADIR})") + install(CODE "set(SYSTEMD_SERVICES_INSTALL_DIR ${SYSTEMD_SERVICES_INSTALL_DIR})" + COMPONENT Scripts + ) + install(CODE "set(SYSTEMD_CONF_INSTALL_DIR ${SYSTEMD_CONF_INSTALL_DIR})" + COMPONENT Scripts + ) + install(CODE "set(HALCS_SYSCONFDIR ${HALCS_SYSCONFDIR})" + COMPONENT Scripts + ) + install(CODE "set(UDEV_SYSCONFDIR ${UDEV_SYSCONFDIR})" + COMPONENT Scripts + ) + install(CODE "set(NOPREFIX_HALCS_SYSCONFDIR ${NOPREFIX_HALCS_SYSCONFDIR})" + COMPONENT Scripts + ) + install(CODE "set(NOPREFIX_HALCS_DATADIR ${NOPREFIX_HALCS_DATADIR})" + COMPONENT Scripts + ) # udev rules install(CODE "set(input_file - \"${CMAKE_CURRENT_SOURCE_DIR}/init/systemd/etc/udev/rules.d/81-udev_fpga.rules.in\")") + \"${CMAKE_CURRENT_SOURCE_DIR}/init/systemd/etc/udev/rules.d/81-udev_fpga.rules.in\")" + COMPONENT Scripts + ) install(CODE "set(output_file - \"${CMAKE_CURRENT_BINARY_DIR}/init/systemd/81-udev_fpga.rules\")") - install(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/CMakeConfigureInstall.cmake") + \"${CMAKE_CURRENT_BINARY_DIR}/init/systemd/81-udev_fpga.rules\")" + COMPONENT Scripts + ) + install(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/CMakeConfigureInstall.cmake" + COMPONENT Scripts + ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/init/systemd/81-udev_fpga.rules DESTINATION ${UDEV_SYSCONFDIR} + COMPONENT Scripts PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE WORLD_READ ) @@ -124,87 +141,3 @@ endif() # set list to global, as linker options are passed through this set(apps_halcs_generic_udev ${apps_halcs_generic_udev} PARENT_SCOPE) - -# CPack rules -option(ENABLE_CPACK "Enables cpack rules" ON) - -if(ENABLE_CPACK) - if(${CMAKE_BUILD_TYPE} MATCHES "Debug") - set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) - set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) - set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) - endif() - - include(InstallRequiredSystemLibraries) - - # set architecture as detected by TargetArch module - set(arch_name ${ARCH}) - - list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) - set(CPACK_GENERATOR "DEB") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) - set(CPACK_RPM_PACKAGE_AUTOREQ no) - set(CPACK_RPM_PACKAGE_AUTOPROV yes) - set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION - /lib - /usr/etc - /etc/systemd - /lib/systemd - /etc/systemd/system - /lib/systemd/system - /etc/udev - /etc/udev/rules.d - ) - set(CPACK_PACKAGE_NAME "halcs_generic_udev") - set(halcs_DISTRO_VERSION "" CACHE STRING "halcs distribution version") - string(APPEND halcs_VERSION "${halcs_DISTRO_VERSION}") - set(CPACK_PACKAGE_FILE_NAME - "${CPACK_PACKAGE_NAME}_${halcs_VERSION}_${arch_name}" - ) - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "HALCS generic udev scripts") - set(CPACK_PACKAGE_VENDOR "LNLS") - set(CPACK_PACKAGE_CONTACT "Lucas Russo ") - #set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") - # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") - # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") - # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") - set(CPACK_PACKAGE_VERSION ${halcs_VERSION}) - set(CPACK_PACKAGE_VERSION_MAJOR ${halcs_VERSION_MAJOR}) - set(CPACK_PACKAGE_VERSION_MINOR ${halcs_VERSION_MINOR}) - set(CPACK_PACKAGE_VERSION_PATCH ${halcs_VERSION_PATCH}) - # set(CPACK_PACKAGE_INSTALL_DIRECTORY "HALCS generic udev Install Directory") - # set(CPACK_TEMPORARY_DIRECTORY "HALCS generic udev Temporary CPack Directory") - - include(CPack) - - cpack_add_component_group(Development - DISPLAY_NAME "HALCS generic udev scripts" - EXPANDED - ) - cpack_add_component(SourceCode - DISPLAY_NAME "HALCS generic udev source code" - DISABLED - INSTALL_TYPES FullInstall - ) - cpack_add_component(SDK - DISPLAY_NAME "HALCS generic udev headers and libraries" - INSTALL_TYPES FullInstall DevInstall - GROUP Development - ) - cpack_add_component(Runtime - DISPLAY_NAME "HALCS generic udev runtime files" - REQUIRED - INSTALL_TYPES FullInstall DevInstall MinInstall - ) - cpack_add_install_type(FullInstall - DISPLAY_NAME "Full install, including source code" - ) - cpack_add_install_type(DevInstall - DISPLAY_NAME "Developer install, headers and libraries" - ) - cpack_add_install_type(MinInstall - DISPLAY_NAME "Minimal install, runtime only" - ) -endif() diff --git a/src/apps/halcsd/CMakeLists.txt b/src/apps/halcsd/CMakeLists.txt index 75216b48..c58ab980 100644 --- a/src/apps/halcsd/CMakeLists.txt +++ b/src/apps/halcsd/CMakeLists.txt @@ -3,16 +3,10 @@ ######################################################################## include(FindThreads) -# detect target architecture -include(TargetArch) # set installation variables compliant with distributions include(GNUInstallDirs) # Get systemd service directories' include(TestSystemd) -# extract version numbers from header file -include(TestHalcsVersion) - -target_architecture(ARCH) # halcsd basename set (halcsd_OUTPUT_BASENAME "halcsd" @@ -357,7 +351,9 @@ foreach(bin_target ${apps_halcsd}) if(TARGET halcsd) # general scripts location set(halcsd_INSTALL_DATADIR ${CMAKE_INSTALL_DATADIR}/${NOPREFIX_HALCS_DATADIR}) - install(DIRECTORY DESTINATION ${halcsd_INSTALL_DATADIR}) + install(DIRECTORY + DESTINATION ${halcsd_INSTALL_DATADIR} + COMPONENT Scripts) # general scripts install(FILES @@ -365,6 +361,7 @@ foreach(bin_target ${apps_halcsd}) ${CMAKE_CURRENT_SOURCE_DIR}/init-generic/share/halcs/scripts/generate-board-halcs-idx.sh ${CMAKE_CURRENT_SOURCE_DIR}/init-generic/share/halcs/scripts/generate-dev-idx.sh DESTINATION ${halcsd_INSTALL_DATADIR} + COMPONENT Scripts PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) @@ -388,78 +385,132 @@ foreach(bin_target ${apps_halcsd}) # absolute paths of systemd unit files on install, which can be # prefixed by CMAKE_INSTALL_PREFIX. SYSTEMD variables are always fixed # to an absolute path. - install(CODE "set(SYSTEMD_SERVICES_INSTALL_DIR ${SYSTEMD_SERVICES_INSTALL_DIR})") - install(CODE "set(SYSTEMD_CONF_INSTALL_DIR ${SYSTEMD_CONF_INSTALL_DIR})") - install(CODE "set(UDEV_SYSCONFDIR ${UDEV_SYSCONFDIR})") - install(CODE "set(HALCS_SYSCONFDIR ${HALCS_SYSCONFDIR})") - install(CODE "set(NOPREFIX_HALCS_SYSCONFDIR ${NOPREFIX_HALCS_SYSCONFDIR})") - install(CODE "set(NOPREFIX_HALCS_DATADIR ${NOPREFIX_HALCS_DATADIR})") - install(CODE "set(HALCS_LOG_DIR ${HALCS_LOG_DIR})") + install(CODE "set(SYSTEMD_SERVICES_INSTALL_DIR ${SYSTEMD_SERVICES_INSTALL_DIR})" + COMPONENT Scripts + ) + install(CODE "set(SYSTEMD_CONF_INSTALL_DIR ${SYSTEMD_CONF_INSTALL_DIR})" + COMPONENT Scripts + ) + install(CODE "set(UDEV_SYSCONFDIR ${UDEV_SYSCONFDIR})" + COMPONENT Scripts + ) + install(CODE "set(HALCS_SYSCONFDIR ${HALCS_SYSCONFDIR})" + COMPONENT Scripts + ) + install(CODE "set(NOPREFIX_HALCS_SYSCONFDIR ${NOPREFIX_HALCS_SYSCONFDIR})" + COMPONENT Scripts + ) + install(CODE "set(NOPREFIX_HALCS_DATADIR ${NOPREFIX_HALCS_DATADIR})" + COMPONENT Scripts + ) + install(CODE "set(HALCS_LOG_DIR ${HALCS_LOG_DIR})" + COMPONENT Scripts + ) install(CODE "set(input_file - \"${CMAKE_CURRENT_SOURCE_DIR}/init/systemd/etc/systemd/system/halcs-be@.service.in\")") + \"${CMAKE_CURRENT_SOURCE_DIR}/init/systemd/etc/systemd/system/halcs-be@.service.in\")" + COMPONENT Scripts + ) install(CODE "set(output_file - \"${CMAKE_CURRENT_BINARY_DIR}/init/systemd/halcs-be@.service\")") - install(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/CMakeConfigureInstall.cmake") + \"${CMAKE_CURRENT_BINARY_DIR}/init/systemd/halcs-be@.service\")" + COMPONENT Scripts + ) + install(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/CMakeConfigureInstall.cmake" + COMPONENT Scripts + ) install(CODE "set(input_file - \"${CMAKE_CURRENT_SOURCE_DIR}/init/systemd/etc/systemd/system/halcs-fe@.service.in\")") + \"${CMAKE_CURRENT_SOURCE_DIR}/init/systemd/etc/systemd/system/halcs-fe@.service.in\")" + COMPONENT Scripts + ) install(CODE "set(output_file - \"${CMAKE_CURRENT_BINARY_DIR}/init/systemd/halcs-fe@.service\")") - install(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/CMakeConfigureInstall.cmake") + \"${CMAKE_CURRENT_BINARY_DIR}/init/systemd/halcs-fe@.service\")" + COMPONENT Scripts + ) + install(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/CMakeConfigureInstall.cmake" + COMPONENT Scripts + ) install(CODE "set(input_file - \"${CMAKE_CURRENT_SOURCE_DIR}/init/systemd/etc/systemd/system/halcs@.target.in\")") + \"${CMAKE_CURRENT_SOURCE_DIR}/init/systemd/etc/systemd/system/halcs@.target.in\")" + COMPONENT Scripts + ) install(CODE "set(output_file - \"${CMAKE_CURRENT_BINARY_DIR}/init/systemd/halcs@.target\")") - install(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/CMakeConfigureInstall.cmake") + \"${CMAKE_CURRENT_BINARY_DIR}/init/systemd/halcs@.target\")" + COMPONENT Scripts + ) + install(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/CMakeConfigureInstall.cmake" + COMPONENT Scripts + ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/init/systemd/halcs-be@.service ${CMAKE_CURRENT_BINARY_DIR}/init/systemd/halcs-fe@.service ${CMAKE_CURRENT_BINARY_DIR}/init/systemd/halcs@.target DESTINATION ${SYSTEMD_SERVICES_INSTALL_DIR} + COMPONENT Scripts PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) # sysconfig files install(CODE "set(input_file - \"${CMAKE_CURRENT_SOURCE_DIR}/init/systemd/etc/sysconfig/halcs-board.in\")") + \"${CMAKE_CURRENT_SOURCE_DIR}/init/systemd/etc/sysconfig/halcs-board.in\")" + COMPONENT Scripts + ) install(CODE "set(output_file - \"${CMAKE_CURRENT_BINARY_DIR}/init/systemd/halcs-board\")") - install(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/CMakeConfigureInstall.cmake") + \"${CMAKE_CURRENT_BINARY_DIR}/init/systemd/halcs-board\")" + COMPONENT Scripts + ) + install(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/CMakeConfigureInstall.cmake" + COMPONENT Scripts + ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/init/systemd/halcs-board DESTINATION ${SYSTEMD_CONF_INSTALL_DIR} + COMPONENT Scripts PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) # halcs.cfg file install(CODE "set(input_file - \"${CMAKE_CURRENT_SOURCE_DIR}/init/systemd/etc/halcs/halcs.cfg.in\")") + \"${CMAKE_CURRENT_SOURCE_DIR}/init/systemd/etc/halcs/halcs.cfg.in\")" + COMPONENT Scripts + ) install(CODE "set(output_file - \"${CMAKE_CURRENT_BINARY_DIR}/init/systemd/halcs.cfg\")") - install(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/CMakeConfigureInstall.cmake") + \"${CMAKE_CURRENT_BINARY_DIR}/init/systemd/halcs.cfg\")" + COMPONENT Scripts + ) + install(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/CMakeConfigureInstall.cmake" + COMPONENT Scripts + ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/init/systemd/halcs.cfg DESTINATION ${HALCS_SYSCONFDIR} + COMPONENT Scripts PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ ) # udev rules install(CODE "set(input_file - \"${CMAKE_CURRENT_SOURCE_DIR}/init/systemd/etc/udev/rules.d/80-udev_fpga.rules.in\")") + \"${CMAKE_CURRENT_SOURCE_DIR}/init/systemd/etc/udev/rules.d/80-udev_fpga.rules.in\")" + COMPONENT Scripts + ) install(CODE "set(output_file - \"${CMAKE_CURRENT_BINARY_DIR}/init/systemd/80-udev_fpga.rules\")") - install(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/CMakeConfigureInstall.cmake") + \"${CMAKE_CURRENT_BINARY_DIR}/init/systemd/80-udev_fpga.rules\")" + COMPONENT Scripts + ) + install(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/CMakeConfigureInstall.cmake" + COMPONENT Scripts + ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/init/systemd/80-udev_fpga.rules DESTINATION ${UDEV_SYSCONFDIR} + COMPONENT Scripts PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE WORLD_READ ) @@ -472,102 +523,3 @@ endforeach() # set list to global, as linker options are passed through this set(apps_halcsd ${apps_halcsd} PARENT_SCOPE) - -# CPack rules -option(ENABLE_CPACK "Enables cpack rules" ON) - -if(ENABLE_CPACK) - if(${CMAKE_BUILD_TYPE} MATCHES "Debug") - set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) - set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) - set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) - endif() - - include(InstallRequiredSystemLibraries) - - # set architecture as detected by TargetArch module - set(arch_name ${ARCH}) - - list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) - set(CPACK_GENERATOR "DEB") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) - # we also depend on malamute >= 1.0, but this has not been packaged into the official - # repositories yet - set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsodium-dev (>= 1.0.8), libzmq3-dev (>= 4.2.5), libczmq-dev (>= 4.0.2), dkms") - set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_BINARY_DIR}/${DEBIAN_POSTINST_FILE_NAME}") - - set(CPACK_RPM_PACKAGE_AUTOREQ no) - set(CPACK_RPM_PACKAGE_AUTOPROV yes) - # we also depend on malamute >= 1.0, but this has not been packaged into the official - # repositories yet - set(CPACK_RPM_PACKAGE_REQUIRE "libsodium-devel >= 1.0.8, zeromq-devel >= 4.2.5, czmq-devel >= 4.0.2, dkms") - set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION - /lib - /usr/etc - /etc/systemd - /lib/systemd - /etc/systemd/system - /lib/systemd/system - /etc/udev - /etc/udev/rules.d - ) - set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/${REDHAT_POSTINST_FILE_NAME}") - - # Install all components but pciedriver: already packaged - get_cmake_property(CPACK_COMPONENTS_ALL COMPONENTS) - list(REMOVE_ITEM CPACK_COMPONENTS_ALL "pciedriver") - message(STATUS "CPACK_COMPONENTS_ALL: ${CPACK_COMPONENTS_ALL}") - - set(CPACK_PACKAGE_NAME "halcsd") - set(halcs_DISTRO_VERSION "" CACHE STRING "halcs distribution version") - string(APPEND halcs_VERSION "${halcs_DISTRO_VERSION}") - set(CPACK_PACKAGE_FILE_NAME - "${CPACK_PACKAGE_NAME}-${halcs_BOARD_OPT}_${halcs_VERSION}_${arch_name}" - ) - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "halcsd daemon") - set(CPACK_PACKAGE_VENDOR "LNLS") - set(CPACK_PACKAGE_CONTACT "Lucas Russo ") - #set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") - # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") - # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") - # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") - set(CPACK_PACKAGE_VERSION ${halcs_VERSION}) - set(CPACK_PACKAGE_VERSION_MAJOR ${halcs_VERSION_MAJOR}) - set(CPACK_PACKAGE_VERSION_MINOR ${halcs_VERSION_MINOR}) - set(CPACK_PACKAGE_VERSION_PATCH ${halcs_VERSION_PATCH}) - # set(CPACK_PACKAGE_INSTALL_DIRECTORY "halcsd Install Directory") - # set(CPACK_TEMPORARY_DIRECTORY "halcsd Temporary CPack Directory") - - include(CPack) - - cpack_add_component_group(Development - DISPLAY_NAME "halcsd library" - EXPANDED - ) - cpack_add_component(SourceCode - DISPLAY_NAME "halcsd source code" - DISABLED - INSTALL_TYPES FullInstall - ) - cpack_add_component(SDK - DISPLAY_NAME "halcsd headers and libraries" - INSTALL_TYPES FullInstall DevInstall - GROUP Development - ) - cpack_add_component(Runtime - DISPLAY_NAME "halcsd runtime files" - REQUIRED - INSTALL_TYPES FullInstall DevInstall MinInstall - ) - cpack_add_install_type(FullInstall - DISPLAY_NAME "Full install, including source code" - ) - cpack_add_install_type(DevInstall - DISPLAY_NAME "Developer install, headers and libraries" - ) - cpack_add_install_type(MinInstall - DISPLAY_NAME "Minimal install, runtime only" - ) -endif() diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt index 9e19505c..2fefcbde 100644 --- a/src/client/CMakeLists.txt +++ b/src/client/CMakeLists.txt @@ -684,11 +684,11 @@ endif() install(TARGETS ${target_outputs} halcsclient_compiler_flags EXPORT ${PROJECT_NAME}-targets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Libs + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libs + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT Libs FRAMEWORK DESTINATION "Library/Frameworks" - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT Libs ) # install headers that are inside another directory @@ -696,6 +696,7 @@ install(DIRECTORY ${halcsclient_public_dirs} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + COMPONENT Libs FILES_MATCHING PATTERN ${halcsclient_public_files_in_dirs} ) @@ -732,6 +733,7 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libhalcsclient.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig + COMPONENT Libs ) # only available on CMake >= 3.0. Generates Targets.cmake @@ -762,12 +764,14 @@ if(BUILD_SHARED OR BUILD_STATIC) install(EXPORT ${PROJECT_NAME}-targets FILE ${PROJECT_NAME}Targets.cmake DESTINATION ${halcsclient_CMAKECONFIG_INSTALL_DIR} + COMPONENT Libs ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake DESTINATION ${halcsclient_CMAKECONFIG_INSTALL_DIR} + COMPONENT Libs ) endif() @@ -790,7 +794,7 @@ if(ENABLE_CPACK) set(CPACK_GENERATOR "DEB") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) set(CPACK_RPM_PACKAGE_AUTOREQ no) set(CPACK_RPM_PACKAGE_AUTOPROV yes) set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION @@ -823,34 +827,37 @@ if(ENABLE_CPACK) # set(CPACK_PACKAGE_INSTALL_DIRECTORY "halcsclient Install Directory") # set(CPACK_TEMPORARY_DIRECTORY "halcsclient Temporary CPack Directory") - include(CPack) + if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + include(CPack) + + cpack_add_component_group(Development + DISPLAY_NAME "HALCS client library" + EXPANDED + ) + cpack_add_component(SourceCode + DISPLAY_NAME "HALCS client source code" + DISABLED + INSTALL_TYPES FullInstall + ) + cpack_add_component(SDK + DISPLAY_NAME "HALCS client headers and libraries" + INSTALL_TYPES FullInstall DevInstall + GROUP Development + ) + cpack_add_component(Runtime + DISPLAY_NAME "HALCS client runtime files" + REQUIRED + INSTALL_TYPES FullInstall DevInstall MinInstall + ) + cpack_add_install_type(FullInstall + DISPLAY_NAME "Full install, including source code" + ) + cpack_add_install_type(DevInstall + DISPLAY_NAME "Developer install, headers and libraries" + ) + cpack_add_install_type(MinInstall + DISPLAY_NAME "Minimal install, runtime only" + ) + endif() - cpack_add_component_group(Development - DISPLAY_NAME "HALCS client library" - EXPANDED - ) - cpack_add_component(SourceCode - DISPLAY_NAME "HALCS client source code" - DISABLED - INSTALL_TYPES FullInstall - ) - cpack_add_component(SDK - DISPLAY_NAME "HALCS client headers and libraries" - INSTALL_TYPES FullInstall DevInstall - GROUP Development - ) - cpack_add_component(Runtime - DISPLAY_NAME "HALCS client runtime files" - REQUIRED - INSTALL_TYPES FullInstall DevInstall MinInstall - ) - cpack_add_install_type(FullInstall - DISPLAY_NAME "Full install, including source code" - ) - cpack_add_install_type(DevInstall - DISPLAY_NAME "Developer install, headers and libraries" - ) - cpack_add_install_type(MinInstall - DISPLAY_NAME "Minimal install, runtime only" - ) endif() From 5ac6834775bcc04bacd1a43a130119b91b3ca3a4 Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Thu, 1 Apr 2021 12:34:07 -0300 Subject: [PATCH 06/23] foreign/libbsmp: update submodule reference --- foreign/libbsmp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/foreign/libbsmp b/foreign/libbsmp index 0dce82f1..6ae378c8 160000 --- a/foreign/libbsmp +++ b/foreign/libbsmp @@ -1 +1 @@ -Subproject commit 0dce82f13558d39f731149ab164df11d69d42e80 +Subproject commit 6ae378c88f61d18d588eecdeccd10185a5232e51 From a3687e7fd6744d0ac9b30497f9460eb76380696f Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Thu, 1 Apr 2021 12:34:19 -0300 Subject: [PATCH 07/23] foreign/pcie-driver: update submodule reference --- foreign/pcie-driver | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/foreign/pcie-driver b/foreign/pcie-driver index 35fc3bb2..40abecc8 160000 --- a/foreign/pcie-driver +++ b/foreign/pcie-driver @@ -1 +1 @@ -Subproject commit 35fc3bb235d506df6463387086885876a6f3df78 +Subproject commit 40abecc8c1fd48e4f429438d8aaaa977b7d8a057 From 8070379680f312bf29f994e9806c094794517950 Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Thu, 1 Apr 2021 14:07:39 -0300 Subject: [PATCH 08/23] cmake/Modules: fix installing pcie/bsmp libs with SOVERSION numbers This is needed so, dhshlibs can find the correct library version. --- cmake/Modules/AddExternalProjectBsmp.cmake | 3 ++- cmake/Modules/AddExternalProjectPciedriver.cmake | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/cmake/Modules/AddExternalProjectBsmp.cmake b/cmake/Modules/AddExternalProjectBsmp.cmake index ec4135f3..f5977e96 100644 --- a/cmake/Modules/AddExternalProjectBsmp.cmake +++ b/cmake/Modules/AddExternalProjectBsmp.cmake @@ -63,7 +63,7 @@ add_library(bsmp SHARED IMPORTED) set_target_properties(bsmp PROPERTIES IMPORTED_LOCATION - ${bsmp_LIBRARY_DIRECTORIES}/libbsmp.so + ${bsmp_LIBRARY_DIRECTORIES}/libbsmp.so.1 INTERFACE_INCLUDE_DIRECTORIES "${bsmp_INCLUDE_DIRECTORIES}" PUBLIC_HEADER @@ -91,6 +91,7 @@ install(DIRECTORY # as we can't intall IMPORTED libraries as TARGETS, just use plain # install(FILES) install(FILES + ${bsmp_LIBRARY_DIRECTORIES}/libbsmp.so.1 ${bsmp_LIBRARY_DIRECTORIES}/libbsmp.so ${bsmp_LIBRARY_DIRECTORIES}/libbsmp.a DESTINATION diff --git a/cmake/Modules/AddExternalProjectPciedriver.cmake b/cmake/Modules/AddExternalProjectPciedriver.cmake index 01db8ce7..6e6c97c8 100644 --- a/cmake/Modules/AddExternalProjectPciedriver.cmake +++ b/cmake/Modules/AddExternalProjectPciedriver.cmake @@ -80,7 +80,7 @@ add_library(pciedriver SHARED IMPORTED) set_target_properties(pciedriver PROPERTIES IMPORTED_LOCATION - ${pciedriver_LIBRARY_DIRECTORIES}/libpcidriver.so + ${pciedriver_LIBRARY_DIRECTORIES}/libpcidriver.so.1 INTERFACE_INCLUDE_DIRECTORIES "${pciedriver_INCLUDE_DIRECTORIES}" PUBLIC_HEADER @@ -110,6 +110,7 @@ install(DIRECTORY # as we can't intall IMPORTED libraries as TARGETS, just use plain # install(FILES) install(FILES + ${pciedriver_LIBRARY_DIRECTORIES}/libpcidriver.so.1 ${pciedriver_LIBRARY_DIRECTORIES}/libpcidriver.so ${pciedriver_LIBRARY_DIRECTORIES}/libpcidriver.a DESTINATION From b952793e36d19bd97d997340b4b6b214d1bf2fea Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Thu, 1 Apr 2021 14:09:27 -0300 Subject: [PATCH 09/23] CMakeLists.txt: enable SHLIBDEPS to main package --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dea5b8a0..6d0c7de8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -298,7 +298,7 @@ if(ENABLE_CPACK) set(CPACK_DEB_COMPONENT_INSTALL ON) set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) # we also depend on malamute >= 1.0, but this has not been packaged into the official # repositories yet set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsodium-dev (>= 1.0.8), libzmq3-dev (>= 4.2.5), libczmq-dev (>= 4.0.2)") From 5948c68df3bc2a70888923bf13812d62ac71ecb1 Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Thu, 1 Apr 2021 14:10:07 -0300 Subject: [PATCH 10/23] various: fix postinst/postrm script generation We need to put them in separate folders as different packages need the same script names. So, PCIEDRIVER and HALCS packages need the same script names with different directories. --- CMakeLists.txt | 4 ++-- cmake/Modules/AddExternalProjectPciedriver.cmake | 14 +++++++------- src/apps/halcsd/CMakeLists.txt | 5 +++-- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d0c7de8..4996447b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -302,7 +302,7 @@ if(ENABLE_CPACK) # we also depend on malamute >= 1.0, but this has not been packaged into the official # repositories yet set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsodium-dev (>= 1.0.8), libzmq3-dev (>= 4.2.5), libczmq-dev (>= 4.0.2)") - set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_BINARY_DIR}/${DEBIAN_POSTINST_FILE_NAME}") + set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_BINARY_DIR}/debian/${DEBIAN_POSTINST_FILE_NAME}") set(CPACK_RPM_COMPONENT_INSTALL ON) set(CPACK_RPM_PACKAGE_AUTOREQ no) @@ -320,7 +320,7 @@ if(ENABLE_CPACK) /etc/udev /etc/udev/rules.d ) - set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/${REDHAT_POSTINST_FILE_NAME}") + set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/redhat/${REDHAT_POSTINST_FILE_NAME}") set(CPACK_PACKAGE_NAME "halcsd") set(halcs_DISTRO_VERSION "" CACHE STRING "halcs distribution version") diff --git a/cmake/Modules/AddExternalProjectPciedriver.cmake b/cmake/Modules/AddExternalProjectPciedriver.cmake index 6e6c97c8..fe7d7b63 100644 --- a/cmake/Modules/AddExternalProjectPciedriver.cmake +++ b/cmake/Modules/AddExternalProjectPciedriver.cmake @@ -145,7 +145,7 @@ if(BUILD_PCIE_DRIVER) configure_file ( "${pciedriver_driver_KO_DIRECTORY}/${DKMS_FILE_NAME}.in" - "${CMAKE_CURRENT_BINARY_DIR}/${DKMS_FILE_NAME}" + "${BINARY_DIR}/${DKMS_FILE_NAME}" @ONLY ) @@ -155,13 +155,13 @@ if(BUILD_PCIE_DRIVER) configure_file ( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/${DKMS_POSTINST}.in" - "${CMAKE_CURRENT_BINARY_DIR}/${DKMS_POSTINST}" + "${BINARY_DIR}/${DKMS_POSTINST}" @ONLY ) configure_file ( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules/${DKMS_PRERM}.in" - "${CMAKE_CURRENT_BINARY_DIR}/${DKMS_PRERM}" + "${BINARY_DIR}/${DKMS_PRERM}" @ONLY ) @@ -215,7 +215,7 @@ if(BUILD_PCIE_DRIVER) OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE COMPONENT Pciedriver ) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${DKMS_FILE_NAME} + install(FILES ${BINARY_DIR}/${DKMS_FILE_NAME} DESTINATION ${pciedriver_DKMS_INSTALL_DIR} COMPONENT Pciedriver ) @@ -250,7 +250,7 @@ if(ENABLE_CPACK) set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) set(CPACK_DEBIAN_PCIEDRIVER_PACKAGE_DEPENDS "dkms") set(CPACK_DEBIAN_PCIEDRIVER_PACKAGE_CONTROL_EXTRA - "${CMAKE_CURRENT_BINARY_DIR}/postinst;${CMAKE_CURRENT_BINARY_DIR}/prerm" + "${BINARY_DIR}/postinst;${BINARY_DIR}/prerm" ) set(CPACK_DEBIAN_PCIEDRIVER_PACKAGE_NAME "pcieDriver") set(CPACK_DEBIAN_PCIEDRIVER_FILE_NAME @@ -271,8 +271,8 @@ if(ENABLE_CPACK) /etc/udev /etc/udev/rules.d ) - set(CPACK_RPM_PCIEDRIVER_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/postinst") - set(CPACK_RPM_PCIEDRIVER_PRE_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/prerm") + set(CPACK_RPM_PCIEDRIVER_POST_INSTALL_SCRIPT_FILE "${BINARY_DIR}/postinst") + set(CPACK_RPM_PCIEDRIVER_PRE_UNINSTALL_SCRIPT_FILE "${BINARY_DIR}/prerm") set(CPACK_RPM_PCIEDRIVER_PACKAGE_NAME "pcieDriver") set(CPACK_RPM_PCIEDRIVER_FILE_NAME "${CPACK_RPM_PCIEDRIVER_PACKAGE_NAME}_${pciedriver_VERSION}_${arch_name}.rpm" diff --git a/src/apps/halcsd/CMakeLists.txt b/src/apps/halcsd/CMakeLists.txt index c58ab980..7a200796 100644 --- a/src/apps/halcsd/CMakeLists.txt +++ b/src/apps/halcsd/CMakeLists.txt @@ -121,6 +121,7 @@ set(NOPREFIX_HALCS_DATADIR "halcs") # set postinst filenames set(DEBIAN_POSTINST_FILE_NAME "postinst.debian") set(REDHAT_POSTINST_FILE_NAME "postinst.redhat") +set(POSTINST_FILE_NAME "postinst") set(HALCS_LOG_DIR "/var/log/halcs") @@ -370,13 +371,13 @@ foreach(bin_target ${apps_halcsd}) configure_file ( "${CMAKE_CURRENT_SOURCE_DIR}/${DEBIAN_POSTINST_FILE_NAME}.in" - "${CMAKE_CURRENT_BINARY_DIR}/${DEBIAN_POSTINST_FILE_NAME}" + "${CMAKE_CURRENT_BINARY_DIR}/debian/${POSTINST_FILE_NAME}" @ONLY ) configure_file ( "${CMAKE_CURRENT_SOURCE_DIR}/${REDHAT_POSTINST_FILE_NAME}.in" - "${CMAKE_CURRENT_BINARY_DIR}/${REDHAT_POSTINST_FILE_NAME}" + "${CMAKE_CURRENT_BINARY_DIR}/redhat/${POSTINST_FILE_NAME}" @ONLY ) From d73d7ea8338be6359a3ed439e63b94b6d0294947 Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Thu, 1 Apr 2021 14:21:03 -0300 Subject: [PATCH 11/23] CMakeLists.txt: add RPM debuginfo package generation --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4996447b..93b037a7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -321,6 +321,7 @@ if(ENABLE_CPACK) /etc/udev/rules.d ) set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/redhat/${REDHAT_POSTINST_FILE_NAME}") + set(CPACK_RPM_DEBUGINFO_PACKAGE ON) set(CPACK_PACKAGE_NAME "halcsd") set(halcs_DISTRO_VERSION "" CACHE STRING "halcs distribution version") From bfedc78cbb2794f2884ae63717e69c4104be0892 Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Thu, 1 Apr 2021 14:39:03 -0300 Subject: [PATCH 12/23] CMakeLists.txt: add shorter path for debuginfo package --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 93b037a7..162035ea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -321,6 +321,7 @@ if(ENABLE_CPACK) /etc/udev/rules.d ) set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/redhat/${REDHAT_POSTINST_FILE_NAME}") + set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/usr/src/debug/halcsd-${halcs_VERSION}") set(CPACK_RPM_DEBUGINFO_PACKAGE ON) set(CPACK_PACKAGE_NAME "halcsd") From 5d47a65baa196849c18d97da00aeb007a1dbc194 Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Thu, 1 Apr 2021 14:46:45 -0300 Subject: [PATCH 13/23] CMakeLists: fix halcs postinst directory location --- CMakeLists.txt | 4 ++-- src/apps/halcsd/CMakeLists.txt | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 162035ea..ad69bdde 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -302,7 +302,7 @@ if(ENABLE_CPACK) # we also depend on malamute >= 1.0, but this has not been packaged into the official # repositories yet set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsodium-dev (>= 1.0.8), libzmq3-dev (>= 4.2.5), libczmq-dev (>= 4.0.2)") - set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_BINARY_DIR}/debian/${DEBIAN_POSTINST_FILE_NAME}") + set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${halcs_POSTINST_FILE_DIR}/debian/${DEBIAN_POSTINST_FILE_NAME}") set(CPACK_RPM_COMPONENT_INSTALL ON) set(CPACK_RPM_PACKAGE_AUTOREQ no) @@ -320,7 +320,7 @@ if(ENABLE_CPACK) /etc/udev /etc/udev/rules.d ) - set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_BINARY_DIR}/redhat/${REDHAT_POSTINST_FILE_NAME}") + set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${halcs_POSTINST_FILE_DIR}/redhat/${REDHAT_POSTINST_FILE_NAME}") set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/usr/src/debug/halcsd-${halcs_VERSION}") set(CPACK_RPM_DEBUGINFO_PACKAGE ON) diff --git a/src/apps/halcsd/CMakeLists.txt b/src/apps/halcsd/CMakeLists.txt index 7a200796..ed7cec5a 100644 --- a/src/apps/halcsd/CMakeLists.txt +++ b/src/apps/halcsd/CMakeLists.txt @@ -368,6 +368,7 @@ foreach(bin_target ${apps_halcsd}) ) set(halcsd_FULL_LOG_DIR ${HALCS_LOG_DIR}) + set(halcs_POSTINST_FILE_DIR "${CMAKE_CURRENT_BINARY_DIR}") configure_file ( "${CMAKE_CURRENT_SOURCE_DIR}/${DEBIAN_POSTINST_FILE_NAME}.in" From 92abb59e4394762d863e75cb24ff832c31e5361a Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Thu, 1 Apr 2021 14:56:10 -0300 Subject: [PATCH 14/23] CMakeLists.txt: add possibility to override CPACK_GENERATOR by user --- CMakeLists.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ad69bdde..1035084f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -276,6 +276,11 @@ set(cpack_components_all_OPT "Binaries;Libs;Scripts;Tools" ) set(CPACK_COMPONENTS_ALL "${cpack_components_all_OPT}") +# Any CPACK generator +set(cpack_generator_OPT "DEB" + CACHE STRING "CPack CPACK_GENERATOR variable" +) + # CPack rules option(ENABLE_CPACK "Enables cpack rules" ON) @@ -293,7 +298,7 @@ if(ENABLE_CPACK) list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) - set(CPACK_GENERATOR "DEB") + set(CPACK_GENERATOR "${cpack_generator_OPT}") set(CPACK_DEB_COMPONENT_INSTALL ON) set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") From 6dc4e4381ebf6547b7f3bf981ee1ba435b4b26a2 Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Thu, 1 Apr 2021 15:31:14 -0300 Subject: [PATCH 15/23] CMakeLists.txt: fix halcs postinst generated location --- CMakeLists.txt | 7 +++++-- src/apps/halcsd/CMakeLists.txt | 6 ++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1035084f..382cbd2b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -227,6 +227,9 @@ add_subdirectory(libs/bpmclient) # Sources/Headers definitions ######################################################################## +# HALCS postinst file directory +set(halcs_POSTINST_FILE_DIR "${CMAKE_CURRENT_BINARY_DIR}/halcs") + set(common_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include ) @@ -307,7 +310,7 @@ if(ENABLE_CPACK) # we also depend on malamute >= 1.0, but this has not been packaged into the official # repositories yet set(CPACK_DEBIAN_PACKAGE_DEPENDS "libsodium-dev (>= 1.0.8), libzmq3-dev (>= 4.2.5), libczmq-dev (>= 4.0.2)") - set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${halcs_POSTINST_FILE_DIR}/debian/${DEBIAN_POSTINST_FILE_NAME}") + set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${halcs_POSTINST_FILE_DIR}/debian/postinst") set(CPACK_RPM_COMPONENT_INSTALL ON) set(CPACK_RPM_PACKAGE_AUTOREQ no) @@ -325,7 +328,7 @@ if(ENABLE_CPACK) /etc/udev /etc/udev/rules.d ) - set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${halcs_POSTINST_FILE_DIR}/redhat/${REDHAT_POSTINST_FILE_NAME}") + set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${halcs_POSTINST_FILE_DIR}/redhat/postinst") set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/usr/src/debug/halcsd-${halcs_VERSION}") set(CPACK_RPM_DEBUGINFO_PACKAGE ON) diff --git a/src/apps/halcsd/CMakeLists.txt b/src/apps/halcsd/CMakeLists.txt index ed7cec5a..531e52fe 100644 --- a/src/apps/halcsd/CMakeLists.txt +++ b/src/apps/halcsd/CMakeLists.txt @@ -121,7 +121,6 @@ set(NOPREFIX_HALCS_DATADIR "halcs") # set postinst filenames set(DEBIAN_POSTINST_FILE_NAME "postinst.debian") set(REDHAT_POSTINST_FILE_NAME "postinst.redhat") -set(POSTINST_FILE_NAME "postinst") set(HALCS_LOG_DIR "/var/log/halcs") @@ -368,17 +367,16 @@ foreach(bin_target ${apps_halcsd}) ) set(halcsd_FULL_LOG_DIR ${HALCS_LOG_DIR}) - set(halcs_POSTINST_FILE_DIR "${CMAKE_CURRENT_BINARY_DIR}") configure_file ( "${CMAKE_CURRENT_SOURCE_DIR}/${DEBIAN_POSTINST_FILE_NAME}.in" - "${CMAKE_CURRENT_BINARY_DIR}/debian/${POSTINST_FILE_NAME}" + "${halcs_POSTINST_FILE_DIR}/debian/postinst" @ONLY ) configure_file ( "${CMAKE_CURRENT_SOURCE_DIR}/${REDHAT_POSTINST_FILE_NAME}.in" - "${CMAKE_CURRENT_BINARY_DIR}/redhat/${POSTINST_FILE_NAME}" + "${halcs_POSTINST_FILE_DIR}/redhat/postinst" @ONLY ) From 3881aa72690ec5f278025f0c0eee4316fe10ec57 Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Thu, 1 Apr 2021 15:46:10 -0300 Subject: [PATCH 16/23] foreign/pcie-driver: update submodule reference --- foreign/pcie-driver | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/foreign/pcie-driver b/foreign/pcie-driver index 40abecc8..00121b9c 160000 --- a/foreign/pcie-driver +++ b/foreign/pcie-driver @@ -1 +1 @@ -Subproject commit 40abecc8c1fd48e4f429438d8aaaa977b7d8a057 +Subproject commit 00121b9cbec3693821eaa6e51d1e771bcdc716af From 90efe3d16c6dc903ab04dbde80d1759a345f51a9 Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Thu, 1 Apr 2021 15:47:18 -0300 Subject: [PATCH 17/23] apps: add permissions to all users 666 for PCIe devices --- .../init/systemd/etc/udev/rules.d/81-udev_fpga.rules.in | 2 +- .../halcsd/init/systemd/etc/udev/rules.d/80-udev_fpga.rules.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/apps/halcs_generic_udev/init/systemd/etc/udev/rules.d/81-udev_fpga.rules.in b/src/apps/halcs_generic_udev/init/systemd/etc/udev/rules.d/81-udev_fpga.rules.in index a66aa3c8..5c755a51 100644 --- a/src/apps/halcs_generic_udev/init/systemd/etc/udev/rules.d/81-udev_fpga.rules.in +++ b/src/apps/halcs_generic_udev/init/systemd/etc/udev/rules.d/81-udev_fpga.rules.in @@ -1,6 +1,6 @@ # Permissions for the fpga devices -KERNEL=="fpga*", ACTION=="add", OWNER="root", GROUP="users", MODE="660", PROGRAM="@halcs_generic_udev_HALCS_INSTALL_FULL_DATADIR@/get-fpga-gateware-properties.sh -i %k", SYMLINK+="fpga/%c{2}", RUN+="@halcs_generic_udev_HALCS_INSTALL_FULL_DATADIR@/run-fpga-program.sh %c{1+}" +KERNEL=="fpga*", ACTION=="add", OWNER="root", GROUP="users", MODE="666", PROGRAM="@halcs_generic_udev_HALCS_INSTALL_FULL_DATADIR@/get-fpga-gateware-properties.sh -i %k", SYMLINK+="fpga/%c{2}", RUN+="@halcs_generic_udev_HALCS_INSTALL_FULL_DATADIR@/run-fpga-program.sh %c{1+}" # We can't run get-fpga-gateware-properties.sh on "remove" action, as this happens # after the fpga* structure is removed, so we won't be able to access the device at diff --git a/src/apps/halcsd/init/systemd/etc/udev/rules.d/80-udev_fpga.rules.in b/src/apps/halcsd/init/systemd/etc/udev/rules.d/80-udev_fpga.rules.in index 8fcdbcd8..21406599 100644 --- a/src/apps/halcsd/init/systemd/etc/udev/rules.d/80-udev_fpga.rules.in +++ b/src/apps/halcsd/init/systemd/etc/udev/rules.d/80-udev_fpga.rules.in @@ -1,5 +1,5 @@ # Permissions for the fpga devices -KERNEL=="fpga*", ACTION=="add", OWNER="root", GROUP="users", MODE="660", PROGRAM="@halcsd_HALCS_INSTALL_FULL_DATADIR@/generate-dev-idx.sh %k", SYMLINK+="fpga/%c{1}", RUN+="/usr/bin/systemctl --no-block start halcs-ioc@%c{2}.target halcs-ioc@%c{3}.target" +KERNEL=="fpga*", ACTION=="add", OWNER="root", GROUP="users", MODE="666", PROGRAM="@halcsd_HALCS_INSTALL_FULL_DATADIR@/generate-dev-idx.sh %k", SYMLINK+="fpga/%c{1}", RUN+="/usr/bin/systemctl --no-block start halcs-ioc@%c{2}.target halcs-ioc@%c{3}.target" KERNEL=="fpga*", ACTION=="remove", PROGRAM="@halcsd_HALCS_INSTALL_FULL_DATADIR@/generate-dev-idx.sh %k", RUN+="/usr/bin/systemctl --no-block stop halcs@%c{2}.target halcs@%c{3}.target" From e03ba789bc80d6800d32f8a67797abdd64b2540c Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Thu, 1 Apr 2021 15:56:37 -0300 Subject: [PATCH 18/23] src/apps: add systemd reload in postinst script --- src/apps/halcsd/postinst.debian.in | 4 ++-- src/apps/halcsd/postinst.redhat.in | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/apps/halcsd/postinst.debian.in b/src/apps/halcsd/postinst.debian.in index 1b56554e..210aee56 100755 --- a/src/apps/halcsd/postinst.debian.in +++ b/src/apps/halcsd/postinst.debian.in @@ -1,7 +1,5 @@ #!/bin/sh -set -e - echo "Creating user/group halcs" adduser --system --quiet --group --no-create-home halcs || : echo "Adding user halcs to group users" @@ -10,5 +8,7 @@ echo "Creating /var/log/halcs directory" mkdir -p @halcsd_FULL_LOG_DIR@ echo "Changing permissions" chown -R halcs:halcs @halcsd_FULL_LOG_DIR@ +echo "Reloading systemd" +systemctl daemon-reload || : exit 0 diff --git a/src/apps/halcsd/postinst.redhat.in b/src/apps/halcsd/postinst.redhat.in index 081beba4..cef72717 100755 --- a/src/apps/halcsd/postinst.redhat.in +++ b/src/apps/halcsd/postinst.redhat.in @@ -1,7 +1,5 @@ #!/bin/sh -set -e - echo "Creating user/group halcs" useradd --system --no-create-home halcs || : echo "Adding user halcs to group users" @@ -10,5 +8,7 @@ echo "Creating /var/log/halcs directory" mkdir -p @halcsd_FULL_LOG_DIR@ echo "Changing permissions" chown -R halcs:halcs @halcsd_FULL_LOG_DIR@ +echo "Reloading systemd" +systemctl daemon-reload || : exit 0 From 2be10da855895d1e672ca6617e0bda94294d15a2 Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Mon, 5 Apr 2021 14:12:17 -0300 Subject: [PATCH 19/23] packpack: use "make package" to build packages instead of cpack directly --- packpack | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packpack b/packpack index 815c9cd3..da0ad2c4 100755 --- a/packpack +++ b/packpack @@ -185,7 +185,7 @@ chmod a+x ${BUILDDIR}/userwrapper.sh echo "if [ \"\$?\" -ne 0 ]; then"; echo " exit 1"; echo "fi"; - echo "cpack -V -G \"\${CPACK_GENERATORS}\""; + echo "make VERBOSE=1 package"; ) > ${BUILDDIR}/usercmd.sh chmod a+x ${BUILDDIR}/usercmd.sh From 7d917842df7482d54f5ba4dd12515716e83d271a Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Mon, 5 Apr 2021 14:13:11 -0300 Subject: [PATCH 20/23] {.travis.yml, ci_build.sh}: build pciedriver package separately --- .travis.yml | 8 ++++---- ci_build.sh | 23 +++++++++++++++++++++-- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 370c6db9..e77d2278 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,25 +25,25 @@ jobs: - compiler: gcc env: OS=ubuntu DIST=bionic BUILD_TYPE=cpack CPACK_BOARDS="afcv3" CPACK_GENERATORS="DEB" CPACK_DISTRO_VERSION="+ubu1804" DEPLOY="yes" - compiler: gcc - env: OS=ubuntu DIST=bionic BUILD_TYPE=cpack CPACK_BOARDS="afcv3_1" CPACK_GENERATORS="DEB" CPACK_DISTRO_VERSION="+ubu1804" DEPLOY="yes" + env: OS=ubuntu DIST=bionic BUILD_TYPE=cpack CPACK_BOARDS="afcv3_1" BUILD_PCIEDRIVER_PACKAGE=yes CPACK_GENERATORS="DEB" CPACK_DISTRO_VERSION="+ubu1804" DEPLOY="yes" - compiler: gcc env: OS=centos DIST=7 BUILD_TYPE=cpack CPACK_BOARDS="ml605" CPACK_GENERATORS="RPM" CPACK_DISTRO_VERSION="+el7" DEPLOY="yes" - compiler: gcc env: OS=centos DIST=7 BUILD_TYPE=cpack CPACK_BOARDS="afcv3" CPACK_GENERATORS="RPM" CPACK_DISTRO_VERSION="+el7" DEPLOY="yes" - compiler: gcc - env: OS=centos DIST=7 BUILD_TYPE=cpack CPACK_BOARDS="afcv3_1" CPACK_GENERATORS="RPM" CPACK_DISTRO_VERSION="+el7" DEPLOY="yes" + env: OS=centos DIST=7 BUILD_TYPE=cpack CPACK_BOARDS="afcv3_1" BUILD_PCIEDRIVER_PACKAGE=yes CPACK_GENERATORS="RPM" CPACK_DISTRO_VERSION="+el7" DEPLOY="yes" - compiler: gcc env: OS=debian DIST=stretch BUILD_TYPE=cpack CPACK_BOARDS="ml605" CPACK_GENERATORS="DEB" CPACK_DISTRO_VERSION="+deb9" DEPLOY="yes" - compiler: gcc env: OS=debian DIST=stretch BUILD_TYPE=cpack CPACK_BOARDS="afcv3" CPACK_GENERATORS="DEB" CPACK_DISTRO_VERSION="+deb9" DEPLOY="yes" - compiler: gcc - env: OS=debian DIST=stretch BUILD_TYPE=cpack CPACK_BOARDS="afcv3_1" CPACK_GENERATORS="DEB" CPACK_DISTRO_VERSION="+deb9" DEPLOY="yes" + env: OS=debian DIST=stretch BUILD_TYPE=cpack CPACK_BOARDS="afcv3_1" BUILD_PCIEDRIVER_PACKAGE=yes CPACK_GENERATORS="DEB" CPACK_DISTRO_VERSION="+deb9" DEPLOY="yes" - compiler: gcc env: OS=debian DIST=buster BUILD_TYPE=cpack CPACK_BOARDS="ml605" CPACK_GENERATORS="DEB" CPACK_DISTRO_VERSION="+deb10" DEPLOY="yes" - compiler: gcc env: OS=debian DIST=buster BUILD_TYPE=cpack CPACK_BOARDS="afcv3" CPACK_GENERATORS="DEB" CPACK_DISTRO_VERSION="+deb10" DEPLOY="yes" - compiler: gcc - env: OS=debian DIST=buster BUILD_TYPE=cpack CPACK_BOARDS="afcv3_1" CPACK_GENERATORS="DEB" CPACK_DISTRO_VERSION="+deb10" DEPLOY="yes" + env: OS=debian DIST=buster BUILD_TYPE=cpack CPACK_BOARDS="afcv3_1" BUILD_PCIEDRIVER_PACKAGE=yes CPACK_GENERATORS="DEB" CPACK_DISTRO_VERSION="+deb10" DEPLOY="yes" - compiler: gcc env: BUILD_TYPE=cmake BOARD=afcv3_1 DEPLOY_PAGES="yes" diff --git a/ci_build.sh b/ci_build.sh index db1c3aa4..262ee78d 100755 --- a/ci_build.sh +++ b/ci_build.sh @@ -370,15 +370,34 @@ cmake) cpack) # all of these options are relative to the docker container filesystem LOCAL_LD_LIBRARY_PATH=/source/${BUILD_PREFIX_BASENAME}/lib:/source/${BUILD_PREFIX_BASENAME}/lib64 + + # Build regular package PACKPACK_OPTS=() - PACKPACK_OPTS+=("${CPACK_GENERATORS}") + PACKPACK_OPTS+=("-Dcpack_generator_OPT=${CPACK_GENERATORS}") + PACKPACK_OPTS+=("-Dcpack_components_grouping_OPT=ALL_COMPONENTS_IN_ONE") + PACKPACK_OPTS+=("-Dcpack_components_all_OPT=\"Binaries;Libs;Scripts;Tools\"") PACKPACK_OPTS+=("-Dhalcs_DISTRO_VERSION=${CPACK_DISTRO_VERSION}") PACKPACK_OPTS+=("-DCMAKE_PREFIX_PATH=/source/${BUILD_PREFIX_BASENAME}") - PACKPACK_OPTS+=("-DBUILD_PCIE_DRIVER=ON") + PACKPACK_OPTS+=("-DBUILD_PCIE_DRIVER=OFF") PACKPACK_OPTS+=("-Dhalcs_BOARD_OPT=${CPACK_BOARDS}") # only expand and add ":" to LD_LIBRARY_PATH if non-empty LD_LIBRARY_PATH=${LOCAL_LD_LIBRARY_PATH}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} \ SOURCEDIR=$(pwd) BUILDDIR=$(pwd)/build ./packpack "${PACKPACK_OPTS[@]}" + + if [ "$BUILD_PCIEDRIVER_PACKAGE" = yes ]; then + # Build driver package + PACKPACK_PCIEDRIVER_OPTS=() + PACKPACK_PCIEDRIVER_OPTS+=("-Dcpack_generator_OPT=${CPACK_GENERATORS}") + PACKPACK_PCIEDRIVER_OPTS+=("-Dcpack_components_grouping_OPT=ONE_PER_GROUP") + PACKPACK_PCIEDRIVER_OPTS+=("-Dcpack_components_all_OPT=\"Pciedriver\"") + PACKPACK_PCIEDRIVER_OPTS+=("-Dhalcs_DISTRO_VERSION=${CPACK_DISTRO_VERSION}") + PACKPACK_PCIEDRIVER_OPTS+=("-DCMAKE_PREFIX_PATH=/source/${BUILD_PREFIX_BASENAME}") + PACKPACK_PCIEDRIVER_OPTS+=("-DBUILD_PCIE_DRIVER=ON") + # only expand and add ":" to LD_LIBRARY_PATH if non-empty + LD_LIBRARY_PATH=${LOCAL_LD_LIBRARY_PATH}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} \ + SOURCEDIR=$(pwd) BUILDDIR=$(pwd)/build ./packpack "${PACKPACK_PCIEDRIVER_OPTS[@]}" + fi + cd "${BASE_PWD}" ;; From 50a59aa79f0cc54816763108e548d58b81b31be4 Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Mon, 5 Apr 2021 15:39:37 -0300 Subject: [PATCH 21/23] packpack: fix CPACK_GENERATOR unused variable Now, this is passed as a regular cmake option --- packpack | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packpack b/packpack index da0ad2c4..45ffc1ad 100755 --- a/packpack +++ b/packpack @@ -15,9 +15,6 @@ DOCKER_REPO=${DOCKER_REPO:-packpack/packpack} # Extra parameters for docker run. PACKPACK_EXTRA_DOCKER_RUN_PARAMS="${PACKPACK_EXTRA_DOCKER_RUN_PARAMS:-}" -# CPACK generators -CPACK_GENERATORS="${CPACK_GENERATORS:-DEB}" - # Set CI variable to CI provider name CI="" if [ "${APPVEYOR:-}" = "True" -o "${APPVEYOR:-}" = "true" ]; then @@ -143,8 +140,6 @@ chmod a+x ${BUILDDIR}/userwrapper.sh ( echo "#!/bin/sh"; echo "set -x"; - echo "CPACK_GENERATORS=\"\$1\""; - echo "shift 1"; echo "CMAKE_OPTS=\"\$@\""; echo "cd /build"; echo "if [ -f \"/etc/debian_version\" ]; then"; From 6cf835af26929c108b1d53dffc88cee1bf6d9cc9 Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Mon, 5 Apr 2021 15:51:05 -0300 Subject: [PATCH 22/23] CMakeLists.txt: fix default CPACK_GENERATOR to RPM Our default platform is CentOS 7, so let's use this as a default. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 382cbd2b..b8c95d27 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -280,7 +280,7 @@ set(cpack_components_all_OPT "Binaries;Libs;Scripts;Tools" set(CPACK_COMPONENTS_ALL "${cpack_components_all_OPT}") # Any CPACK generator -set(cpack_generator_OPT "DEB" +set(cpack_generator_OPT "RPM" CACHE STRING "CPack CPACK_GENERATOR variable" ) From 9dbaab69a63526bf3c3a0b7ad0eea6330938a529 Mon Sep 17 00:00:00 2001 From: Lucas Russo Date: Mon, 5 Apr 2021 16:30:39 -0300 Subject: [PATCH 23/23] various: fix setting CPACK variables only when building respective package --- .../AddExternalProjectPciedriver.cmake | 96 +++++++++-------- examples/CMakeLists.txt | 99 +++++++++-------- libs/acqclient/CMakeLists.txt | 101 +++++++++--------- libs/bpmclient/CMakeLists.txt | 101 +++++++++--------- libs/convc/CMakeLists.txt | 101 +++++++++--------- libs/disptable/CMakeLists.txt | 101 +++++++++--------- libs/errhand/CMakeLists.txt | 101 +++++++++--------- libs/hutils/CMakeLists.txt | 99 +++++++++-------- libs/llio/CMakeLists.txt | 101 +++++++++--------- libs/sdbfs/CMakeLists.txt | 99 +++++++++-------- libs/sdbutils/CMakeLists.txt | 101 +++++++++--------- src/client/CMakeLists.txt | 101 +++++++++--------- 12 files changed, 633 insertions(+), 568 deletions(-) diff --git a/cmake/Modules/AddExternalProjectPciedriver.cmake b/cmake/Modules/AddExternalProjectPciedriver.cmake index fe7d7b63..8da24339 100644 --- a/cmake/Modules/AddExternalProjectPciedriver.cmake +++ b/cmake/Modules/AddExternalProjectPciedriver.cmake @@ -226,28 +226,16 @@ endif() option(ENABLE_CPACK "Enables cpack rules" ON) if(ENABLE_CPACK) - if(${CMAKE_BUILD_TYPE} MATCHES "Debug") - set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) - set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) - set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) - endif() - - include(InstallRequiredSystemLibraries) - # set architecture as detected by TargetArch module set(arch_name ${ARCH}) - list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) - set(pciedriver_DISTRO_VERSION "" CACHE STRING "pciedriver distribution version") string(APPEND pciedriver_VERSION "${pciedriver_DISTRO_VERSION}") - set(CPACK_GENERATOR "DEB") - set(CPACK_DEB_COMPONENT_INSTALL ON) - set(CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS ON) - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) + + # Generate debuginfo package + set(CPACK_DEBIAN_PCIEDRIVER_DEBUGINFO_PACKAGE ON) set(CPACK_DEBIAN_PCIEDRIVER_PACKAGE_DEPENDS "dkms") set(CPACK_DEBIAN_PCIEDRIVER_PACKAGE_CONTROL_EXTRA "${BINARY_DIR}/postinst;${BINARY_DIR}/prerm" @@ -257,48 +245,70 @@ if(ENABLE_CPACK) "${CPACK_DEBIAN_PCIEDRIVER_PACKAGE_NAME}_${pciedriver_VERSION}_${arch_name}.deb" ) - set(CPACK_RPM_COMPONENT_INSTALL ON) - set(CPACK_RPM_PACKAGE_AUTOREQ no) - set(CPACK_RPM_PACKAGE_AUTOPROV yes) set(CPACK_RPM_PCIEDRIVER_PACKAGE_REQUIRE "dkms") - set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION - /lib - /usr/etc - /etc/systemd - /lib/systemd - /etc/systemd/system - /lib/systemd/system - /etc/udev - /etc/udev/rules.d - ) set(CPACK_RPM_PCIEDRIVER_POST_INSTALL_SCRIPT_FILE "${BINARY_DIR}/postinst") set(CPACK_RPM_PCIEDRIVER_PRE_UNINSTALL_SCRIPT_FILE "${BINARY_DIR}/prerm") set(CPACK_RPM_PCIEDRIVER_PACKAGE_NAME "pcieDriver") set(CPACK_RPM_PCIEDRIVER_FILE_NAME "${CPACK_RPM_PCIEDRIVER_PACKAGE_NAME}_${pciedriver_VERSION}_${arch_name}.rpm" ) + # Generate debuginfo package + set(CPACK_RPM_PCIEDRIVER_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_PCIEDRIVER_BUILD_SOURCE_DIRS_PREFIX "/usr/src/debug/${CPACK_RPM_PCIEDRIVER_PACKAGE_NAME}-${pciedriver_VERSION}") set(CPACK_COMPONENT_PCIEDRIVER_DESCRIPTION "pcieDriver library/driver") - set(CPACK_PACKAGE_VENDOR "LNLS") - set(CPACK_PACKAGE_CONTACT "Lucas Russo ") + # This is always true as this is included in the main + # CMakeLists.txt. Kept here for reference, as main CMakeLists.txt + # already includes CPack # if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) - # include(CPack) + # if(${CMAKE_BUILD_TYPE} MATCHES "Debug") + # set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) + # set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) + # set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) + # endif() # - # cpack_add_component_group(PciedriverAll - # DISPLAY_NAME "pcieDriver drivers, headers and libraries" - # ) + # include(InstallRequiredSystemLibraries) # - # cpack_add_component(Pciedriver - # DISPLAY_NAME "pcieDriver drivers, headers and libraries" - # GROUP PciedriverAll - # INSTALL_TYPES FullDriver - # ) + # set(CPACK_GENERATOR "DEB") # - # cpack_add_install_type(FullDriver - # DISPLAY_NAME "Full drivers, headers and libraries" - # ) + # set(CPACK_DEB_COMPONENT_INSTALL ON) + # set(CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS ON) + # set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") + # set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) + # set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + # set(CPACK_RPM_COMPONENT_INSTALL ON) + # set(CPACK_RPM_PACKAGE_AUTOREQ no) + # set(CPACK_RPM_PACKAGE_AUTOPROV yes) + # set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION + # /lib + # /usr/etc + # /etc/systemd + # /lib/systemd + # /etc/systemd/system + # /lib/systemd/system + # /etc/udev + # /etc/udev/rules.d + # ) + # set(CPACK_PACKAGE_VENDOR "LNLS") + # set(CPACK_PACKAGE_CONTACT "Lucas Russo ") # + # include(CPack) + # + # cpack_add_component_group(PciedriverAll + # DISPLAY_NAME "pcieDriver drivers, headers and libraries" + # ) + # + # cpack_add_component(Pciedriver + # DISPLAY_NAME "pcieDriver drivers, headers and libraries" + # GROUP PciedriverAll + # INSTALL_TYPES FullDriver + # ) + # + # cpack_add_install_type(FullDriver + # DISPLAY_NAME "Full drivers, headers and libraries" + # ) + # # endif() endif() diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 140423dd..be32b3a7 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -494,55 +494,60 @@ endforeach() option(ENABLE_CPACK "Enables cpack rules" ON) if(ENABLE_CPACK) - if(${CMAKE_BUILD_TYPE} MATCHES "Debug") - set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) - set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) - set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) - endif() + if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + if(${CMAKE_BUILD_TYPE} MATCHES "Debug") + set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) + set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) + set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) + endif() - include(InstallRequiredSystemLibraries) - - # set architecture as detected by TargetArch module - set(arch_name ${ARCH}) - - list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) - set(CPACK_GENERATOR "DEB") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) - set(CPACK_RPM_PACKAGE_AUTOREQ no) - set(CPACK_RPM_PACKAGE_AUTOPROV yes) - set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION - /lib - /usr/etc - /etc/systemd - /lib/systemd - /etc/systemd/system - /lib/systemd/system - /etc/udev - /etc/udev/rules.d - ) - set(CPACK_PACKAGE_NAME "halcs_examples") - set(halcs_examples_DISTRO_VERSION "" CACHE STRING "halcs_examples distribution version") - string(APPEND halcs_examples_VERSION "${halcs_examples_DISTRO_VERSION}") - set(CPACK_PACKAGE_FILE_NAME - "${CPACK_PACKAGE_NAME}_${halcs_examples_VERSION}_${arch_name}" - ) - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "SDB filesystem library") - set(CPACK_PACKAGE_VENDOR "LNLS") - set(CPACK_PACKAGE_CONTACT "Lucas Russo ") - set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") - # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") - # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") - # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") - set(CPACK_PACKAGE_VERSION ${halcs_examples_VERSION}) - set(CPACK_PACKAGE_VERSION_MAJOR ${halcs_examples_VERSION_MAJOR}) - set(CPACK_PACKAGE_VERSION_MINOR ${halcs_examples_VERSION_MINOR}) - set(CPACK_PACKAGE_VERSION_PATCH ${halcs_examples_VERSION_PATCH}) - # set(CPACK_PACKAGE_INSTALL_DIRECTORY "HALCS examples Install Directory") - # set(CPACK_TEMPORARY_DIRECTORY "HALCS examples Temporary CPack Directory") + include(InstallRequiredSystemLibraries) + + # set architecture as detected by TargetArch module + set(arch_name ${ARCH}) + + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) + set(CPACK_GENERATOR "DEB") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + # Generate debuginfo package + set(CPACK_DEBIAN_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_PACKAGE_AUTOREQ no) + set(CPACK_RPM_PACKAGE_AUTOPROV yes) + set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION + /lib + /usr/etc + /etc/systemd + /lib/systemd + /etc/systemd/system + /lib/systemd/system + /etc/udev + /etc/udev/rules.d + ) + set(CPACK_PACKAGE_NAME "halcs_examples") + set(halcs_examples_DISTRO_VERSION "" CACHE STRING "halcs_examples distribution version") + string(APPEND halcs_examples_VERSION "${halcs_examples_DISTRO_VERSION}") + set(CPACK_PACKAGE_FILE_NAME + "${CPACK_PACKAGE_NAME}_${halcs_examples_VERSION}_${arch_name}" + ) + set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "SDB filesystem library") + set(CPACK_PACKAGE_VENDOR "LNLS") + set(CPACK_PACKAGE_CONTACT "Lucas Russo ") + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") + # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") + # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") + # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") + set(CPACK_PACKAGE_VERSION ${halcs_examples_VERSION}) + set(CPACK_PACKAGE_VERSION_MAJOR ${halcs_examples_VERSION_MAJOR}) + set(CPACK_PACKAGE_VERSION_MINOR ${halcs_examples_VERSION_MINOR}) + set(CPACK_PACKAGE_VERSION_PATCH ${halcs_examples_VERSION_PATCH}) + # set(CPACK_PACKAGE_INSTALL_DIRECTORY "HALCS examples Install Directory") + # set(CPACK_TEMPORARY_DIRECTORY "HALCS examples Temporary CPack Directory") + # Generate debuginfo package + set(CPACK_RPM_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/usr/src/debug/${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") - if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) include(CPack) cpack_add_component_group(Development diff --git a/libs/acqclient/CMakeLists.txt b/libs/acqclient/CMakeLists.txt index 8f2bd289..36e14203 100644 --- a/libs/acqclient/CMakeLists.txt +++ b/libs/acqclient/CMakeLists.txt @@ -492,55 +492,60 @@ endif() option(ENABLE_CPACK "Enables cpack rules" ON) if(ENABLE_CPACK) - if(${CMAKE_BUILD_TYPE} MATCHES "Debug") - set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) - set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) - set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) - endif() - - include(InstallRequiredSystemLibraries) - - # set architecture as detected by TargetArch module - set(arch_name ${ARCH}) - - list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) - set(CPACK_GENERATOR "DEB") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) - set(CPACK_RPM_PACKAGE_AUTOREQ no) - set(CPACK_RPM_PACKAGE_AUTOPROV yes) - set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION - /lib - /usr/etc - /etc/systemd - /lib/systemd - /etc/systemd/system - /lib/systemd/system - /etc/udev - /etc/udev/rules.d - ) - set(CPACK_PACKAGE_NAME "acqclient") - set(acqclient_DISTRO_VERSION "" CACHE STRING "acqclient distribution version") - string(APPEND acqclient_VERSION "${acqclient_DISTRO_VERSION}") - set(CPACK_PACKAGE_FILE_NAME - "${CPACK_PACKAGE_NAME}_${acqclient_VERSION}_${arch_name}" - ) - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "HALCS acquisition library") - set(CPACK_PACKAGE_VENDOR "LNLS") - set(CPACK_PACKAGE_CONTACT "Lucas Russo ") - set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") - # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") - # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") - # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") - set(CPACK_PACKAGE_VERSION ${acqclient_VERSION}) - set(CPACK_PACKAGE_VERSION_MAJOR ${acqclient_VERSION_MAJOR}) - set(CPACK_PACKAGE_VERSION_MINOR ${acqclient_VERSION_MINOR}) - set(CPACK_PACKAGE_VERSION_PATCH ${acqclient_VERSION_PATCH}) - # set(CPACK_PACKAGE_INSTALL_DIRECTORY "acqclient Install Directory") - # set(CPACK_TEMPORARY_DIRECTORY "acqclient Temporary CPack Directory") - if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + if(${CMAKE_BUILD_TYPE} MATCHES "Debug") + set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) + set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) + set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) + endif() + + include(InstallRequiredSystemLibraries) + + # set architecture as detected by TargetArch module + set(arch_name ${ARCH}) + + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) + set(CPACK_GENERATOR "DEB") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + # Generate debuginfo package + set(CPACK_DEBIAN_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_PACKAGE_AUTOREQ no) + set(CPACK_RPM_PACKAGE_AUTOPROV yes) + set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION + /lib + /usr/etc + /etc/systemd + /lib/systemd + /etc/systemd/system + /lib/systemd/system + /etc/udev + /etc/udev/rules.d + ) + set(CPACK_PACKAGE_NAME "acqclient") + set(acqclient_DISTRO_VERSION "" CACHE STRING "acqclient distribution version") + string(APPEND acqclient_VERSION "${acqclient_DISTRO_VERSION}") + set(CPACK_PACKAGE_FILE_NAME + "${CPACK_PACKAGE_NAME}_${acqclient_VERSION}_${arch_name}" + ) + set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "HALCS acquisition library") + set(CPACK_PACKAGE_VENDOR "LNLS") + set(CPACK_PACKAGE_CONTACT "Lucas Russo ") + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") + # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") + # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") + # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") + set(CPACK_PACKAGE_VERSION ${acqclient_VERSION}) + set(CPACK_PACKAGE_VERSION_MAJOR ${acqclient_VERSION_MAJOR}) + set(CPACK_PACKAGE_VERSION_MINOR ${acqclient_VERSION_MINOR}) + set(CPACK_PACKAGE_VERSION_PATCH ${acqclient_VERSION_PATCH}) + # set(CPACK_PACKAGE_INSTALL_DIRECTORY "acqclient Install Directory") + # set(CPACK_TEMPORARY_DIRECTORY "acqclient Temporary CPack Directory") + # Generate debuginfo package + set(CPACK_RPM_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/usr/src/debug/${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") + include(CPack) cpack_add_component_group(Development diff --git a/libs/bpmclient/CMakeLists.txt b/libs/bpmclient/CMakeLists.txt index 59a6c3f1..6bd1b2f6 100644 --- a/libs/bpmclient/CMakeLists.txt +++ b/libs/bpmclient/CMakeLists.txt @@ -515,55 +515,60 @@ endif() option(ENABLE_CPACK "Enables cpack rules" ON) if(ENABLE_CPACK) - if(${CMAKE_BUILD_TYPE} MATCHES "Debug") - set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) - set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) - set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) - endif() - - include(InstallRequiredSystemLibraries) - - # set architecture as detected by TargetArch module - set(arch_name ${ARCH}) - - list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) - set(CPACK_GENERATOR "DEB") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) - set(CPACK_RPM_PACKAGE_AUTOREQ no) - set(CPACK_RPM_PACKAGE_AUTOPROV yes) - set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION - /lib - /usr/etc - /etc/systemd - /lib/systemd - /etc/systemd/system - /lib/systemd/system - /etc/udev - /etc/udev/rules.d - ) - set(CPACK_PACKAGE_NAME "bpmclient") - set(bpmclient_DISTRO_VERSION "" CACHE STRING "bpmclient distribution version") - string(APPEND bpmclient_VERSION "${bpmclient_DISTRO_VERSION}") - set(CPACK_PACKAGE_FILE_NAME - "${CPACK_PACKAGE_NAME}_${bpmclient_VERSION}_${arch_name}" - ) - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "HALCS BPM library") - set(CPACK_PACKAGE_VENDOR "LNLS") - set(CPACK_PACKAGE_CONTACT "Lucas Russo ") - set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") - # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") - # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") - # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") - set(CPACK_PACKAGE_VERSION ${bpmclient_VERSION}) - set(CPACK_PACKAGE_VERSION_MAJOR ${bpmclient_VERSION_MAJOR}) - set(CPACK_PACKAGE_VERSION_MINOR ${bpmclient_VERSION_MINOR}) - set(CPACK_PACKAGE_VERSION_PATCH ${bpmclient_VERSION_PATCH}) - # set(CPACK_PACKAGE_INSTALL_DIRECTORY "bpmclient Install Directory") - # set(CPACK_TEMPORARY_DIRECTORY "bpmclient Temporary CPack Directory") - if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + if(${CMAKE_BUILD_TYPE} MATCHES "Debug") + set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) + set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) + set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) + endif() + + include(InstallRequiredSystemLibraries) + + # set architecture as detected by TargetArch module + set(arch_name ${ARCH}) + + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) + set(CPACK_GENERATOR "DEB") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + # Generate debuginfo package + set(CPACK_DEBIAN_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_PACKAGE_AUTOREQ no) + set(CPACK_RPM_PACKAGE_AUTOPROV yes) + set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION + /lib + /usr/etc + /etc/systemd + /lib/systemd + /etc/systemd/system + /lib/systemd/system + /etc/udev + /etc/udev/rules.d + ) + set(CPACK_PACKAGE_NAME "bpmclient") + set(bpmclient_DISTRO_VERSION "" CACHE STRING "bpmclient distribution version") + string(APPEND bpmclient_VERSION "${bpmclient_DISTRO_VERSION}") + set(CPACK_PACKAGE_FILE_NAME + "${CPACK_PACKAGE_NAME}_${bpmclient_VERSION}_${arch_name}" + ) + set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "HALCS BPM library") + set(CPACK_PACKAGE_VENDOR "LNLS") + set(CPACK_PACKAGE_CONTACT "Lucas Russo ") + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") + # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") + # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") + # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") + set(CPACK_PACKAGE_VERSION ${bpmclient_VERSION}) + set(CPACK_PACKAGE_VERSION_MAJOR ${bpmclient_VERSION_MAJOR}) + set(CPACK_PACKAGE_VERSION_MINOR ${bpmclient_VERSION_MINOR}) + set(CPACK_PACKAGE_VERSION_PATCH ${bpmclient_VERSION_PATCH}) + # set(CPACK_PACKAGE_INSTALL_DIRECTORY "bpmclient Install Directory") + # set(CPACK_TEMPORARY_DIRECTORY "bpmclient Temporary CPack Directory") + # Generate debuginfo package + set(CPACK_RPM_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/usr/src/debug/${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") + include(CPack) cpack_add_component_group(Development diff --git a/libs/convc/CMakeLists.txt b/libs/convc/CMakeLists.txt index b3140110..351b628c 100644 --- a/libs/convc/CMakeLists.txt +++ b/libs/convc/CMakeLists.txt @@ -386,55 +386,60 @@ endif() option(ENABLE_CPACK "Enables cpack rules" ON) if(ENABLE_CPACK) - if(${CMAKE_BUILD_TYPE} MATCHES "Debug") - set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) - set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) - set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) - endif() - - include(InstallRequiredSystemLibraries) - - # set architecture as detected by TargetArch module - set(arch_name ${ARCH}) - - list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) - set(CPACK_GENERATOR "DEB") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) - set(CPACK_RPM_PACKAGE_AUTOREQ no) - set(CPACK_RPM_PACKAGE_AUTOPROV yes) - set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION - /lib - /usr/etc - /etc/systemd - /lib/systemd - /etc/systemd/system - /lib/systemd/system - /etc/udev - /etc/udev/rules.d - ) - set(CPACK_PACKAGE_NAME "convc") - set(convc_DISTRO_VERSION "" CACHE STRING "convc distribution version") - string(APPEND convc_VERSION "${convc_DISTRO_VERSION}") - set(CPACK_PACKAGE_FILE_NAME - "${CPACK_PACKAGE_NAME}_${convc_VERSION}_${arch_name}" - ) - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "HALCS Conversion library") - set(CPACK_PACKAGE_VENDOR "LNLS") - set(CPACK_PACKAGE_CONTACT "Lucas Russo ") - set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") - # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") - # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") - # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") - set(CPACK_PACKAGE_VERSION ${convc_VERSION}) - set(CPACK_PACKAGE_VERSION_MAJOR ${convc_VERSION_MAJOR}) - set(CPACK_PACKAGE_VERSION_MINOR ${convc_VERSION_MINOR}) - set(CPACK_PACKAGE_VERSION_PATCH ${convc_VERSION_PATCH}) - # set(CPACK_PACKAGE_INSTALL_DIRECTORY "convc Install Directory") - # set(CPACK_TEMPORARY_DIRECTORY "convc Temporary CPack Directory") - if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + if(${CMAKE_BUILD_TYPE} MATCHES "Debug") + set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) + set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) + set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) + endif() + + include(InstallRequiredSystemLibraries) + + # set architecture as detected by TargetArch module + set(arch_name ${ARCH}) + + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) + set(CPACK_GENERATOR "DEB") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + # Generate debuginfo package + set(CPACK_DEBIAN_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_PACKAGE_AUTOREQ no) + set(CPACK_RPM_PACKAGE_AUTOPROV yes) + set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION + /lib + /usr/etc + /etc/systemd + /lib/systemd + /etc/systemd/system + /lib/systemd/system + /etc/udev + /etc/udev/rules.d + ) + set(CPACK_PACKAGE_NAME "convc") + set(convc_DISTRO_VERSION "" CACHE STRING "convc distribution version") + string(APPEND convc_VERSION "${convc_DISTRO_VERSION}") + set(CPACK_PACKAGE_FILE_NAME + "${CPACK_PACKAGE_NAME}_${convc_VERSION}_${arch_name}" + ) + set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "HALCS Conversion library") + set(CPACK_PACKAGE_VENDOR "LNLS") + set(CPACK_PACKAGE_CONTACT "Lucas Russo ") + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") + # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") + # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") + # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") + set(CPACK_PACKAGE_VERSION ${convc_VERSION}) + set(CPACK_PACKAGE_VERSION_MAJOR ${convc_VERSION_MAJOR}) + set(CPACK_PACKAGE_VERSION_MINOR ${convc_VERSION_MINOR}) + set(CPACK_PACKAGE_VERSION_PATCH ${convc_VERSION_PATCH}) + # set(CPACK_PACKAGE_INSTALL_DIRECTORY "convc Install Directory") + # set(CPACK_TEMPORARY_DIRECTORY "convc Temporary CPack Directory") + # Generate debuginfo package + set(CPACK_RPM_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/usr/src/debug/${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") + include(CPack) cpack_add_component_group(Development diff --git a/libs/disptable/CMakeLists.txt b/libs/disptable/CMakeLists.txt index 5106796d..1dc91118 100644 --- a/libs/disptable/CMakeLists.txt +++ b/libs/disptable/CMakeLists.txt @@ -409,55 +409,60 @@ endif() option(ENABLE_CPACK "Enables cpack rules" ON) if(ENABLE_CPACK) - if(${CMAKE_BUILD_TYPE} MATCHES "Debug") - set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) - set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) - set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) - endif() - - include(InstallRequiredSystemLibraries) - - # set architecture as detected by TargetArch module - set(arch_name ${ARCH}) - - list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) - set(CPACK_GENERATOR "DEB") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) - set(CPACK_RPM_PACKAGE_AUTOREQ no) - set(CPACK_RPM_PACKAGE_AUTOPROV yes) - set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION - /lib - /usr/etc - /etc/systemd - /lib/systemd - /etc/systemd/system - /lib/systemd/system - /etc/udev - /etc/udev/rules.d - ) - set(CPACK_PACKAGE_NAME "disptable") - set(disptable_DISTRO_VERSION "" CACHE STRING "disptable distribution version") - string(APPEND disptable_VERSION "${disptable_DISTRO_VERSION}") - set(CPACK_PACKAGE_FILE_NAME - "${CPACK_PACKAGE_NAME}_${disptable_VERSION}_${arch_name}" - ) - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Dispatch Table library") - set(CPACK_PACKAGE_VENDOR "LNLS") - set(CPACK_PACKAGE_CONTACT "Lucas Russo ") - set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") - # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") - # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") - # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") - set(CPACK_PACKAGE_VERSION ${disptable_VERSION}) - set(CPACK_PACKAGE_VERSION_MAJOR ${disptable_VERSION_MAJOR}) - set(CPACK_PACKAGE_VERSION_MINOR ${disptable_VERSION_MINOR}) - set(CPACK_PACKAGE_VERSION_PATCH ${disptable_VERSION_PATCH}) - # set(CPACK_PACKAGE_INSTALL_DIRECTORY "disptable Install Directory") - # set(CPACK_TEMPORARY_DIRECTORY "disptable Temporary CPack Directory") - if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + if(${CMAKE_BUILD_TYPE} MATCHES "Debug") + set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) + set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) + set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) + endif() + + include(InstallRequiredSystemLibraries) + + # set architecture as detected by TargetArch module + set(arch_name ${ARCH}) + + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) + set(CPACK_GENERATOR "DEB") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + # Generate debuginfo package + set(CPACK_DEBIAN_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_PACKAGE_AUTOREQ no) + set(CPACK_RPM_PACKAGE_AUTOPROV yes) + set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION + /lib + /usr/etc + /etc/systemd + /lib/systemd + /etc/systemd/system + /lib/systemd/system + /etc/udev + /etc/udev/rules.d + ) + set(CPACK_PACKAGE_NAME "disptable") + set(disptable_DISTRO_VERSION "" CACHE STRING "disptable distribution version") + string(APPEND disptable_VERSION "${disptable_DISTRO_VERSION}") + set(CPACK_PACKAGE_FILE_NAME + "${CPACK_PACKAGE_NAME}_${disptable_VERSION}_${arch_name}" + ) + set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Dispatch Table library") + set(CPACK_PACKAGE_VENDOR "LNLS") + set(CPACK_PACKAGE_CONTACT "Lucas Russo ") + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") + # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") + # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") + # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") + set(CPACK_PACKAGE_VERSION ${disptable_VERSION}) + set(CPACK_PACKAGE_VERSION_MAJOR ${disptable_VERSION_MAJOR}) + set(CPACK_PACKAGE_VERSION_MINOR ${disptable_VERSION_MINOR}) + set(CPACK_PACKAGE_VERSION_PATCH ${disptable_VERSION_PATCH}) + # set(CPACK_PACKAGE_INSTALL_DIRECTORY "disptable Install Directory") + # set(CPACK_TEMPORARY_DIRECTORY "disptable Temporary CPack Directory") + # Generate debuginfo package + set(CPACK_RPM_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/usr/src/debug/${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") + include(CPack) cpack_add_component_group(Development diff --git a/libs/errhand/CMakeLists.txt b/libs/errhand/CMakeLists.txt index 6423cdff..7da0f0fe 100644 --- a/libs/errhand/CMakeLists.txt +++ b/libs/errhand/CMakeLists.txt @@ -430,55 +430,60 @@ endif() option(ENABLE_CPACK "Enables cpack rules" ON) if(ENABLE_CPACK) - if(${CMAKE_BUILD_TYPE} MATCHES "Debug") - set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) - set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) - set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) - endif() - - include(InstallRequiredSystemLibraries) - - # set architecture as detected by TargetArch module - set(arch_name ${ARCH}) - - list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) - set(CPACK_GENERATOR "DEB") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) - set(CPACK_RPM_PACKAGE_AUTOREQ no) - set(CPACK_RPM_PACKAGE_AUTOPROV yes) - set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION - /lib - /usr/etc - /etc/systemd - /lib/systemd - /etc/systemd/system - /lib/systemd/system - /etc/udev - /etc/udev/rules.d - ) - set(CPACK_PACKAGE_NAME "errhand") - set(errhand_DISTRO_VERSION "" CACHE STRING "errhand distribution version") - string(APPEND errhand_VERSION "${errhand_DISTRO_VERSION}") - set(CPACK_PACKAGE_FILE_NAME - "${CPACK_PACKAGE_NAME}_${errhand_VERSION}_${arch_name}" - ) - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Error Handling library") - set(CPACK_PACKAGE_VENDOR "LNLS") - set(CPACK_PACKAGE_CONTACT "Lucas Russo ") - set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") - # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") - # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") - # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") - set(CPACK_PACKAGE_VERSION ${errhand_VERSION}) - set(CPACK_PACKAGE_VERSION_MAJOR ${errhand_VERSION_MAJOR}) - set(CPACK_PACKAGE_VERSION_MINOR ${errhand_VERSION_MINOR}) - set(CPACK_PACKAGE_VERSION_PATCH ${errhand_VERSION_PATCH}) - # set(CPACK_PACKAGE_INSTALL_DIRECTORY "errhand Install Directory") - # set(CPACK_TEMPORARY_DIRECTORY "errhand Temporary CPack Directory") - if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + if(${CMAKE_BUILD_TYPE} MATCHES "Debug") + set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) + set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) + set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) + endif() + + include(InstallRequiredSystemLibraries) + + # set architecture as detected by TargetArch module + set(arch_name ${ARCH}) + + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) + set(CPACK_GENERATOR "DEB") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + # Generate debuginfo package + set(CPACK_DEBIAN_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_PACKAGE_AUTOREQ no) + set(CPACK_RPM_PACKAGE_AUTOPROV yes) + set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION + /lib + /usr/etc + /etc/systemd + /lib/systemd + /etc/systemd/system + /lib/systemd/system + /etc/udev + /etc/udev/rules.d + ) + set(CPACK_PACKAGE_NAME "errhand") + set(errhand_DISTRO_VERSION "" CACHE STRING "errhand distribution version") + string(APPEND errhand_VERSION "${errhand_DISTRO_VERSION}") + set(CPACK_PACKAGE_FILE_NAME + "${CPACK_PACKAGE_NAME}_${errhand_VERSION}_${arch_name}" + ) + set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Error Handling library") + set(CPACK_PACKAGE_VENDOR "LNLS") + set(CPACK_PACKAGE_CONTACT "Lucas Russo ") + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") + # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") + # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") + # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") + set(CPACK_PACKAGE_VERSION ${errhand_VERSION}) + set(CPACK_PACKAGE_VERSION_MAJOR ${errhand_VERSION_MAJOR}) + set(CPACK_PACKAGE_VERSION_MINOR ${errhand_VERSION_MINOR}) + set(CPACK_PACKAGE_VERSION_PATCH ${errhand_VERSION_PATCH}) + # set(CPACK_PACKAGE_INSTALL_DIRECTORY "errhand Install Directory") + # set(CPACK_TEMPORARY_DIRECTORY "errhand Temporary CPack Directory") + # Generate debuginfo package + set(CPACK_RPM_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/usr/src/debug/${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") + include(CPack) cpack_add_component_group(Development diff --git a/libs/hutils/CMakeLists.txt b/libs/hutils/CMakeLists.txt index 6284475b..4cf2cef4 100644 --- a/libs/hutils/CMakeLists.txt +++ b/libs/hutils/CMakeLists.txt @@ -417,55 +417,60 @@ endif() option(ENABLE_CPACK "Enables cpack rules" ON) if(ENABLE_CPACK) - if(${CMAKE_BUILD_TYPE} MATCHES "Debug") - set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) - set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) - set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) - endif() + if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + if(${CMAKE_BUILD_TYPE} MATCHES "Debug") + set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) + set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) + set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) + endif() - include(InstallRequiredSystemLibraries) - - # set architecture as detected by TargetArch module - set(arch_name ${ARCH}) - - list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) - set(CPACK_GENERATOR "DEB") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) - set(CPACK_RPM_PACKAGE_AUTOREQ no) - set(CPACK_RPM_PACKAGE_AUTOPROV yes) - set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION - /lib - /usr/etc - /etc/systemd - /lib/systemd - /etc/systemd/system - /lib/systemd/system - /etc/udev - /etc/udev/rules.d - ) - set(CPACK_PACKAGE_NAME "hutils") - set(hutils_DISTRO_VERSION "" CACHE STRING "hutils distribution version") - string(APPEND hutils_VERSION "${hutils_DISTRO_VERSION}") - set(CPACK_PACKAGE_FILE_NAME - "${CPACK_PACKAGE_NAME}_${hutils_VERSION}_${arch_name}" - ) - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "HALCS utilities library") - set(CPACK_PACKAGE_VENDOR "LNLS") - set(CPACK_PACKAGE_CONTACT "Lucas Russo ") - set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") - # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") - # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") - # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") - set(CPACK_PACKAGE_VERSION ${hutils_VERSION}) - set(CPACK_PACKAGE_VERSION_MAJOR ${hutils_VERSION_MAJOR}) - set(CPACK_PACKAGE_VERSION_MINOR ${hutils_VERSION_MINOR}) - set(CPACK_PACKAGE_VERSION_PATCH ${hutils_VERSION_PATCH}) - # set(CPACK_PACKAGE_INSTALL_DIRECTORY "hutils Install Directory") - # set(CPACK_TEMPORARY_DIRECTORY "hutils Temporary CPack Directory") + include(InstallRequiredSystemLibraries) + + # set architecture as detected by TargetArch module + set(arch_name ${ARCH}) + + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) + set(CPACK_GENERATOR "DEB") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + # Generate debuginfo package + set(CPACK_DEBIAN_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_PACKAGE_AUTOREQ no) + set(CPACK_RPM_PACKAGE_AUTOPROV yes) + set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION + /lib + /usr/etc + /etc/systemd + /lib/systemd + /etc/systemd/system + /lib/systemd/system + /etc/udev + /etc/udev/rules.d + ) + set(CPACK_PACKAGE_NAME "hutils") + set(hutils_DISTRO_VERSION "" CACHE STRING "hutils distribution version") + string(APPEND hutils_VERSION "${hutils_DISTRO_VERSION}") + set(CPACK_PACKAGE_FILE_NAME + "${CPACK_PACKAGE_NAME}_${hutils_VERSION}_${arch_name}" + ) + set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "HALCS utilities library") + set(CPACK_PACKAGE_VENDOR "LNLS") + set(CPACK_PACKAGE_CONTACT "Lucas Russo ") + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") + # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") + # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") + # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") + set(CPACK_PACKAGE_VERSION ${hutils_VERSION}) + set(CPACK_PACKAGE_VERSION_MAJOR ${hutils_VERSION_MAJOR}) + set(CPACK_PACKAGE_VERSION_MINOR ${hutils_VERSION_MINOR}) + set(CPACK_PACKAGE_VERSION_PATCH ${hutils_VERSION_PATCH}) + # set(CPACK_PACKAGE_INSTALL_DIRECTORY "hutils Install Directory") + # set(CPACK_TEMPORARY_DIRECTORY "hutils Temporary CPack Directory") + # Generate debuginfo package + set(CPACK_RPM_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/usr/src/debug/${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") - if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) include(CPack) cpack_add_component_group(Development diff --git a/libs/llio/CMakeLists.txt b/libs/llio/CMakeLists.txt index 4a67d6ad..f10200db 100644 --- a/libs/llio/CMakeLists.txt +++ b/libs/llio/CMakeLists.txt @@ -477,55 +477,60 @@ endif() option(ENABLE_CPACK "Enables cpack rules" ON) if(ENABLE_CPACK) - if(${CMAKE_BUILD_TYPE} MATCHES "Debug") - set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) - set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) - set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) - endif() - - include(InstallRequiredSystemLibraries) - - # set architecture as detected by TargetArch module - set(arch_name ${ARCH}) - - list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) - set(CPACK_GENERATOR "DEB") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) - set(CPACK_RPM_PACKAGE_AUTOREQ no) - set(CPACK_RPM_PACKAGE_AUTOPROV yes) - set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION - /lib - /usr/etc - /etc/systemd - /lib/systemd - /etc/systemd/system - /lib/systemd/system - /etc/udev - /etc/udev/rules.d - ) - set(CPACK_PACKAGE_NAME "llio") - set(llio_DISTRO_VERSION "" CACHE STRING "llio distribution version") - string(APPEND llio_VERSION "${llio_DISTRO_VERSION}") - set(CPACK_PACKAGE_FILE_NAME - "${CPACK_PACKAGE_NAME}_${llio_VERSION}_${arch_name}" - ) - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Low-level I/O library") - set(CPACK_PACKAGE_VENDOR "LNLS") - set(CPACK_PACKAGE_CONTACT "Lucas Russo ") - set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") - # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") - # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") - # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") - set(CPACK_PACKAGE_VERSION ${llio_VERSION}) - set(CPACK_PACKAGE_VERSION_MAJOR ${llio_VERSION_MAJOR}) - set(CPACK_PACKAGE_VERSION_MINOR ${llio_VERSION_MINOR}) - set(CPACK_PACKAGE_VERSION_PATCH ${llio_VERSION_PATCH}) - # set(CPACK_PACKAGE_INSTALL_DIRECTORY "llio Install Directory") - # set(CPACK_TEMPORARY_DIRECTORY "llio Temporary CPack Directory") - if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + if(${CMAKE_BUILD_TYPE} MATCHES "Debug") + set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) + set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) + set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) + endif() + + include(InstallRequiredSystemLibraries) + + # set architecture as detected by TargetArch module + set(arch_name ${ARCH}) + + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) + set(CPACK_GENERATOR "DEB") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + # Generate debuginfo package + set(CPACK_DEBIAN_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_PACKAGE_AUTOREQ no) + set(CPACK_RPM_PACKAGE_AUTOPROV yes) + set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION + /lib + /usr/etc + /etc/systemd + /lib/systemd + /etc/systemd/system + /lib/systemd/system + /etc/udev + /etc/udev/rules.d + ) + set(CPACK_PACKAGE_NAME "llio") + set(llio_DISTRO_VERSION "" CACHE STRING "llio distribution version") + string(APPEND llio_VERSION "${llio_DISTRO_VERSION}") + set(CPACK_PACKAGE_FILE_NAME + "${CPACK_PACKAGE_NAME}_${llio_VERSION}_${arch_name}" + ) + set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Low-level I/O library") + set(CPACK_PACKAGE_VENDOR "LNLS") + set(CPACK_PACKAGE_CONTACT "Lucas Russo ") + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") + # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") + # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") + # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") + set(CPACK_PACKAGE_VERSION ${llio_VERSION}) + set(CPACK_PACKAGE_VERSION_MAJOR ${llio_VERSION_MAJOR}) + set(CPACK_PACKAGE_VERSION_MINOR ${llio_VERSION_MINOR}) + set(CPACK_PACKAGE_VERSION_PATCH ${llio_VERSION_PATCH}) + # set(CPACK_PACKAGE_INSTALL_DIRECTORY "llio Install Directory") + # set(CPACK_TEMPORARY_DIRECTORY "llio Temporary CPack Directory") + # Generate debuginfo package + set(CPACK_RPM_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/usr/src/debug/${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") + include(CPack) cpack_add_component_group(Development diff --git a/libs/sdbfs/CMakeLists.txt b/libs/sdbfs/CMakeLists.txt index 93e9e995..553f306b 100644 --- a/libs/sdbfs/CMakeLists.txt +++ b/libs/sdbfs/CMakeLists.txt @@ -621,55 +621,60 @@ endif() option(ENABLE_CPACK "Enables cpack rules" ON) if(ENABLE_CPACK) - if(${CMAKE_BUILD_TYPE} MATCHES "Debug") - set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) - set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) - set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) - endif() + if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + if(${CMAKE_BUILD_TYPE} MATCHES "Debug") + set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) + set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) + set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) + endif() - include(InstallRequiredSystemLibraries) - - # set architecture as detected by TargetArch module - set(arch_name ${ARCH}) - - list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) - set(CPACK_GENERATOR "DEB") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) - set(CPACK_RPM_PACKAGE_AUTOREQ no) - set(CPACK_RPM_PACKAGE_AUTOPROV yes) - set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION - /lib - /usr/etc - /etc/systemd - /lib/systemd - /etc/systemd/system - /lib/systemd/system - /etc/udev - /etc/udev/rules.d - ) - set(CPACK_PACKAGE_NAME "sdbfs") - set(sdbfs_DISTRO_VERSION "" CACHE STRING "sdbfs distribution version") - string(APPEND sdbfs_VERSION "${sdbfs_DISTRO_VERSION}") - set(CPACK_PACKAGE_FILE_NAME - "${CPACK_PACKAGE_NAME}_${sdbfs_VERSION}_${arch_name}" - ) - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "SDB filesystem library") - set(CPACK_PACKAGE_VENDOR "LNLS") - set(CPACK_PACKAGE_CONTACT "Lucas Russo ") - set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") - # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") - # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") - # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") - set(CPACK_PACKAGE_VERSION ${sdbfs_VERSION}) - set(CPACK_PACKAGE_VERSION_MAJOR ${sdbfs_VERSION_MAJOR}) - set(CPACK_PACKAGE_VERSION_MINOR ${sdbfs_VERSION_MINOR}) - set(CPACK_PACKAGE_VERSION_PATCH ${sdbfs_VERSION_PATCH}) - # set(CPACK_PACKAGE_INSTALL_DIRECTORY "sdbfs Install Directory") - # set(CPACK_TEMPORARY_DIRECTORY "sdbfs Temporary CPack Directory") + include(InstallRequiredSystemLibraries) + + # set architecture as detected by TargetArch module + set(arch_name ${ARCH}) + + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) + set(CPACK_GENERATOR "DEB") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + # Generate debuginfo package + set(CPACK_DEBIAN_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_PACKAGE_AUTOREQ no) + set(CPACK_RPM_PACKAGE_AUTOPROV yes) + set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION + /lib + /usr/etc + /etc/systemd + /lib/systemd + /etc/systemd/system + /lib/systemd/system + /etc/udev + /etc/udev/rules.d + ) + set(CPACK_PACKAGE_NAME "sdbfs") + set(sdbfs_DISTRO_VERSION "" CACHE STRING "sdbfs distribution version") + string(APPEND sdbfs_VERSION "${sdbfs_DISTRO_VERSION}") + set(CPACK_PACKAGE_FILE_NAME + "${CPACK_PACKAGE_NAME}_${sdbfs_VERSION}_${arch_name}" + ) + set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "SDB filesystem library") + set(CPACK_PACKAGE_VENDOR "LNLS") + set(CPACK_PACKAGE_CONTACT "Lucas Russo ") + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") + # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") + # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") + # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") + set(CPACK_PACKAGE_VERSION ${sdbfs_VERSION}) + set(CPACK_PACKAGE_VERSION_MAJOR ${sdbfs_VERSION_MAJOR}) + set(CPACK_PACKAGE_VERSION_MINOR ${sdbfs_VERSION_MINOR}) + set(CPACK_PACKAGE_VERSION_PATCH ${sdbfs_VERSION_PATCH}) + # set(CPACK_PACKAGE_INSTALL_DIRECTORY "sdbfs Install Directory") + # set(CPACK_TEMPORARY_DIRECTORY "sdbfs Temporary CPack Directory") + # Generate debuginfo package + set(CPACK_RPM_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/usr/src/debug/${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") - if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) include(CPack) cpack_add_component_group(Development diff --git a/libs/sdbutils/CMakeLists.txt b/libs/sdbutils/CMakeLists.txt index 97b1407c..64c0f009 100644 --- a/libs/sdbutils/CMakeLists.txt +++ b/libs/sdbutils/CMakeLists.txt @@ -363,55 +363,60 @@ endif() option(ENABLE_CPACK "Enables cpack rules" ON) if(ENABLE_CPACK) - if(${CMAKE_BUILD_TYPE} MATCHES "Debug") - set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) - set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) - set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) - endif() - - include(InstallRequiredSystemLibraries) - - # set architecture as detected by TargetArch module - set(arch_name ${ARCH}) - - list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) - set(CPACK_GENERATOR "DEB") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) - set(CPACK_RPM_PACKAGE_AUTOREQ no) - set(CPACK_RPM_PACKAGE_AUTOPROV yes) - set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION - /lib - /usr/etc - /etc/systemd - /lib/systemd - /etc/systemd/system - /lib/systemd/system - /etc/udev - /etc/udev/rules.d - ) - set(CPACK_PACKAGE_NAME "sdbutils") - set(sdbutils_DISTRO_VERSION "" CACHE STRING "sdbutils distribution version") - string(APPEND sdbutils_VERSION "${sdbutils_DISTRO_VERSION}") - set(CPACK_PACKAGE_FILE_NAME - "${CPACK_PACKAGE_NAME}_${sdbutils_VERSION}_${arch_name}" - ) - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "SDB utilities library") - set(CPACK_PACKAGE_VENDOR "LNLS") - set(CPACK_PACKAGE_CONTACT "Lucas Russo ") - set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") - # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") - # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") - # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") - set(CPACK_PACKAGE_VERSION ${sdbutils_VERSION}) - set(CPACK_PACKAGE_VERSION_MAJOR ${sdbutils_VERSION_MAJOR}) - set(CPACK_PACKAGE_VERSION_MINOR ${sdbutils_VERSION_MINOR}) - set(CPACK_PACKAGE_VERSION_PATCH ${sdbutils_VERSION_PATCH}) - # set(CPACK_PACKAGE_INSTALL_DIRECTORY "sdbutils Install Directory") - # set(CPACK_TEMPORARY_DIRECTORY "sdbutils Temporary CPack Directory") - if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + if(${CMAKE_BUILD_TYPE} MATCHES "Debug") + set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) + set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) + set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) + endif() + + include(InstallRequiredSystemLibraries) + + # set architecture as detected by TargetArch module + set(arch_name ${ARCH}) + + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) + set(CPACK_GENERATOR "DEB") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + # Generate debuginfo package + set(CPACK_DEBIAN_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_PACKAGE_AUTOREQ no) + set(CPACK_RPM_PACKAGE_AUTOPROV yes) + set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION + /lib + /usr/etc + /etc/systemd + /lib/systemd + /etc/systemd/system + /lib/systemd/system + /etc/udev + /etc/udev/rules.d + ) + set(CPACK_PACKAGE_NAME "sdbutils") + set(sdbutils_DISTRO_VERSION "" CACHE STRING "sdbutils distribution version") + string(APPEND sdbutils_VERSION "${sdbutils_DISTRO_VERSION}") + set(CPACK_PACKAGE_FILE_NAME + "${CPACK_PACKAGE_NAME}_${sdbutils_VERSION}_${arch_name}" + ) + set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "SDB utilities library") + set(CPACK_PACKAGE_VENDOR "LNLS") + set(CPACK_PACKAGE_CONTACT "Lucas Russo ") + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") + # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") + # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") + # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") + set(CPACK_PACKAGE_VERSION ${sdbutils_VERSION}) + set(CPACK_PACKAGE_VERSION_MAJOR ${sdbutils_VERSION_MAJOR}) + set(CPACK_PACKAGE_VERSION_MINOR ${sdbutils_VERSION_MINOR}) + set(CPACK_PACKAGE_VERSION_PATCH ${sdbutils_VERSION_PATCH}) + # set(CPACK_PACKAGE_INSTALL_DIRECTORY "sdbutils Install Directory") + # set(CPACK_TEMPORARY_DIRECTORY "sdbutils Temporary CPack Directory") + # Generate debuginfo package + set(CPACK_RPM_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/usr/src/debug/${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") + include(CPack) cpack_add_component_group(Development diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt index 2fefcbde..44292d86 100644 --- a/src/client/CMakeLists.txt +++ b/src/client/CMakeLists.txt @@ -779,55 +779,60 @@ endif() option(ENABLE_CPACK "Enables cpack rules" ON) if(ENABLE_CPACK) - if(${CMAKE_BUILD_TYPE} MATCHES "Debug") - set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) - set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) - set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) - endif() - - include(InstallRequiredSystemLibraries) - - # set architecture as detected by TargetArch module - set(arch_name ${ARCH}) - - list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) - set(CPACK_GENERATOR "DEB") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") - set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) - set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) - set(CPACK_RPM_PACKAGE_AUTOREQ no) - set(CPACK_RPM_PACKAGE_AUTOPROV yes) - set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION - /lib - /usr/etc - /etc/systemd - /lib/systemd - /etc/systemd/system - /lib/systemd/system - /etc/udev - /etc/udev/rules.d - ) - set(CPACK_PACKAGE_NAME "halcsclient") - set(halcsclient_DISTRO_VERSION "" CACHE STRING "halcsclient distribution version") - string(APPEND halcsclient_VERSION "${halcsclient_DISTRO_VERSION}") - set(CPACK_PACKAGE_FILE_NAME - "${CPACK_PACKAGE_NAME}_${halcsclient_VERSION}_${arch_name}" - ) - set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "HALCS Conversion library") - set(CPACK_PACKAGE_VENDOR "LNLS") - set(CPACK_PACKAGE_CONTACT "Lucas Russo ") - set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") - # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") - # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") - # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") - set(CPACK_PACKAGE_VERSION ${halcsclient_VERSION}) - set(CPACK_PACKAGE_VERSION_MAJOR ${halcsclient_VERSION_MAJOR}) - set(CPACK_PACKAGE_VERSION_MINOR ${halcsclient_VERSION_MINOR}) - set(CPACK_PACKAGE_VERSION_PATCH ${halcsclient_VERSION_PATCH}) - # set(CPACK_PACKAGE_INSTALL_DIRECTORY "halcsclient Install Directory") - # set(CPACK_TEMPORARY_DIRECTORY "halcsclient Temporary CPack Directory") - if(CMAKE_CURRENT_BINARY_DIR STREQUAL CMAKE_BINARY_DIR) + if(${CMAKE_BUILD_TYPE} MATCHES "Debug") + set(CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY TRUE) + set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE) + set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) + endif() + + include(InstallRequiredSystemLibraries) + + # set architecture as detected by TargetArch module + set(arch_name ${ARCH}) + + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_BINARY_DIR}) + set(CPACK_GENERATOR "DEB") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY ">=") + set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) + set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) + # Generate debuginfo package + set(CPACK_DEBIAN_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_PACKAGE_AUTOREQ no) + set(CPACK_RPM_PACKAGE_AUTOPROV yes) + set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION + /lib + /usr/etc + /etc/systemd + /lib/systemd + /etc/systemd/system + /lib/systemd/system + /etc/udev + /etc/udev/rules.d + ) + set(CPACK_PACKAGE_NAME "halcsclient") + set(halcsclient_DISTRO_VERSION "" CACHE STRING "halcsclient distribution version") + string(APPEND halcsclient_VERSION "${halcsclient_DISTRO_VERSION}") + set(CPACK_PACKAGE_FILE_NAME + "${CPACK_PACKAGE_NAME}_${halcsclient_VERSION}_${arch_name}" + ) + set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "HALCS Conversion library") + set(CPACK_PACKAGE_VENDOR "LNLS") + set(CPACK_PACKAGE_CONTACT "Lucas Russo ") + set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt") + # set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt") + # set(CPACK_RESOURCE_FILE_WELCOME "${CMAKE_CURRENT_BINARY_DIR}/WELCOME.txt") + # set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/branding.bmp") + set(CPACK_PACKAGE_VERSION ${halcsclient_VERSION}) + set(CPACK_PACKAGE_VERSION_MAJOR ${halcsclient_VERSION_MAJOR}) + set(CPACK_PACKAGE_VERSION_MINOR ${halcsclient_VERSION_MINOR}) + set(CPACK_PACKAGE_VERSION_PATCH ${halcsclient_VERSION_PATCH}) + # set(CPACK_PACKAGE_INSTALL_DIRECTORY "halcsclient Install Directory") + # set(CPACK_TEMPORARY_DIRECTORY "halcsclient Temporary CPack Directory") + # Generate debuginfo package + set(CPACK_RPM_DEBUGINFO_PACKAGE ON) + set(CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX "/usr/src/debug/${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}") + include(CPack) cpack_add_component_group(Development