commit:     1d7bc2315472f1240c78bcf7638c5401053426e5
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Nov 10 17:00:56 2022 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Nov 10 17:02:16 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1d7bc231

dev-libs/libclc: Support building SPIRV targets

Closes: https://bugs.gentoo.org/880679
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 ...-15.0.4.9999.ebuild => libclc-15.0.4-r1.ebuild} | 29 +++++++++++++++-----
 dev-libs/libclc/libclc-15.0.4.9999.ebuild          | 27 ++++++++++++++----
 dev-libs/libclc/libclc-16.0.0.9999.ebuild          | 32 +++++++++++++++++-----
 dev-libs/libclc/libclc-16.0.0_pre20221104.ebuild   | 32 +++++++++++++++++-----
 dev-libs/libclc/metadata.xml                       |  3 ++
 5 files changed, 96 insertions(+), 27 deletions(-)

diff --git a/dev-libs/libclc/libclc-15.0.4.9999.ebuild 
b/dev-libs/libclc/libclc-15.0.4-r1.ebuild
similarity index 70%
copy from dev-libs/libclc/libclc-15.0.4.9999.ebuild
copy to dev-libs/libclc/libclc-15.0.4-r1.ebuild
index 340ab1225b37..f68055e81f44 100644
--- a/dev-libs/libclc/libclc-15.0.4.9999.ebuild
+++ b/dev-libs/libclc/libclc-15.0.4-r1.ebuild
@@ -11,17 +11,25 @@ HOMEPAGE="https://libclc.llvm.org/";
 
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( MIT BSD )"
 SLOT="0"
-KEYWORDS=""
-IUSE_VIDEO_CARDS="video_cards_nvidia video_cards_r600 video_cards_radeonsi"
-IUSE="${IUSE_VIDEO_CARDS}"
+KEYWORDS="~amd64"
+IUSE="spirv video_cards_nvidia video_cards_r600 video_cards_radeonsi"
 
 LLVM_MAX_SLOT=15
 BDEPEND="
        ${PYTHON_DEPS}
        || (
-               sys-devel/clang:15
-               sys-devel/clang:14
-               sys-devel/clang:13
+               (
+                       sys-devel/clang:15
+                       spirv? ( dev-util/spirv-llvm-translator:15 )
+               )
+               (
+                       sys-devel/clang:14
+                       spirv? ( dev-util/spirv-llvm-translator:14 )
+               )
+               (
+                       sys-devel/clang:13
+                       spirv? ( dev-util/spirv-llvm-translator:13 )
+               )
        )
 "
 
@@ -29,6 +37,10 @@ LLVM_COMPONENTS=( libclc )
 llvm.org_set_globals
 
 llvm_check_deps() {
+       if use spirv; then
+               has_version -b "dev-util/spirv-llvm-translator:${LLVM_SLOT}" ||
+                       return 1
+       fi
        has_version -b "sys-devel/clang:${LLVM_SLOT}"
 }
 
