3 |
3 |
|
4 |
4 |
EAPI=8
|
5 |
5 |
|
6 |
|
PYTHON_COMPAT=( python3_{9..10} )
|
|
6 |
PYTHON_COMPAT=( python3_{9..11} )
|
7 |
7 |
inherit flag-o-matic cmake-multilib linux-info llvm llvm.org python-any-r1
|
8 |
8 |
|
9 |
9 |
DESCRIPTION="OpenMP runtime library for LLVM/clang compiler"
|
10 |
10 |
HOMEPAGE="https://openmp.llvm.org"
|
11 |
11 |
|
12 |
12 |
LICENSE="Apache-2.0-with-LLVM-exceptions || ( UoI-NCSA MIT )"
|
13 |
|
SLOT="0"
|
14 |
|
KEYWORDS="amd64 arm arm64 ~ppc ppc64 ~riscv x86 ~amd64-linux ~x64-macos"
|
|
13 |
SLOT="0/${LLVM_SOABI}"
|
|
14 |
KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv x86 ~amd64-linux ~x64-macos"
|
15 |
15 |
IUSE="
|
16 |
|
cuda debug hwloc offload ompt test
|
|
16 |
debug hwloc offload ompt test
|
17 |
17 |
llvm_targets_AMDGPU llvm_targets_NVPTX
|
18 |
18 |
"
|
19 |
19 |
RESTRICT="!test? ( test )"
|
20 |
|
# CUDA works only with the x86_64 ABI
|
21 |
|
REQUIRED_USE="
|
22 |
|
cuda? ( llvm_targets_NVPTX )
|
23 |
|
offload? ( cuda? ( abi_x86_64 ) )
|
24 |
|
"
|
25 |
20 |
|
26 |
21 |
RDEPEND="
|
27 |
22 |
hwloc? ( >=sys-apps/hwloc-2.5:0=[${MULTILIB_USEDEP}] )
|
... | ... | |
29 |
24 |
virtual/libelf:=[${MULTILIB_USEDEP}]
|
30 |
25 |
dev-libs/libffi:=[${MULTILIB_USEDEP}]
|
31 |
26 |
~sys-devel/llvm-${PV}[${MULTILIB_USEDEP}]
|
32 |
|
cuda? ( dev-util/nvidia-cuda-toolkit:= )
|
|
27 |
llvm_targets_AMDGPU? ( dev-libs/rocr-runtime:= )
|
33 |
28 |
)
|
34 |
29 |
"
|
35 |
30 |
# tests:
|
... | ... | |
52 |
47 |
)
|
53 |
48 |
"
|
54 |
49 |
|
55 |
|
LLVM_COMPONENTS=( openmp llvm/include )
|
56 |
|
LLVM_PATCHSET=${PV}-r2
|
|
50 |
LLVM_COMPONENTS=( openmp cmake llvm/include )
|
|
51 |
LLVM_PATCHSET=15.0.7-r2
|
57 |
52 |
llvm.org_set_globals
|
58 |
53 |
|
59 |
54 |
python_check_deps() {
|
... | ... | |
78 |
73 |
}
|
79 |
74 |
|
80 |
75 |
pkg_setup() {
|
81 |
|
use offload && LLVM_MAX_SLOT=${PV%%.*} llvm_pkg_setup
|
|
76 |
use offload && LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
|
82 |
77 |
use test && python-any-r1_pkg_setup
|
83 |
78 |
}
|
84 |
79 |
|
... | ... | |
107 |
102 |
if use offload; then
|
108 |
103 |
if has "${CHOST%%-*}" aarch64 powerpc64le x86_64; then
|
109 |
104 |
mycmakeargs+=(
|
110 |
|
-DCMAKE_DISABLE_FIND_PACKAGE_CUDA=$(usex !cuda)
|
111 |
|
-DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=$(usex llvm_targets_AMDGPU)
|
112 |
|
-DLIBOMPTARGET_BUILD_NVPTX_BCLIB=$(usex llvm_targets_NVPTX)
|
113 |
|
# a cheap hack to force clang
|
114 |
|
-DLIBOMPTARGET_NVPTX_CUDA_COMPILER="$(type -P "${CHOST}-clang")"
|
115 |
|
# upstream defaults to looking for it in clang dir
|
116 |
|
# this fails when ccache is being used
|
117 |
|
-DLIBOMPTARGET_NVPTX_BC_LINKER="$(type -P llvm-link)"
|
|
105 |
-DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=$(usex llvm_targets_AMDGPU)
|
|
106 |
-DLIBOMPTARGET_BUILD_CUDA_PLUGIN=$(usex llvm_targets_NVPTX)
|
118 |
107 |
)
|
119 |
108 |
else
|
120 |
109 |
mycmakeargs+=(
|
121 |
|
-DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON
|
122 |
|
-DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=OFF
|
123 |
|
-DLIBOMPTARGET_BUILD_NVPTX_BCLIB=OFF
|
|
110 |
-DLIBOMPTARGET_BUILD_AMDGPU_PLUGIN=OFF
|
|
111 |
-DLIBOMPTARGET_BUILD_CUDA_PLUGIN=OFF
|
124 |
112 |
)
|
125 |
113 |
fi
|
126 |
114 |
fi
|