• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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