1set(CPACK_PACKAGE_VENDOR "khronos") 2 3set(CPACK_DEBIAN_RUNTIME_DESCRIPTION "Generic OpenCL ICD Loader 4OpenCL (Open Computing Language) is a multivendor open standard for 5general-purpose parallel programming of heterogeneous systems that include 6CPUs, GPUs and other processors. 7. 8This package contains an installable client driver loader (ICD Loader) 9library that can be used to load any (free or non-free) installable client 10driver (ICD) for OpenCL. It acts as a demultiplexer so several ICD can 11be installed and used together.") 12 13set(CPACK_DEBIAN_DEV_DESCRIPTION "OpenCL development files 14OpenCL (Open Computing Language) is a multivendor open standard for 15general-purpose parallel programming of heterogeneous systems that include 16CPUs, GPUs and other processors. 17. 18This package provides the development files: headers and libraries. 19. 20It also ensures that the ocl-icd ICD loader is installed so its additional 21features (compared to the OpenCL norm) can be used: .pc file, ability to 22select an ICD without root privilege, etc.") 23 24set(CPACK_DEBIAN_CLLAYERINFO_DESCRIPTION "Query OpenCL Layer system information 25OpenCL (Open Computing Language) is a multivendor open standard for 26general-purpose parallel programming of heterogeneous systems that include 27CPUs, GPUs and other processors. It supports system and user configured layers 28to intercept OpenCL API calls. 29. 30This package contains a tool that lists the layers loaded by the the ocl-icd 31OpenCL ICD Loader.") 32 33set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") 34 35set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md") 36 37if(NOT CPACK_PACKAGING_INSTALL_PREFIX) 38 set(CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") 39endif() 40 41# DEB packaging configuration 42set(CPACK_DEBIAN_PACKAGE_MAINTAINER ${CPACK_PACKAGE_VENDOR}) 43 44set(CPACK_DEBIAN_PACKAGE_HOMEPAGE 45 "https://github.com/KhronosGroup/OpenCL-ICD-Loader") 46 47# Version number [epoch:]upstream_version[-debian_revision] 48set(CPACK_DEBIAN_PACKAGE_VERSION "${PROJECT_VERSION}") # upstream_version 49if(DEFINED LATEST_RELEASE_VERSION) 50 # Remove leading "v", if exists 51 string(LENGTH "${LATEST_RELEASE_VERSION}" LATEST_RELEASE_VERSION_LENGTH) 52 string(SUBSTRING "${LATEST_RELEASE_VERSION}" 0 1 LATEST_RELEASE_VERSION_FRONT) 53 if(LATEST_RELEASE_VERSION_FRONT STREQUAL "v") 54 string(SUBSTRING "${LATEST_RELEASE_VERSION}" 1 ${LATEST_RELEASE_VERSION_LENGTH} LATEST_RELEASE_VERSION) 55 endif() 56 57 string(APPEND CPACK_DEBIAN_PACKAGE_VERSION "~${LATEST_RELEASE_VERSION}") 58endif() 59set(CPACK_DEBIAN_PACKAGE_RELEASE "1") # debian_revision (because this is a 60 # non-native pkg) 61set(PACKAGE_VERSION_REVISION "${CPACK_DEBIAN_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}${DEBIAN_VERSION_SUFFIX}") 62 63# Get architecture 64execute_process(COMMAND dpkg "--print-architecture" OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE) 65string(STRIP "${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}" CPACK_DEBIAN_PACKAGE_ARCHITECTURE) 66 67########################################################## 68# Components # 69########################################################## 70 71set(CPACK_DEB_COMPONENT_INSTALL ON) 72set(CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS OFF) # Component dependencies are NOT reflected in package relationships 73set(CPACK_COMPONENTS_ALL runtime dev cllayerinfo) 74 75set(PACKAGE_NAME_PREFIX "khronos-opencl-loader") 76 77## Package runtime component 78set(CPACK_DEBIAN_RUNTIME_PACKAGE_NAME "${PACKAGE_NAME_PREFIX}-libopencl1") 79 80# Package file name in deb format: 81# <PackageName>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb 82set(CPACK_DEBIAN_RUNTIME_FILE_NAME "${CPACK_DEBIAN_RUNTIME_PACKAGE_NAME}_${PACKAGE_VERSION_REVISION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.deb") 83set(CPACK_DEBIAN_RUNTIME_PACKAGE_SECTION "libs") 84# Dependencies 85set(CPACK_DEBIAN_RUNTIME_PACKAGE_DEPENDS "libc6") 86set(CPACK_DEBIAN_RUNTIME_PACKAGE_SUGGESTS "opencl-icd") 87set(CPACK_DEBIAN_RUNTIME_PACKAGE_CONFLICTS "amd-app, libopencl1, nvidia-libopencl1-dev") 88set(CPACK_DEBIAN_RUNTIME_PACKAGE_REPLACES "amd-app, libopencl1, nvidia-libopencl1-dev") 89set(CPACK_DEBIAN_RUNTIME_PACKAGE_PROVIDES "libopencl-1.1-1, libopencl-1.2-1, libopencl-2.0-1, libopencl-2.1-1, libopencl-2.2-1, libopencl-3.0-1, libopencl1") 90 91## Package dev component 92set(CPACK_DEBIAN_DEV_PACKAGE_NAME "${PACKAGE_NAME_PREFIX}-opencl-dev") 93 94# Package file name in deb format: 95# <PackageName>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb 96set(CPACK_DEBIAN_DEV_FILE_NAME "${CPACK_DEBIAN_DEV_PACKAGE_NAME}_${PACKAGE_VERSION_REVISION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.deb") 97set(CPACK_DEBIAN_DEV_PACKAGE_SECTION "libdevel") 98 99# Dependencies 100set(CPACK_DEBIAN_DEV_PACKAGE_DEPENDS "opencl-c-headers (>= ${CPACK_DEBIAN_PACKAGE_VERSION}) | opencl-headers (>= ${CPACK_DEBIAN_PACKAGE_VERSION}), ${CPACK_DEBIAN_RUNTIME_PACKAGE_NAME} (>= ${CPACK_DEBIAN_PACKAGE_VERSION}) | libopencl1") 101set(CPACK_DEBIAN_DEV_PACKAGE_RECOMMENDS "libgl1-mesa-dev | libgl-dev") 102set(CPACK_DEBIAN_DEV_PACKAGE_CONFLICTS "opencl-dev") 103set(CPACK_DEBIAN_DEV_PACKAGE_BREAKS "amd-libopencl1, nvidia-libopencl1") 104set(CPACK_DEBIAN_DEV_PACKAGE_REPLACES "amd-libopencl1, nvidia-libopencl1, opencl-dev") 105set(CPACK_DEBIAN_DEV_PACKAGE_PROVIDES "opencl-dev") 106 107## Package cllayerinfo component 108set(CPACK_DEBIAN_CLLAYERINFO_PACKAGE_NAME "${PACKAGE_NAME_PREFIX}-cllayerinfo") 109set(CPACK_DEBIAN_CLLAYERINFO_FILE_NAME "${CPACK_DEBIAN_CLLAYERINFO_PACKAGE_NAME}_${PACKAGE_VERSION_REVISION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.deb") 110# Dependencies 111set(CPACK_DEBIAN_CLLAYERINFO_PACKAGE_DEPENDS "libc6") 112set(CPACK_DEBIAN_CLLAYERINFO_PACKAGE_SECTION "admin") 113