summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-util/intel-graphics-compiler/Manifest1
-rw-r--r--dev-util/intel-graphics-compiler/intel-graphics-compiler-1.0.8365.ebuild81
2 files changed, 82 insertions, 0 deletions
diff --git a/dev-util/intel-graphics-compiler/Manifest b/dev-util/intel-graphics-compiler/Manifest
index 420b17b3c1fb..588e100ac8ca 100644
--- a/dev-util/intel-graphics-compiler/Manifest
+++ b/dev-util/intel-graphics-compiler/Manifest
@@ -2,3 +2,4 @@ DIST intel-graphics-compiler-1.0.4111.tar.gz 5781246 BLAKE2B 6fe47422b31b0c73d24
DIST intel-graphics-compiler-1.0.4944.tar.gz 6632351 BLAKE2B a3d72730b8c10fd3810fdb8206d9d92da325a094627b678bb9f8d0941e29c1697994a2d98a1b49780fae62dc421e623dea4c3a7e3061347de5f5b644cfb5e105 SHA512 34fafd5387f3b86bef17511015ff1e8daef75ebdff5d1d14ff2000b58968bb502a9ec1aee988858a2992414f6cdb222e7de19c2d877f7fc8cd84a79417e9a85e
DIST intel-graphics-compiler-1.0.5353.tar.gz 6642256 BLAKE2B 34b80b30f33dbd57bcea15852c80cdf8bdbf4630a7904946c7ce84481789e7db42f5216ba14140d445e9b0adbfcfe224468e462ea27768f0e8d31525ce56cde1 SHA512 e9f20e2261c5cb79d365d5d8257e8f4830b2364962c48413cc80154469db34c1c844ae5d576cbce2e3c5e5cbe22c7c3710ebd0a7fe7208e5412e81ce20077c80
DIST intel-graphics-compiler-1.0.8173.tar.gz 7471884 BLAKE2B 2248a8d5f23d4578c5bd04a799af65767916b3705e16a8145149794a2cf16e5a0e16c21669336151a241cc52e7672b05eb892ac4925f2c2d0b22673af4ebf67f SHA512 bebccee0699dea48e98ddcdb320cacacda0cdcd36b68e51d932791756b0a8e2171a78cc1921ca2a092b9fe7dbd7a783d4898ada08c58bf856dd29bfc08334fa0
+DIST intel-graphics-compiler-1.0.8365.tar.gz 7509633 BLAKE2B ffe18d18b409db36bd24215d841daaa36d5055d61b9021e385fe9178351b6a92383839e271a12d1e5017150b9697060fe37f803c5153d2f107813aeb2e7a74cf SHA512 6597afbab2c101d69e6a991b5b065ebbded7ccc6227c0ed82b6b0bd33fec26489c30a0a7a9558617578a767ca6d7382a6ab36144f4c64df742c6bd545ce991e9
diff --git a/dev-util/intel-graphics-compiler/intel-graphics-compiler-1.0.8365.ebuild b/dev-util/intel-graphics-compiler/intel-graphics-compiler-1.0.8365.ebuild
new file mode 100644
index 000000000000..b504e2949b3c
--- /dev/null
+++ b/dev-util/intel-graphics-compiler/intel-graphics-compiler-1.0.8365.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+PYTHON_COMPAT=( python{3_9,3_10} )
+LLVM_MAX_SLOT=10
+
+inherit cmake flag-o-matic llvm python-any-r1
+
+DESCRIPTION="LLVM-based OpenCL compiler targetting Intel Gen graphics hardware"
+HOMEPAGE="https://github.com/intel/intel-graphics-compiler"
+SRC_URI="https://github.com/intel/${PN}/archive/igc-${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}"/${PN}-igc-${PV}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="debug"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=sys-devel/lld-${LLVM_MAX_SLOT}
+"
+
+# Yes, the last dependency does effectively force the use of llvm-10
+# - there are currently no SLOT=9 ebuilds of opencl-clang with mem2reg
+# support. Of course with there being no SLOT=9 ebuilds of vc-intrinsics
+# (which we'll need soon as well) at all either we are limited to llvm-10 anyway.
+DEPEND="
+ <=sys-devel/llvm-${LLVM_MAX_SLOT}.9999:=
+ <=dev-libs/opencl-clang-${LLVM_MAX_SLOT}.9999:=
+ >=dev-libs/opencl-clang-12.0.0:=
+"
+
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.0.9-no_Werror.patch"
+ "${FILESDIR}/${PN}-1.0.8173-opencl-clang_version.patch"
+ "${FILESDIR}/${PN}-1.0.8173-fix-missing-limits.patch"
+)
+
+find_best_llvm_slot() {
+ local candidate_slot
+
+ # Select the same slot as the best opencl-clang
+ local ocl_clang_ver="$(best_version -d dev-libs/opencl-clang:=)"
+ einfo "Selecting ${ocl_clang_ver}"
+ candidate_slot=$(ver_cut 5 ${ocl_clang_ver})
+
+ # Sanity check - opencl-clang brings the right LLVM slot as its
+ # dependency so if this is missing, something is very wrong.
+ has_version -d sys-devel/llvm:${candidate_slot} || die "LLVM slot matching ${ocl_clang_ver} not found (${candidate_slot})"
+
+ echo ${candidate_slot}
+}
+
+src_configure() {
+ local llvm_slot=$(find_best_llvm_slot)
+ einfo "Selecting LLVM slot ${llvm_slot}: $(best_version -d sys-devel/llvm:${llvm_slot})"
+ local llvm_prefix=$(get_llvm_prefix ${llvm_slot})
+ local llvm_ver=$(best_version -d sys-devel/llvm:${llvm_slot})
+ llvm_ver=${llvm_ver##*-}
+
+ # Since late March 2020 cmake.eclass does not set -DNDEBUG any more, and the way
+ # IGC uses this definition causes problems for some users (see Bug #718824).
+ use debug || append-cppflags -DNDEBUG
+
+ # VectorCompiler needs work, at the moment upstream only supports building vc-intrinsics in place.
+ local mycmakeargs=(
+ -DCCLANG_SONAME_VERSION=${llvm_slot}
+ -DCMAKE_LIBRARY_PATH="${llvm_prefix}"/$(get_libdir)
+ -DIGC_OPTION__FORCE_SYSTEM_LLVM=ON
+ -DIGC_PREFERRED_LLVM_VERSION=${llvm_ver}
+ -DIGC_BUILD__VC_ENABLED=no
+ )
+
+ cmake_src_configure
+}