Diff dry-struct-1.6.0 with a flang-22.0.0_pre20250722

/usr/portage/llvm-core/flang/flang-22.0.0_pre20250722.ebuild 2025-07-29 16:22:14.320455286 +0300
2 2
# Distributed under the terms of the GNU General Public License v2
3 3

  
4 4
EAPI=8
5
USE_RUBY="ruby31 ruby32 ruby33"
6 5

  
7
RUBY_FAKEGEM_BINWRAP=""
8
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
6
PYTHON_COMPAT=( python3_{11..14} )
7
inherit cmake flag-o-matic llvm.org python-any-r1 toolchain-funcs
9 8

  
10
RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
9
DESCRIPTION="LLVM's Fortran frontend"
10
HOMEPAGE="https://flang.llvm.org/"
11 11

  
12
RUBY_FAKEGEM_GEMSPEC="dry-struct.gemspec"
12
LICENSE="Apache-2.0-with-LLVM-exceptions"
13
SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
14
IUSE="+clang +debug test"
15
RESTRICT="!test? ( test )"
16

  
17
DEPEND="
18
	~llvm-core/clang-${PV}[debug=]
19
	~llvm-core/llvm-${PV}[debug=]
20
	~llvm-core/mlir-${PV}[debug=]
21
"
22
RDEPEND="
23
	${DEPEND}
24
"
25
PDEPEND="
26
	>=llvm-runtimes/flang-rt-${PV}:${LLVM_MAJOR}
27
"
28
BDEPEND="
29
	clang? ( llvm-core/clang )
30
	test? (
31
		$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
32
	)
33
"
13 34

  
14
inherit ruby-fakegem
35
LLVM_COMPONENTS=( flang cmake )
36
LLVM_TEST_COMPONENTS=( clang/test/Driver mlir/test/lib )
37
LLVM_USE_TARGETS=llvm+eq
38
llvm.org_set_globals
15 39

  
16
DESCRIPTION="Typed structs and value objects"
40
python_check_deps() {
41
	python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
42
}
17 43

  
18
HOMEPAGE="https://dry-rb.org/gems/dry-struct/"
19
SRC_URI="https://github.com/dry-rb/dry-struct/archive/v${PV}.tar.gz -> ${P}.tar.gz"
20
LICENSE="MIT"
44
pkg_pretend() {
45
	if ! use clang && tc-is-gcc; then
46
		ewarn "Building using GCC requires lots of memory (up to 10 GiB per process)."
47
		ewarn "Consider enabling USE=clang."
48
		ewarn "See https://gcc.gnu.org/PR119705"
49
	fi
50
}
21 51

  
22
KEYWORDS="amd64 ~arm64 ~hppa ppc ppc64 sparc ~x86"
23
SLOT="$(ver_cut 1)"
24
IUSE="test"
52
pkg_setup() {
53
	use test && python-any-r1_pkg_setup
54
}
25 55

  
26
ruby_add_rdepend "
27
	dev-ruby/dry-core:1
28
	>=dev-ruby/dry-types-1.7:1
29
	>=dev-ruby/ice_nine-0.11:0
30
	>=dev-ruby/zeitwerk-2.6:2
31
"
56
src_configure() {
57
	if use clang; then
58
		# Only do this conditionally to allow overriding with
59
		# e.g. CC=clang-13 in case of breakage
60
		if ! tc-is-clang ; then
61
			local -x CC=${CHOST}-clang
62
			local -x CXX=${CHOST}-clang++
63
		fi
64

  
65
		strip-unsupported-flags
66
	fi
67

  
68
	local mycmakeargs=(
69
		-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
70

  
71
		-DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
72
		-DCLANG_RESOURCE_DIR="../../../clang/${LLVM_MAJOR}"
73

  
74
		-DBUILD_SHARED_LIBS=OFF
75
		-DMLIR_LINK_MLIR_DYLIB=ON
76
		# flang does not feature a dylib, so do not install libraries
77
		# or headers
78
		-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON
79
		# installed by llvm-runtimes/flang-rt
80
		-DFLANG_INCLUDE_RUNTIME=OFF
81

  
82
		# TODO: always enable to obtain reproducible tools
83
		-DFLANG_INCLUDE_TESTS=$(usex test)
84

  
85
		-DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
86
	)
87
	use test && mycmakeargs+=(
88
		-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
89
		-DLLVM_LIT_ARGS="$(get_lit_flags)"
90
	)
91

  
92
	# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
93
	use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
94
	cmake_src_configure
95
}
32 96

  
33
ruby_add_bdepend "test? (
34
	dev-ruby/dry-monads
35
	dev-ruby/dry-struct
36
	dev-ruby/warning
37
)"
38

  
39
all_ruby_prepare() {
40
	# Avoid broken spec, already fixed upstream.
41
	sed -e '/with Test::User/ s/context/xcontext/' \
42
		-e '/with Test::SuperUSer/ s/context/xcontext/' \
43
		-i spec/extensions/pretty_print_spec.rb || die
97
src_test() {
98
	# respect TMPDIR!
99
	local -x LIT_PRESERVES_TMP=1
100
	cmake_build check-flang
44 101
}
Thank you!