commit:     39372a4db9860d0d5fabdb3365bea4f720835734
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 15 15:41:51 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Feb 15 15:43:54 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=39372a4d

llvm-core/flang: New package, 21.0.0.9999

Add a new live ebuild for Flang, the LLVM Fortran compiler.  It mostly
works, except that it can't find its own runtime library (missing -L)
and fails a few tests (probably related to the above).

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

 llvm-core/flang/flang-21.0.0.9999.ebuild | 63 ++++++++++++++++++++++++++++++++
 llvm-core/flang/metadata.xml             | 10 +++++
 metadata/stabilization-groups/llvm.group |  1 +
 3 files changed, 74 insertions(+)

diff --git a/llvm-core/flang/flang-21.0.0.9999.ebuild 
b/llvm-core/flang/flang-21.0.0.9999.ebuild
new file mode 100644
index 000000000000..e450d0105fb5
--- /dev/null
+++ b/llvm-core/flang/flang-21.0.0.9999.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake llvm.org
+
+DESCRIPTION="LLVM's Fortran frontend"
+HOMEPAGE="https://flang.llvm.org/";
+
+LICENSE="Apache-2.0-with-LLVM-exceptions"
+SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
+IUSE="+debug test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+       ~llvm-core/clang-${PV}[debug=]
+       ~llvm-core/llvm-${PV}[debug=]
+       ~llvm-core/mlir-${PV}[debug=]
+"
+RDEPEND="
+       ${DEPEND}
+"
+BDEPEND="
+       test? (
+               dev-python/lit
+       )
+"
+
+LLVM_COMPONENTS=( flang cmake )
+LLVM_TEST_COMPONENTS=( mlir/test/lib )
+llvm.org_set_globals
+
+src_configure() {
+       local mycmakeargs=(
+               -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
+               -DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
+               -DCLANG_RESOURCE_DIR="../../../clang/${LLVM_MAJOR}"
+
+               -DBUILD_SHARED_LIBS=OFF
+               -DMLIR_LINK_MLIR_DYLIB=ON
+               # flang does not feature a dylib, so do not install libraries
+               # or headers
+               -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON
+
+               # TODO: always enable to obtain reproducible tools
+               -DFLANG_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
+}

diff --git a/llvm-core/flang/metadata.xml b/llvm-core/flang/metadata.xml
new file mode 100644
index 000000000000..072910296ca3
--- /dev/null
+++ b/llvm-core/flang/metadata.xml
@@ -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>[email protected]</email>
+       </maintainer>
+       <upstream>
+               <remote-id type="github">llvm/llvm-project</remote-id>
+       </upstream>
+</pkgmetadata>

diff --git a/metadata/stabilization-groups/llvm.group 
b/metadata/stabilization-groups/llvm.group
index 004abf04fd78..da4563d40bfd 100644
--- a/metadata/stabilization-groups/llvm.group
+++ b/metadata/stabilization-groups/llvm.group
@@ -8,6 +8,7 @@ llvm-core/mlir
 llvm-core/clang-common
 llvm-core/clang
 llvm-core/clang-toolchain-symlinks
+llvm-core/flang
 dev-python/clang
 dev-python/lit
 llvm-core/lld

Reply via email to