commit:     d587eef9baa0bff2161ea2aae5b5b122f85c8a1e
Author:     Conrad Kostecki <conikost <AT> gentoo <DOT> org>
AuthorDate: Thu May  4 21:47:56 2023 +0000
Commit:     Conrad Kostecki <conikost <AT> gentoo <DOT> org>
CommitDate: Thu May  4 21:47:56 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d587eef9

dev-libs/opencl-clang: add 16.0.0

Signed-off-by: Conrad Kostecki <conikost <AT> gentoo.org>

 dev-libs/opencl-clang/Manifest                     |  1 +
 .../opencl-clang-16.0.0-clang_library_dir.patch    | 36 +++++++++++++++++++
 .../files/opencl-clang-16.0.0-cxx17.patch          | 23 ++++++++++++
 .../files/opencl-clang-16.0.0-llvm.patch           | 40 +++++++++++++++++++++
 .../opencl-clang-16.0.0-standalone-build.patch     | 26 ++++++++++++++
 dev-libs/opencl-clang/opencl-clang-16.0.0.ebuild   | 42 ++++++++++++++++++++++
 6 files changed, 168 insertions(+)

diff --git a/dev-libs/opencl-clang/Manifest b/dev-libs/opencl-clang/Manifest
index 4f4bdc9262d1..adacd90a7844 100644
--- a/dev-libs/opencl-clang/Manifest
+++ b/dev-libs/opencl-clang/Manifest
@@ -1,2 +1,3 @@
 DIST opencl-clang-14.0.0.tar.gz 26109 BLAKE2B 
2ae5e6d69e2f13b867712d03b52fce893aeb70566f7f97d54858639786276f49b0b6b5768aebfedeb7fe50d95511178d7dd9df7e80d3fd27df1fb3fe1d2ab955
 SHA512 
ab9a3fd40542283bdd2646d9ef8d3217420c82a41b183d705e48f48949505ecadc1fa435e23a7ceadf5a335200f5f3752b42715e2ac7f63173fc09637c5c609a
 DIST opencl-clang-15.0.0.tar.gz 26212 BLAKE2B 
02d3a8eb3964b6882bd94b676b4459412c753ac38e1e3012662021e98a8219225eaf6af4f62f4e0e97de428f55b0b698374dc39babff09a0fcc73213d5daacfe
 SHA512 
a2ffce43493793524e9512be2e7bd46c0183b86b35a6f79018d355d07a83303a944e6dacebfb768e88ce75a7020a44939be872a2d4e754544198a9829f4febd4
+DIST opencl-clang-16.0.0.tar.gz 28413 BLAKE2B 
c99f043171186f5d9e44618d5d637d6a5c7997f22577491f544e78d93edd5afe74ba88eaaea92a931dd87af71fb630fdf03d27f1a9f55d7c3b8bdf53dee54b07
 SHA512 
bf723edab7dc7a028eb79d01fd2306690a2169472760bf2783d593ffec4eb788f28f184c66b204cc074cb95a4149fcc63a1dcbee5563c620a9dc2c76bb5a2d5a

