commit:     2deea4a4414f5d1af10b75db9af8993e6dd4b053
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 17 18:53:28 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jul 17 18:54:11 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2deea4a4

sci-libs/mkl: Make threading dependencies optional

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 sci-libs/mkl/metadata.xml            | 11 +++++++++++
 sci-libs/mkl/mkl-2025.2.0.628.ebuild | 30 ++++++++++++++++++++----------
 2 files changed, 31 insertions(+), 10 deletions(-)

diff --git a/sci-libs/mkl/metadata.xml b/sci-libs/mkl/metadata.xml
index 1c12a7532045..7c1ec87f2a58 100644
--- a/sci-libs/mkl/metadata.xml
+++ b/sci-libs/mkl/metadata.xml
@@ -16,4 +16,15 @@
        <upstream>
                <remote-id type="github">oneapi-src/oneMKL</remote-id>
        </upstream>
+       <use>
+               <flag name="gnu-openmp">
+                       Install versions with GNU OpenMP (libgomp) support.
+               </flag>
+               <flag name="llvm-openmp">
+                       Install versions with LLVM OpenMP (libomp) support.
+               </flag>
+               <flag name="tbb">
+                       Install versions with TBB threading support.
+               </flag>
+       </use>
 </pkgmetadata>

diff --git a/sci-libs/mkl/mkl-2025.2.0.628.ebuild 
b/sci-libs/mkl/mkl-2025.2.0.628.ebuild
index 404e25d249b2..535f09f3d155 100644
--- a/sci-libs/mkl/mkl-2025.2.0.628.ebuild
+++ b/sci-libs/mkl/mkl-2025.2.0.628.ebuild
@@ -20,7 +20,7 @@ S="${WORKDIR}"
 LICENSE="ISSL"
 SLOT="0"
 KEYWORDS="~amd64"
-IUSE="examples static-libs"
+IUSE="examples gnu-openmp llvm-openmp static-libs tbb"
 RESTRICT="strip"
 
 # MKL uses Intel/LLVM OpenMP by default.
@@ -29,8 +29,9 @@ RESTRICT="strip"
 RDEPEND="
        app-eselect/eselect-blas
        app-eselect/eselect-lapack
-       dev-cpp/tbb
-       llvm-runtimes/openmp
+       gnu-openmp? ( sys-devel/gcc:*[openmp] )
+       llvm-openmp? ( llvm-runtimes/openmp )
+       tbb? ( dev-cpp/tbb )
 "
 # bug #801460
 BDEPEND="
@@ -53,11 +54,20 @@ src_install() {
        if ! use examples; then
                rm -rv 
"opt/intel/oneapi/mkl/${PN_VER}"/share/{mkl/benchmarks,doc/mkl/examples} || die
        fi
-
-       # Replace Intel OpenMP with LLVM OpenMP
-       sed -e '/Requires: openmp/d' \
-               -e '/Libs:/s:$: -lomp:' \
-               -i "${libroot}"/pkgconfig/*iomp.pc || die
+       if ! use gnu-openmp; then
+               rm -v "${libroot}"/{*_gnu_thread.*,pkgconfig/*-gomp.pc} || die
+       fi
+       if use llvm-openmp; then
+               # Replace Intel OpenMP with LLVM OpenMP
+               sed -e '/Requires: openmp/d' \
+                       -e '/Libs:/s:$: -lomp:' \
+                       -i "${libroot}"/pkgconfig/*iomp.pc || die
+       else
+               rm -v "${libroot}"/{*_intel_thread.*,pkgconfig/*-iomp.pc} || die
+       fi
+       if ! use tbb; then
+               rm -v "${libroot}"/{*_tbb_thread.*,pkgconfig/*-tbb.pc} || die
+       fi
 
        # Symlink pkgconfig and cmake files
        pushd "${libroot}/pkgconfig" >/dev/null || die
@@ -96,8 +106,8 @@ src_install() {
                # we need to duplicate it in ROOTPATH for Portage to respect...
                ROOTPATH="${EPREFIX}/opt/intel/oneapi/mkl/${PN_VER}/bin"
                LDPATH="${EPREFIX}/opt/intel/oneapi/mkl/${PN_VER}/lib"
-               # Default to GNU threading -- we do not package Intel OpenMP
-               MKL_THREADING_LAYER=gnu
+               # Override default threading -- we do not package Intel OpenMP
+               MKL_THREADING_LAYER=$(usex gnu-openmp gnu $(usex tbb tbb seq))
        _EOF_
 }
 

Reply via email to