dev-util/opencl-headers: new package
authorMarek Szuba <marecki@gentoo.org>
Wed, 1 Apr 2020 22:36:31 +0000 (23:36 +0100)
committerMarek Szuba <marecki@gentoo.org>
Thu, 2 Apr 2020 00:20:14 +0000 (01:20 +0100)
The first release of unified Khronos OpenCL headers, which unlike
old headers (which is what app-eselect/eselect-opencl installs)
work with all released OpenCL versions rather than having different
versions supported by files from different directories.

Note that in order to avoid file collisions with eselect-opencl this
package presently installs header files into
/usr/$(get_libdir)/OpenCL/vendors/opencl-icd-loader/include ,
which is why it needs multilib support and why it will likely not work
right when installed standalone (in contrast to being pulled in by
dev-libs/opencl-icd-loader).

Signed-off-by: Marek Szuba <marecki@gentoo.org>
dev-util/opencl-headers/Manifest [new file with mode: 0644]
dev-util/opencl-headers/metadata.xml [new file with mode: 0644]
dev-util/opencl-headers/opencl-headers-2020.03.13.ebuild [new file with mode: 0644]

diff --git a/dev-util/opencl-headers/Manifest b/dev-util/opencl-headers/Manifest
new file mode 100644 (file)
index 0000000..21be9a9
--- /dev/null
@@ -0,0 +1 @@
+DIST opencl-headers-2020.03.13.tar.gz 48540 BLAKE2B 5befbf7b1ed9df7e45789f1a5c3ec15a2bb0bee4cf50f89e424b6c69534c045c0774fd6f6424d5311c5415c9e6714033b6c70d3c641f60c037a9c3fab3e00bb6 SHA512 4bf368325f6034b2c59b9d3a22f7c12eec078e5e5a0bdcc3f1f5870e211bf7d03ae7137897262440a9c98a35592f4405d85fae1b53246e56b5544af51bf9b39a
diff --git a/dev-util/opencl-headers/metadata.xml b/dev-util/opencl-headers/metadata.xml
new file mode 100644 (file)
index 0000000..f5bc8eb
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+       <maintainer type="person">
+               <email>marecki@gentoo.org</email>
+               <name>Marek Szuba</name>
+       </maintainer>
+       <longdescription lang="en">
+               The OpenCL API headers in this package are unified headers and are designed to work
+               with all released OpenCL versions. This differs from previous OpenCL API headers,
+               where version-specific API headers either existed in separate branches, or
+               in separate folders in a branch.
+
+               By default, the OpenCL API headers in this repository are for the latest OpenCL
+               version supported. To use these API headers to target a different OpenCL version,
+               an application may #define the preprocessor value CL_TARGET_OPENCL_VERSION before
+               including the OpenCL API headers. The CL_TARGET_OPENCL_VERSION is a three digit
+               decimal value representing the OpenCL API version.
+       </longdescription>
+       <upstream>
+               <remote-id type="github">KhronosGroup/OpenCL-Headers</remote-id>
+       </upstream>
+</pkgmetadata>
+
diff --git a/dev-util/opencl-headers/opencl-headers-2020.03.13.ebuild b/dev-util/opencl-headers/opencl-headers-2020.03.13.ebuild
new file mode 100644 (file)
index 0000000..0c64e9c
--- /dev/null
@@ -0,0 +1,29 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit multilib-minimal
+
+MY_PN="OpenCL-Headers"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Unified C language headers for the OpenCL API"
+HOMEPAGE="https://github.com/KhronosGroup/OpenCL-Headers"
+SRC_URI="https://github.com/KhronosGroup/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+S="${WORKDIR}/${MY_P}"
+
+multilib_src_install() {
+       # Ideally we would install these directly into /usr/include but that would conflict
+       # with eselect-opencl, therefore we install these into the vendor directory used by
+       # dev-libs/opencl-icd-loader. Hopefully we will get this resolved soon and we can
+       # stop messing with multilib in this package.
+       local ocl_dir="/usr/$(get_libdir)/OpenCL/vendors/opencl-icd-loader"
+       insinto "${ocl_dir}"/include
+       doins -r "${S}"/CL
+}