forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Michał Górny <[email protected]>
- Loading branch information
Showing
2 changed files
with
198 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,4 @@ | ||
DIST llvm-project-1f26ac10ca1bef40a80be8f81a6f109713bc586f.tar.gz 226424755 BLAKE2B 642befb8d6923f335d1d68129ebb7357f8ba22e110df494dd956c8097e4e5db4b2a88fcc069ab67184b03558f072c68e002bdaf90eba865e38b1473a0ef29eed SHA512 e9bb4fd31bbad5ec864c662515b5ec2e5511cce975040f9f3cd8f009c92f76077928feae0467fd9519a001a379c857f7539c506953d8d5a9209a9f358f414aac | ||
DIST llvm-project-20.1.0-rc1.src.tar.xz 147144668 BLAKE2B ea4733962f38ea5897c73e91840818921739909c3671749bc8a0b1d2798e5a0815bbe750ade3a2a7414836ab7158754818b2f9370a4ee1bbbd52c96b1e95ef9b SHA512 c23c4b1227b6b0b7c3059358e64a00ee98893236bb1a0a41d7e821bdf2aa8353aea8f9f7b9498899c6807b9b8e2ceb06c3cd62e32fd07a786a319135055541b4 | ||
DIST llvm-project-20.1.0-rc1.src.tar.xz.sig 566 BLAKE2B 32eb278ec4ff1bb9d258b584922b0d227f4126a957ba75af44dcaa63b6a12ef73db56d6a86f24244af47803ddf6a243149d784f08137cbea60b49700be537705 SHA512 d7a334326201f8ca78284b33c325f180538667a0401bc30931e790aacc96dd78f6559c45929b6c335d40ef1dbe772738c0ce55d881ae3d7401733778b485408c | ||
DIST llvm-project-bfa7edcc6652bdb37d53e0cec64926aab3f280eb.tar.gz 226735989 BLAKE2B 165837dc526e618b44c49d5fa3dceda373452e010a09746bff248903fe77874637d05ab9f5d2f63de7ebce5c14e3b19a131313a4a557adfd20fe9cb93ab60476 SHA512 e9e19176fcf1302727ee34d69eaa820b94959d64ceaf754d8a93ebd5e262cec7fe35e87b08f705b09e42c3ea26b671318eecf10e9137c635b12f481f80fbac23 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,196 @@ | ||
# Copyright 1999-2025 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=8 | ||
|
||
PYTHON_COMPAT=( python3_{10..13} ) | ||
inherit cmake llvm.org multilib-minimal python-any-r1 | ||
|
||
DESCRIPTION="Multi-Level Intermediate Representation (library only)" | ||
HOMEPAGE="https://mlir.llvm.org/" | ||
|
||
LICENSE="Apache-2.0-with-LLVM-exceptions" | ||
SLOT="${LLVM_MAJOR}/${LLVM_SOABI}" | ||
IUSE="+debug test" | ||
RESTRICT="!test? ( test )" | ||
|
||
DEPEND=" | ||
~llvm-core/llvm-${PV}[debug=,${MULTILIB_USEDEP}] | ||
" | ||
RDEPEND=" | ||
${DEPEND} | ||
" | ||
BDEPEND=" | ||
${PYTHON_DEPS} | ||
llvm-core/llvm:${LLVM_MAJOR} | ||
test? ( | ||
$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') | ||
) | ||
" | ||
|
||
LLVM_COMPONENTS=( mlir cmake ) | ||
# tablegen tests use *.td files there | ||
LLVM_TEST_COMPONENTS=( llvm/include ) | ||
llvm.org_set_globals | ||
|
||
python_check_deps() { | ||
if use test; then | ||
python_has_version "dev-python/lit[${PYTHON_USEDEP}]" | ||
fi | ||
} | ||
|
||
src_prepare() { | ||
llvm.org_src_prepare | ||
|
||
# https://github.com/llvm/llvm-project/issues/120902 | ||
sed -i -e '/LINK_LIBS/s:PUBLIC:PRIVATE:' \ | ||
lib/ExecutionEngine/CMakeLists.txt || die | ||
} | ||
|
||
check_distribution_components() { | ||
if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then | ||
local all_targets=() my_targets=() l | ||
cd "${BUILD_DIR}" || die | ||
|
||
while read -r l; do | ||
if [[ ${l} == install-*-stripped:* ]]; then | ||
l=${l#install-} | ||
l=${l%%-stripped*} | ||
|
||
case ${l} in | ||
# meta-targets | ||
mlir-libraries|distribution) | ||
continue | ||
;; | ||
# dylib | ||
MLIR) | ||
;; | ||
# static libraries | ||
MLIR*) | ||
continue | ||
;; | ||
esac | ||
|
||
all_targets+=( "${l}" ) | ||
fi | ||
done < <(${NINJA} -t targets all) | ||
|
||
while read -r l; do | ||
my_targets+=( "${l}" ) | ||
done < <(get_distribution_components $"\n") | ||
|
||
local add=() remove=() | ||
for l in "${all_targets[@]}"; do | ||
if ! has "${l}" "${my_targets[@]}"; then | ||
add+=( "${l}" ) | ||
fi | ||
done | ||
for l in "${my_targets[@]}"; do | ||
if ! has "${l}" "${all_targets[@]}"; then | ||
remove+=( "${l}" ) | ||
fi | ||
done | ||
|
||
if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then | ||
eqawarn "get_distribution_components() is outdated!" | ||
eqawarn " Add: ${add[*]}" | ||
eqawarn "Remove: ${remove[*]}" | ||
fi | ||
cd - >/dev/null || die | ||
fi | ||
} | ||
|
||
get_distribution_components() { | ||
local sep=${1-;} | ||
|
||
local out=( | ||
mlir-cmake-exports | ||
mlir-headers | ||
|
||
# the dylib | ||
MLIR | ||
|
||
# shared libraries | ||
mlir_arm_runner_utils | ||
mlir_arm_sme_abi_stubs | ||
mlir_async_runtime | ||
mlir_c_runner_utils | ||
mlir_float16_utils | ||
mlir_runner_utils | ||
) | ||
|
||
if multilib_is_native_abi; then | ||
out+=( | ||
# tools | ||
mlir-linalg-ods-yaml-gen | ||
mlir-lsp-server | ||
mlir-opt | ||
mlir-pdll | ||
mlir-pdll-lsp-server | ||
mlir-query | ||
mlir-reduce | ||
mlir-rewrite | ||
mlir-runner | ||
mlir-tblgen | ||
mlir-translate | ||
tblgen-lsp-server | ||
tblgen-to-irdl | ||
) | ||
fi | ||
|
||
printf "%s${sep}" "${out[@]}" | ||
} | ||
|
||
multilib_src_configure() { | ||
local mycmakeargs=( | ||
-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}" | ||
-DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}" | ||
|
||
-DBUILD_SHARED_LIBS=OFF | ||
# this controls building libMLIR.so | ||
-DLLVM_BUILD_LLVM_DYLIB=ON | ||
-DMLIR_BUILD_MLIR_C_DYLIB=OFF | ||
-DMLIR_LINK_MLIR_DYLIB=ON | ||
-DMLIR_INCLUDE_TESTS=$(usex test) | ||
-DMLIR_INCLUDE_INTEGRATION_TESTS=OFF | ||
-DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components) | ||
# this enables installing mlir-tblgen and mlir-pdll | ||
-DLLVM_BUILD_UTILS=ON | ||
|
||
-DPython3_EXECUTABLE="${PYTHON}" | ||
|
||
-DLLVM_BUILD_TOOLS=ON | ||
# TODO | ||
-DMLIR_ENABLE_CUDA_RUNNER=0 | ||
-DMLIR_ENABLE_ROCM_RUNNER=0 | ||
-DMLIR_ENABLE_SYCL_RUNNER=0 | ||
-DMLIR_ENABLE_SPIRV_CPU_RUNNER=0 | ||
-DMLIR_ENABLE_VULKAN_RUNNER=0 | ||
-DMLIR_ENABLE_BINDINGS_PYTHON=0 | ||
-DMLIR_INSTALL_AGGREGATE_OBJECTS=OFF | ||
) | ||
use test && mycmakeargs+=( | ||
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" | ||
-DLLVM_LIT_ARGS="$(get_lit_flags)" | ||
) | ||
|
||
# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 | ||
use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" | ||
cmake_src_configure | ||
|
||
multilib_is_native_abi && check_distribution_components | ||
} | ||
|
||
multilib_src_compile() { | ||
cmake_build distribution | ||
} | ||
|
||
multilib_src_test() { | ||
# respect TMPDIR! | ||
local -x LIT_PRESERVES_TMP=1 | ||
cmake_build check-mlir | ||
} | ||
|
||
multilib_src_install() { | ||
DESTDIR=${D} cmake_build install-distribution | ||
} |