| # |
| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to You under the Apache License, Version 2.0 |
| # (the "License"); you may not use this file except in compliance with |
| # the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| |
| set(CPACK_PACKAGE_NAME ignite3) |
| |
| if(ENABLE_ADDRESS_SANITIZER) |
| set(CPACK_PACKAGE_NAME ${CPACK_PACKAGE_NAME}-asan) |
| endif() |
| |
| if(ENABLE_UB_SANITIZER) |
| set(CPACK_PACKAGE_NAME ${CPACK_PACKAGE_NAME}-ubsan) |
| endif() |
| |
| set(CPACK_PACKAGING_INSTALL_PREFIX "/usr") |
| set(PACKAGE_SO_PATH "${CPACK_PACKAGING_INSTALL_PREFIX}/${IGNITE_INSTALL_LIBRARY_DIR}") |
| set(IGNITE_ODBC_INI_PATH "${CPACK_PACKAGING_INSTALL_PREFIX}/${IGNITE_INSTALL_DATAROOT_DIR}/ignite") |
| |
| set(CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION ON) |
| |
| set(CPACK_COMPONENTS_ALL client odbc) |
| |
| set(CPACK_PACKAGE_VENDOR "Apache Software Foundation") |
| |
| set(CPACK_VERBATIM_VARIABLES YES) |
| |
| set(CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME}) |
| set(CPACK_OUTPUT_FILE_PREFIX "_packages") |
| |
| set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR}) |
| set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR}) |
| if(VERSION_PRERELEASE) |
| set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH}.${VERSION_PRERELEASE}) |
| else() |
| set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH}) |
| endif() |
| |
| set(CPACK_PACKAGE_CONTACT "dev@ignite.apache.org") |
| set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Apache Software Foundation") |
| |
| set(CPACK_RESOURCE_FILE_LICENSE "${IGNITE_CMAKE_TOP_DIR}/LICENSE") |
| |
| set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT) |
| set(CPACK_RPM_FILE_NAME RPM-DEFAULT) |
| set(CPACK_COMPONENTS_GROUPING ONE_PER_GROUP) |
| set(CPACK_DEB_COMPONENT_INSTALL ON) |
| set(CPACK_RPM_COMPONENT_INSTALL ON) |
| |
| set(CPACK_ARCHIVE_COMPONENT_INSTALL 1) |
| set(CPACK_TGZ_COMPONENT_INSTALL ON) |
| |
| set(ODBC_SCRIPT_DIR "${IGNITE_CMAKE_TOP_DIR}/cmake/scripts/odbc") |
| |
| #configure_file can set permissions as well, but it will raise required cmake version to 3.20 |
| configure_file("${ODBC_SCRIPT_DIR}/post_install.sh.in" "${CMAKE_CURRENT_BINARY_DIR}/postinst" @ONLY) |
| configure_file("${ODBC_SCRIPT_DIR}/pre_uninstall.sh.in" "${CMAKE_CURRENT_BINARY_DIR}/prerm" @ONLY) |
| |
| configure_file("${ODBC_SCRIPT_DIR}/post_install.sh.in" "${CMAKE_CURRENT_BINARY_DIR}/post_install.sh" @ONLY) |
| configure_file("${ODBC_SCRIPT_DIR}/pre_uninstall.sh.in" "${CMAKE_CURRENT_BINARY_DIR}/pre_uninstall.sh" @ONLY) |
| |
| set(SCRIPTS_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/scripts/") |
| |
| file(MAKE_DIRECTORY ${SCRIPTS_BINARY_DIR}) |
| |
| file(COPY |
| "${CMAKE_CURRENT_BINARY_DIR}/post_install.sh" |
| "${CMAKE_CURRENT_BINARY_DIR}/pre_uninstall.sh" |
| "${CMAKE_CURRENT_BINARY_DIR}/postinst" |
| "${CMAKE_CURRENT_BINARY_DIR}/prerm" |
| DESTINATION "${SCRIPTS_BINARY_DIR}" |
| FILE_PERMISSIONS |
| OWNER_READ OWNER_WRITE OWNER_EXECUTE |
| GROUP_READ GROUP_EXECUTE |
| WORLD_READ WORLD_EXECUTE |
| ) |
| |
| set(CPACK_DEBIAN_ODBC_PACKAGE_CONTROL_EXTRA "${SCRIPTS_BINARY_DIR}/postinst;${SCRIPTS_BINARY_DIR}/prerm") |
| set(CPACK_DEBIAN_ODBC_PACKAGE_CONTROL_STRICT_PERMISSION TRUE) |
| |
| set(CPACK_DEBIAN_CLIENT_PACKAGE_DEPENDS "libc6, libstdc++6") |
| set(CPACK_DEBIAN_ODBC_PACKAGE_DEPENDS "unixodbc, odbcinst, libc6, libstdc++6") |
| |
| set(CPACK_RPM_ODBC_POST_INSTALL_SCRIPT_FILE "${SCRIPTS_BINARY_DIR}/post_install.sh") |
| set(CPACK_RPM_ODBC_PRE_UNINSTALL_SCRIPT_FILE "${SCRIPTS_BINARY_DIR}/pre_uninstall.sh") |
| |
| set(CPACK_RPM_CLIENT_PACKAGE_DEPENDS libc6 libstdc++6) |
| set(CPACK_RPM_ODBC_PACKAGE_DEPENDS unixODBC libc6 libstdc++6) |
| |
| configure_file("${ODBC_SCRIPT_DIR}/ignite3-odbc-linux.ini.in" "${CMAKE_CURRENT_BINARY_DIR}/ignite3-odbc-linux.ini") |
| |
| install(FILES |
| "${CMAKE_CURRENT_BINARY_DIR}/ignite3-odbc-linux.ini" |
| COMPONENT odbc |
| DESTINATION "${IGNITE_INSTALL_DATAROOT_DIR}/ignite/" |
| RENAME "ignite3-odbc.ini" |
| ) |
| |
| set(CPACK_COMPONENT_CLIENT_DESCRIPTION "Apache Ignite 3 client library for C++") |
| set(CPACK_COMPONENT_ODBC_DESCRIPTION "Apache Ignite 3 ODBC driver") |
| set(CPACK_PACKAGE_CHECKSUM "SHA256") |