llvm-runtimes/flang-rt: Add a split package for Flang runtime

Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
Michał Górny
2025-02-24 13:54:57 +01:00
parent 5d70eb1ba8
commit bfd4bcd64e
4 changed files with 155 additions and 0 deletions

View File

@@ -0,0 +1 @@
DIST llvm-project-581599096e8a1a89ccd3e053a1209c69a9079083.tar.gz 227830555 BLAKE2B 28a04dd5ce96716d389fe049c4b877f55d6e5cad5c77d8867dd7e3a448213ef413e4f4d7d5f77b0702b26a8eb25f53e08d90e2a5a97eaa3f89245531d9f6626d SHA512 d775aea9bf71d60673e966a689ff6b933afecab2c133a1f64a158551ba9db049221148eab5087bab0ce0ff917456b85fb4ea4d7284886326f54617d167a385a5

View File

@@ -0,0 +1,72 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake flag-o-matic llvm.org
DESCRIPTION="LLVM's Fortran runtime"
HOMEPAGE="https://flang.llvm.org/"
LICENSE="Apache-2.0-with-LLVM-exceptions"
SLOT="${LLVM_MAJOR}"
IUSE="+debug test"
RESTRICT="!test? ( test )"
RDEPEND="
!<llvm-core/flang-21.0.0_pre20250221-r1
"
BDEPEND="
llvm-core/llvm:${LLVM_MAJOR}
llvm-core/flang
test? (
dev-python/lit
)
"
LLVM_COMPONENTS=(
runtimes flang-rt cmake flang llvm/{cmake,utils/llvm-lit}
)
llvm.org_set_globals
src_configure() {
# the code is not portable
local -x FC=flang F77=flang
strip-unsupported-flags
local mycmakeargs=(
# we may not have a runtime yet
-DCMAKE_Fortran_COMPILER_WORKS=TRUE
-DLLVM_ENABLE_RUNTIMES="flang-rt"
# this package forces NO_DEFAULT_PATHS
-DLLVM_BINARY_DIR="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
-DFLANG_RT_INCLUDE_TESTS=$(usex test)
)
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
}
src_test() {
# respect TMPDIR!
local -x LIT_PRESERVES_TMP=1
cmake_build check-flang-rt
}
src_install() {
cmake_src_install
# in standalone build, the library is installed to (incorrect) resource dir
# but the driver only looks for it in lib (sigh)
# https://github.com/llvm/llvm-project/issues/127538
mkdir -p "${ED}/usr/lib/llvm/${LLVM_MAJOR}" || die
mv "${ED}/usr/$(get_libdir)/clang/${LLVM_MAJOR}/lib"/* \
"${ED}/usr/lib/llvm/${LLVM_MAJOR}/lib" || die
}

View File

@@ -0,0 +1,72 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake flag-o-matic llvm.org
DESCRIPTION="LLVM's Fortran runtime"
HOMEPAGE="https://flang.llvm.org/"
LICENSE="Apache-2.0-with-LLVM-exceptions"
SLOT="${LLVM_MAJOR}"
IUSE="+debug test"
RESTRICT="!test? ( test )"
RDEPEND="
!<llvm-core/flang-21.0.0_pre20250221-r1
"
BDEPEND="
llvm-core/llvm:${LLVM_MAJOR}
llvm-core/flang
test? (
dev-python/lit
)
"
LLVM_COMPONENTS=(
runtimes flang-rt cmake flang llvm/{cmake,utils/llvm-lit}
)
llvm.org_set_globals
src_configure() {
# the code is not portable
local -x FC=flang F77=flang
strip-unsupported-flags
local mycmakeargs=(
# we may not have a runtime yet
-DCMAKE_Fortran_COMPILER_WORKS=TRUE
-DLLVM_ENABLE_RUNTIMES="flang-rt"
# this package forces NO_DEFAULT_PATHS
-DLLVM_BINARY_DIR="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
-DFLANG_RT_INCLUDE_TESTS=$(usex test)
)
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
}
src_test() {
# respect TMPDIR!
local -x LIT_PRESERVES_TMP=1
cmake_build check-flang-rt
}
src_install() {
cmake_src_install
# in standalone build, the library is installed to (incorrect) resource dir
# but the driver only looks for it in lib (sigh)
# https://github.com/llvm/llvm-project/issues/127538
mkdir -p "${ED}/usr/lib/llvm/${LLVM_MAJOR}" || die
mv "${ED}/usr/$(get_libdir)/clang/${LLVM_MAJOR}/lib"/* \
"${ED}/usr/lib/llvm/${LLVM_MAJOR}/lib" || die
}

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>llvm@gentoo.org</email>
</maintainer>
<upstream>
<remote-id type="github">llvm/llvm-project</remote-id>
</upstream>
</pkgmetadata>