@@ -40,6 +52,10 @@ pkg_setup() {
 src_configure() {
        local libclc_targets=()
 
+       use spirv && libclc_targets+=(
+               "spirv-mesa3d-"
+               "spirv64-mesa3d-"
+       )
        use video_cards_nvidia && libclc_targets+=(
                "nvptx--"
                "nvptx64--"
@@ -54,7 +70,6 @@ src_configure() {
                "amdgcn-mesa-mesa3d"
                "amdgcn--amdhsa"
        )
-       # TODO: spirv
        [[ ${#libclc_targets[@]} ]] || die "libclc target missing!"
 
        libclc_targets=${libclc_targets[*]}

diff --git a/dev-libs/libclc/libclc-15.0.4.9999.ebuild 
b/dev-libs/libclc/libclc-15.0.4.9999.ebuild
index 340ab1225b37..94f834e120c6 100644
--- a/dev-libs/libclc/libclc-15.0.4.9999.ebuild
+++ b/dev-libs/libclc/libclc-15.0.4.9999.ebuild
@@ -12,16 +12,24 @@ HOMEPAGE="https://libclc.llvm.org/";
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( MIT BSD )"
 SLOT="0"
 KEYWORDS=""
-IUSE_VIDEO_CARDS="video_cards_nvidia video_cards_r600 video_cards_radeonsi"
-IUSE="${IUSE_VIDEO_CARDS}"
+IUSE="spirv video_cards_nvidia video_cards_r600 video_cards_radeonsi"
 
 LLVM_MAX_SLOT=15
 BDEPEND="
        ${PYTHON_DEPS}
        || (
-               sys-devel/clang:15
-               sys-devel/clang:14
-               sys-devel/clang:13
+               (
+                       sys-devel/clang:15
+                       spirv? ( dev-util/spirv-llvm-translator:15 )
+               )
+               (
+                       sys-devel/clang:14
+                       spirv? ( dev-util/spirv-llvm-translator:14 )
+               )
+               (
+                       sys-devel/clang:13
+                       spirv? ( dev-util/spirv-llvm-translator:13 )
+               )
        )
 "
 
@@ -29,6 +37,10 @@ LLVM_COMPONENTS=( libclc )
 llvm.org_set_globals
 
 llvm_check_deps() {
+       if use spirv; then
+               has_version -b "dev-util/spirv-llvm-translator:${LLVM_SLOT}" ||
+                       return 1
+       fi
        has_version -b "sys-devel/clang:${LLVM_SLOT}"
 }
 
@@ -40,6 +52,10 @@ pkg_setup() {
 src_configure() {
        local libclc_targets=()
 
+       use spirv && libclc_targets+=(
+               "spirv-mesa3d-"
+               "spirv64-mesa3d-"
+       )
        use video_cards_nvidia && libclc_targets+=(
                "nvptx--"
                "nvptx64--"
@@ -54,7 +70,6 @@ src_configure() {
                "amdgcn-mesa-mesa3d"
                "amdgcn--amdhsa"
        )
-       # TODO: spirv
        [[ ${#libclc_targets[@]} ]] || die "libclc target missing!"
 
        libclc_targets=${libclc_targets[*]}

diff --git a/dev-libs/libclc/libclc-16.0.0.9999.ebuild 
b/dev-libs/libclc/libclc-16.0.0.9999.ebuild
index 7a22bf15d80d..ed252b9ab52d 100644
--- a/dev-libs/libclc/libclc-16.0.0.9999.ebuild
+++ b/dev-libs/libclc/libclc-16.0.0.9999.ebuild
@@ -12,17 +12,28 @@ HOMEPAGE="https://libclc.llvm.org/";
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( MIT BSD )"
 SLOT="0"
 KEYWORDS=""
-IUSE_VIDEO_CARDS="video_cards_nvidia video_cards_r600 video_cards_radeonsi"
-IUSE="${IUSE_VIDEO_CARDS}"
+IUSE="spirv video_cards_nvidia video_cards_r600 video_cards_radeonsi"
 
 LLVM_MAX_SLOT=16
 BDEPEND="
        ${PYTHON_DEPS}
        || (
-               sys-devel/clang:16
-               sys-devel/clang:15
-               sys-devel/clang:14
-               sys-devel/clang:13
+               (
+                       sys-devel/clang:16
+                       spirv? ( dev-util/spirv-llvm-translator:16 )
+               )
+               (
+                       sys-devel/clang:15
+                       spirv? ( dev-util/spirv-llvm-translator:15 )
+               )
+               (
+                       sys-devel/clang:14
+                       spirv? ( dev-util/spirv-llvm-translator:14 )
+               )
+               (
+                       sys-devel/clang:13
+                       spirv? ( dev-util/spirv-llvm-translator:13 )
+               )
        )
 "
 
@@ -30,6 +41,10 @@ LLVM_COMPONENTS=( libclc )
 llvm.org_set_globals
 
 llvm_check_deps() {
+       if use spirv; then
+               has_version -b "dev-util/spirv-llvm-translator:${LLVM_SLOT}" ||
+                       return 1
+       fi
        has_version -b "sys-devel/clang:${LLVM_SLOT}"
 }
 
@@ -41,6 +56,10 @@ pkg_setup() {
 src_configure() {
        local libclc_targets=()
 
+       use spirv && libclc_targets+=(
+               "spirv-mesa3d-"
+               "spirv64-mesa3d-"
+       )
        use video_cards_nvidia && libclc_targets+=(
                "nvptx--"
                "nvptx64--"
@@ -55,7 +74,6 @@ src_configure() {
                "amdgcn-mesa-mesa3d"
                "amdgcn--amdhsa"
        )
-       # TODO: spirv
        [[ ${#libclc_targets[@]} ]] || die "libclc target missing!"
 
        libclc_targets=${libclc_targets[*]}

diff --git a/dev-libs/libclc/libclc-16.0.0_pre20221104.ebuild 
b/dev-libs/libclc/libclc-16.0.0_pre20221104.ebuild
index 7a22bf15d80d..ed252b9ab52d 100644
--- a/dev-libs/libclc/libclc-16.0.0_pre20221104.ebuild
+++ b/dev-libs/libclc/libclc-16.0.0_pre20221104.ebuild
@@ -12,17 +12,28 @@ HOMEPAGE="https://libclc.llvm.org/";
 LICENSE="Apache-2.0-with-LLVM-exceptions || ( MIT BSD )"
 SLOT="0"
 KEYWORDS=""
-IUSE_VIDEO_CARDS="video_cards_nvidia video_cards_r600 video_cards_radeonsi"
-IUSE="${IUSE_VIDEO_CARDS}"
+IUSE="spirv video_cards_nvidia video_cards_r600 video_cards_radeonsi"
 
 LLVM_MAX_SLOT=16
 BDEPEND="
        ${PYTHON_DEPS}
        || (
-               sys-devel/clang:16
-               sys-devel/clang:15
-               sys-devel/clang:14
-               sys-devel/clang:13
+               (
+                       sys-devel/clang:16
+                       spirv? ( dev-util/spirv-llvm-translator:16 )
+               )
+               (
+                       sys-devel/clang:15
+                       spirv? ( dev-util/spirv-llvm-translator:15 )
+               )
+               (
+                       sys-devel/clang:14
+                       spirv? ( dev-util/spirv-llvm-translator:14 )
+               )
+               (
+                       sys-devel/clang:13
+                       spirv? ( dev-util/spirv-llvm-translator:13 )
+               )
        )
 "
 
@@ -30,6 +41,10 @@ LLVM_COMPONENTS=( libclc )
 llvm.org_set_globals
 
 llvm_check_deps() {
+       if use spirv; then
+               has_version -b "dev-util/spirv-llvm-translator:${LLVM_SLOT}" ||
+                       return 1
+       fi
        has_version -b "sys-devel/clang:${LLVM_SLOT}"
 }
 
@@ -41,6 +56,10 @@ pkg_setup() {
 src_configure() {
        local libclc_targets=()
 
+       use spirv && libclc_targets+=(
+               "spirv-mesa3d-"
+               "spirv64-mesa3d-"
+       )
        use video_cards_nvidia && libclc_targets+=(
                "nvptx--"
                "nvptx64--"
@@ -55,7 +74,6 @@ src_configure() {
                "amdgcn-mesa-mesa3d"
                "amdgcn--amdhsa"
        )
-       # TODO: spirv
        [[ ${#libclc_targets[@]} ]] || die "libclc target missing!"
 
        libclc_targets=${libclc_targets[*]}

diff --git a/dev-libs/libclc/metadata.xml b/dev-libs/libclc/metadata.xml
index 072910296ca3..7518ab30a1c7 100644
--- a/dev-libs/libclc/metadata.xml
+++ b/dev-libs/libclc/metadata.xml
@@ -7,4 +7,7 @@
        <upstream>
                <remote-id type="github">llvm/llvm-project</remote-id>
        </upstream>
+       <use>
+               <flag name="spirv">Build SPIRV targets</flag>
+       </use>
 </pkgmetadata>

Reply via email to