diff --git 
a/dev-libs/opencl-clang/files/opencl-clang-16.0.0-clang_library_dir.patch 
b/dev-libs/opencl-clang/files/opencl-clang-16.0.0-clang_library_dir.patch
new file mode 100644
index 000000000000..227a7be30b50
--- /dev/null
+++ b/dev-libs/opencl-clang/files/opencl-clang-16.0.0-clang_library_dir.patch
@@ -0,0 +1,36 @@
+From 9f50367661bb6345bf7b18102f1e415378afda06 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <zatloukal.franti...@gmail.com>
+Date: Fri, 21 Apr 2023 04:08:11 +0200
+Subject: [PATCH] Support llvm headers in
+ ${CLANG_LIBRARY_DIRS}/clang/${LLVM_VERSION_MAJOR}/ (#419)
+
+Fedora places llvm include files into that directory instead of assumed
+${CLANG_LIBRARY_DIRS}/clang/${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}/include/
+
+Try both, fail horribly when none of them exist
+---
+ cl_headers/CMakeLists.txt | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/cl_headers/CMakeLists.txt b/cl_headers/CMakeLists.txt
+index 86df76f..0223d52 100644
+--- a/cl_headers/CMakeLists.txt
++++ b/cl_headers/CMakeLists.txt
+@@ -19,8 +19,15 @@ add_custom_command(
+ endfunction(copy_file)
+ 
+ if(USE_PREBUILT_LLVM)
+-    set(OPENCL_HEADERS_DIR
+-      
"${LLVM_LIBRARY_DIRS}/clang/${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}/include/")
++    if(EXISTS 
"${CLANG_LIBRARY_DIRS}/clang/${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}/")
++        set(OPENCL_HEADERS_DIR
++        
"${CLANG_LIBRARY_DIRS}/clang/${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}/include/")
++    elseif(EXISTS "${CLANG_LIBRARY_DIRS}/clang/${LLVM_VERSION_MAJOR}/")
++        set(OPENCL_HEADERS_DIR
++            "${CLANG_LIBRARY_DIRS}/clang/${LLVM_VERSION_MAJOR}/include/")
++    else()
++        message(FATAL_ERROR "[OPENCL-CLANG] Couldn't find prebuilt LLVM 
include directory.")
++    endif()
+ else(USE_PREBUILT_LLVM)
+     set(OPENCL_HEADERS_DIR "${CLANG_SOURCE_DIR}/lib/Headers")
+ endif(USE_PREBUILT_LLVM)

diff --git a/dev-libs/opencl-clang/files/opencl-clang-16.0.0-cxx17.patch 
b/dev-libs/opencl-clang/files/opencl-clang-16.0.0-cxx17.patch
new file mode 100644
index 000000000000..aa6c308630e8
--- /dev/null
+++ b/dev-libs/opencl-clang/files/opencl-clang-16.0.0-cxx17.patch
@@ -0,0 +1,23 @@
+From 5491ffa3fde5729074fe804023bd279c56684f77 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <zatloukal.franti...@gmail.com>
+Date: Mon, 24 Apr 2023 10:29:36 +0200
+Subject: [PATCH] Bump CMAKE_CXX_STANDARD to 17 (#416)
+
+Fixes build issues
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index dc471d8..a7d1927 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -58,7 +58,7 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+       ${CMAKE_MODULE_PATH}
+       ${LLVM_CMAKE_DIR})
+ 
+-    set(CMAKE_CXX_STANDARD 14)
++    set(CMAKE_CXX_STANDARD 17)
+     set(CMAKE_CXX_STANDARD_REQUIRED ON)
+ 
+     option(LLVMSPIRV_INCLUDED_IN_LLVM

diff --git a/dev-libs/opencl-clang/files/opencl-clang-16.0.0-llvm.patch 
b/dev-libs/opencl-clang/files/opencl-clang-16.0.0-llvm.patch
new file mode 100644
index 000000000000..67759595b353
--- /dev/null
+++ b/dev-libs/opencl-clang/files/opencl-clang-16.0.0-llvm.patch
@@ -0,0 +1,40 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -335,36 +335,7 @@
+ target_link_libraries( ${TARGET_NAME}
+                        LINK_PRIVATE
+                        ${OPENCL_CLANG_LINK_LIBS}
+-                       LLVMX86CodeGen
+-                       LLVMX86AsmParser
+-                       LLVMX86Desc
+-                       LLVMX86Info
+-                       LLVMX86Disassembler
+-                       LLVMAnalysis
+-                       LLVMCodeGen
+-                       LLVMCore
+-                       LLVMipo
+-                       LLVMInstCombine
+-                       LLVMInstrumentation
+-                       LLVMMC
+-                       LLVMMCParser
+-                       LLVMObjCARCOpts
+-                       LLVMOption
+-                       LLVMScalarOpts
+-                       LLVMSupport
+-                       LLVMTransformUtils
+-                       LLVMVectorize
+-                       LLVMAsmPrinter
+-                       LLVMSelectionDAG
+-                       LLVMMCDisassembler
+-                       LLVMProfileData
+-                       LLVMObject
+-                       LLVMBitWriter
+-                       LLVMIRReader
+-                       LLVMAsmParser
+-                       LLVMTarget
+-                       LLVMBitReader
+-                       ${OTHER_LIBRARIES}
++                       LLVM
+                       )
+ 
+ install(FILES opencl_clang.h

diff --git 
a/dev-libs/opencl-clang/files/opencl-clang-16.0.0-standalone-build.patch 
b/dev-libs/opencl-clang/files/opencl-clang-16.0.0-standalone-build.patch
new file mode 100644
index 000000000000..a85ec58df401
--- /dev/null
+++ b/dev-libs/opencl-clang/files/opencl-clang-16.0.0-standalone-build.patch
@@ -0,0 +1,26 @@
+From 529a9188114bcbd8ed753d2276942384fa50d7a1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <zatloukal.franti...@gmail.com>
+Date: Fri, 21 Apr 2023 04:07:21 +0200
+Subject: [PATCH] Fix standalone build (#415)
+
+Fixes https://github.com/intel/opencl-clang/issues/406
+Fixes https://github.com/intel/opencl-clang/issues/374
+---
+ cl_headers/CMakeLists.txt | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/cl_headers/CMakeLists.txt b/cl_headers/CMakeLists.txt
+index 788adff..86df76f 100644
+--- a/cl_headers/CMakeLists.txt
++++ b/cl_headers/CMakeLists.txt
+@@ -1,5 +1,9 @@
+ set(CL_HEADERS_LIB cl_headers)
+-set(CLANG_COMMAND $<TARGET_FILE:clang> )
++if(USE_PREBUILT_LLVM)
++    find_program(CLANG_COMMAND clang PATHS ${LLVM_TOOLS_BINARY_DIR} 
NO_DEFAULT_PATH)
++else()
++    set(CLANG_COMMAND $<TARGET_FILE:clang>)
++endif()
+ if(LLVM_USE_HOST_TOOLS AND NOT OPENCL_CLANG_BUILD_EXTERNAL)
+   build_native_tool(clang CLANG_COMMAND)
+ endif()

diff --git a/dev-libs/opencl-clang/opencl-clang-16.0.0.ebuild 
b/dev-libs/opencl-clang/opencl-clang-16.0.0.ebuild
new file mode 100644
index 000000000000..b902e1ab200f
--- /dev/null
+++ b/dev-libs/opencl-clang/opencl-clang-16.0.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LLVM_MAX_SLOT="16"
+
+inherit cmake llvm
+
+DESCRIPTION="OpenCL-oriented thin wrapper library around clang"
+HOMEPAGE="https://github.com/intel/opencl-clang";
+SRC_URI="https://github.com/intel/${PN}/archive/refs/tags/v${PV}.tar.gz -> 
${P}.tar.gz"
+S="${WORKDIR}/${PN}-${PV}"
+
+LICENSE="UoI-NCSA"
+SLOT="$(ver_cut 1)"
+KEYWORDS="~amd64"
+
+RDEPEND="
+       dev-util/spirv-llvm-translator:${SLOT}=
+       sys-devel/clang:${SLOT}=[static-analyzer]
+       sys-devel/llvm:${SLOT}=
+"
+
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-16.0.0-clang_library_dir.patch
+       "${FILESDIR}"/${PN}-16.0.0-cxx17.patch
+       "${FILESDIR}"/${PN}-16.0.0-llvm.patch
+       "${FILESDIR}"/${PN}-16.0.0-standalone-build.patch
+)
+
+src_configure() {
+       local mycmakeargs=(
+               -DCLANG_LIBRARY_DIRS="${EPREFIX}"/usr/lib
+               -DCMAKE_INSTALL_PREFIX="$(get_llvm_prefix ${LLVM_MAX_SLOT})"
+               -Wno-dev
+       )
+
+       cmake_src_configure
+}

Reply via email to