dev-libs/ocl-icd: use dev-util/opencl-headers instead of bundled ones
authorMarek Szuba <marecki@gentoo.org>
Fri, 10 Apr 2020 23:13:10 +0000 (00:13 +0100)
committerMarek Szuba <marecki@gentoo.org>
Fri, 10 Apr 2020 23:25:13 +0000 (00:25 +0100)
Builds just fine against these, which is not surprising given both sets
are official Khronos Group OpenCL 2.2 headers - the only difference
being the bundled ones are legacy and the separately packaged ones are
unified. Furthermore, without having to worry about file collisions in
/usr/include/CL, it will become possible for packages depending on
unified headers (e.g. dev-libs/intel-neo, which too uses a bundled copy
for now) to use dev-util/opencl-headers regardless of which ICD loader
provides the library. Last but not least, one bundling less to worry
about!

Note that this change makes USE=khronos-headers redundant, that said we
keep it in IUSE - at least for now anyway - so that ebuilds explicitly
requesting this USE flag needn't be modified.

No revbump because the first commit introducing -r3 has at the time of
me writing this not had been pushed to Gentoo servers yet.

Committed directly due to prolonged absence of the maintainer.

Signed-off-by: Marek Szuba <marecki@gentoo.org>
dev-libs/ocl-icd/ocl-icd-2.2.12-r3.ebuild

index 783021a439e5dcc68d1f668b754f807143b91f5d..980cac2e7506298a20953f4c554af11169a35f09 100644 (file)
@@ -13,10 +13,16 @@ LICENSE="BSD-2"
 SLOT="0"
 KEYWORDS="~amd64 ~x86"
 
+# Does nothing now but by keeping it here we avoid having to have virtual/opencl
+# handle ebuilds both with and without this flag.
 IUSE="+khronos-headers"
 
 BDEPEND="${RUBY_DEPS}"
-RDEPEND="!app-eselect/eselect-opencl
+DEPEND="dev-util/opencl-headers"
+# nvidia-drivers block is hopefully temporary, until it has ceased
+# to depend on eselect-opencl
+RDEPEND="${DEPEND}
+       !app-eselect/eselect-opencl
        !dev-libs/opencl-icd-loader
        !x11-drivers/nvidia-drivers"
 
@@ -30,7 +36,9 @@ src_prepare() {
 }
 
 multilib_src_configure() {
-       ECONF_SOURCE="${S}" econf --enable-pthread-once
+       # dev-util/opencl-headers ARE official Khronos Group headers, what this option
+       # does is disable the use of the bundled ones
+       ECONF_SOURCE="${S}" econf --enable-pthread-once --disable-official-khronos-headers
 }
 
 multilib_src_install() {
@@ -38,10 +46,4 @@ multilib_src_install() {
 
        # Drop .la files
        find "${ED}" -name '*.la' -delete || die
-
-       # Install vendor headers
-       if use khronos-headers; then
-               insinto /usr/include
-               doins -r "${S}/khronos-headers/CL"
-       fi
 }