diff options
author | amano.kenji <amano.kenji@proton.me> | 2023-02-02 12:16:53 +0000 |
---|---|---|
committer | amano.kenji <amano.kenji@proton.me> | 2023-02-02 12:16:53 +0000 |
commit | 78362dcc305297b6b7be0f32c664775bcbb10398 (patch) | |
tree | 909b892c088e831dbdb1c920a949b0d6fc7e664f /eclass | |
parent | app-doc/ford: disable py3.11 (diff) | |
download | guru-78362dcc305297b6b7be0f32c664775bcbb10398.tar.gz guru-78362dcc305297b6b7be0f32c664775bcbb10398.tar.bz2 guru-78362dcc305297b6b7be0f32c664775bcbb10398.zip |
Add rakudo.eclass and dev-raku/*
rakudo.eclass requires install-dist.raku installed by a modified version
of dev-lang/rakudo. Gentoo overlay's dev-lang/rakudo doesn't install
install-dist.raku.
rakudo.eclass is minimal and elegant. dev-raku/* packages depend on
rakudo.eclass.
Signed-off-by: amano.kenji <amano.kenji@proton.me>
Diffstat (limited to 'eclass')
-rw-r--r-- | eclass/rakudo.eclass | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/eclass/rakudo.eclass b/eclass/rakudo.eclass new file mode 100644 index 000000000..5d5119e98 --- /dev/null +++ b/eclass/rakudo.eclass @@ -0,0 +1,55 @@ +# Copyright 2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# @ECLASS: rakudo.eclass +# @MAINTAINER: +# amano.kenji <amano.kenji@proton.me> +# @BLURB: An eclass for raku modules + +EXPORT_FUNCTIONS src_compile src_install src_test + +# @ECLASS_VARIABLE: rakudo_test_deps +# @DESCRIPTION: +# Packages that shouldn't run tests with dev-raku/App-Prove6 +# @INTERNAL +declare -A rakudo_test_deps +rakudo_test_deps[dev-raku/App-Prove6]=1 +rakudo_test_deps[dev-raku/Getopt-Long]=1 +rakudo_test_deps[dev-raku/TAP]=1 + +if [ ${rakudo_test_deps[${CATEGORY}/${PN}]} ]; then + BDEPEND="dev-lang/rakudo:=" +else + BDEPEND="dev-lang/rakudo:= + test? ( dev-raku/App-Prove6 )" + IUSE="test" + RESTRICT="!test? ( test )" +fi +RDEPEND="dev-lang/rakudo:=" + +# @FUNCTION: rakudo_symlink_bin +# @USAGE: <executable-in-/usr/share/perl6/vendor/bin> +# @DESCRIPTION: +# Make a symlink to /usr/share/perl6/vendor/bin/executable in /usr/bin +rakudo_symlink_bin() { + dosym "/usr/share/perl6/vendor/bin/$1" "/usr/bin/$1" || die +} + +rakudo_src_compile() { + env RAKUDO_RERESOLVE_DEPENDENCIES=0 \ + /usr/share/perl6/core/tools/install-dist.raku --only-build --from=. \ + || die +} + +rakudo_src_install() { + einstalldocs + env RAKUDO_RERESOLVE_DEPENDENCIES=0 \ + /usr/share/perl6/core/tools/install-dist.raku \ + --to="${D}/usr/share/perl6/vendor" --for=vendor --from=. --build=False \ + || die +} + +rakudo_src_test() { + [ ${rakudo_test_deps[${CATEGORY}/${PN}]} ] && return + prove6 --lib t/ || die +} |