forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Package-Manager: Portage-2.3.100, Repoman-2.3.22 Signed-off-by: Patrick Lauer <[email protected]>
- Loading branch information
1 parent
a576f1a
commit d75d396
Showing
2 changed files
with
161 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,3 +1,4 @@ | ||
DIST nqp-2019.03.official.tar.gz 3951058 BLAKE2B 237b8cc0105396fc96349a0dd34502ab45fb7d02089dd2ef5aad2554610b4090adf11679271869e5ae06abfa509210959ae8762fbee30dfe6190d6a74ce32591 SHA512 248768c1b1c0f5e5bd19183404e2a1aa28ab488b05db0b1ed0f0bcceca8b9830885762e763ea38cdd2b54d975d2663e1defe236907096aabc5b668818d293533 | ||
DIST nqp-2019.07.1.tar.gz 3937612 BLAKE2B 71f5ddadaa70d7eeadc122ef50f90c13bf7e3a1a4262069ee8564f739e99dfb780359e1155a28f61f90dd1cc419379e366d7274c9567a4319bd841005c3a51a9 SHA512 90c9cfbc3de165ba8c0b4653a849a6faafef9e3862743c3675277c25bc4578522a97a663a4ed7529831fa0b617c7412fcfe67b3e3ff1fc5994f6c42cdf7a4bc5 | ||
DIST nqp-2019.11.tar.gz 3942494 BLAKE2B 241c4131fc94d7055b51a44b7be824fb53a00fc51370f59dcba1d92655de66e2db536c622084bf9466d9d753d5ad804411b4af07b2767ad1a4f09e065c6693f8 SHA512 3b9fea9d9c4d2ae2ca065536bcca5b483067f9e723c3a89c7e238199c0f52ea6ba23ae4429dacbd42bea69dccbbc836efe5046d1691185d5452f30912f4e6a40 | ||
DIST nqp-2020.05.tar.gz 3945402 BLAKE2B d73bb5cf5dcd2f0e0d42928fb12382428355f3c19bbcd015950c2a9e49ab73c215ce8ce21f3686283866c387823f1cbb3ba8179de8f7a66dca43afae94a45a42 SHA512 a60e9bcf9ef8d4c0492cc193893d398d0c62a114e829375ac9a7601336bc2cc820b8f486b10f8b647302d473f3e85ebd13559d4089d38ef6c95b0b7e8778c5cd |
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,160 @@ | ||
# Copyright 1999-2020 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=7 | ||
|
||
inherit java-pkg-opt-2 multibuild | ||
|
||
if [[ ${PV} == "9999" ]]; then | ||
EGIT_REPO_URI="https://github.com/perl6/${PN}.git" | ||
inherit git-r3 | ||
KEYWORDS="" | ||
else | ||
SRC_URI="https://github.com/perl6/${PN}/releases/download/${PV}/${P}.tar.gz" | ||
KEYWORDS="~amd64 ~x86" | ||
fi | ||
|
||
DESCRIPTION="Not Quite Perl, a Perl 6 bootstrapping compiler" | ||
HOMEPAGE="https://rakudo.org" | ||
|
||
LICENSE="Artistic-2" | ||
SLOT="0" | ||
IUSE="doc clang java +moar test" | ||
RESTRICT="!test? ( test )" | ||
REQUIRED_USE="|| ( java moar )" | ||
|
||
CDEPEND="java? ( | ||
dev-java/asm:4 | ||
dev-java/jline:0 | ||
dev-java/jna:4 | ||
) | ||
moar? ( ~dev-lang/moarvm-${PV}[clang=] )" | ||
RDEPEND="${CDEPEND} | ||
java? ( >=virtual/jre-1.8 )" | ||
DEPEND="${CDEPEND}" | ||
BDEPEND="${CDEPEND} | ||
clang? ( sys-devel/clang ) | ||
java? ( >=virtual/jdk-1.8 ) | ||
dev-lang/perl" | ||
|
||
pkg_pretend() { | ||
if has_version dev-lang/rakudo || has_version dev-lang/nqp; then | ||
ewarn "NQP is known to fail compilation/installation with Rakudo and/or NQP" | ||
ewarn "already being installed. So if it fails, try uninstalling both" | ||
ewarn "dev-lang/nqp and dev-lang/rakudo, then do a new installation." | ||
ewarn "(see Bug #584394)" | ||
fi | ||
} | ||
|
||
java_prepare() { | ||
# Don't clean stage0 jars. | ||
einfo "Cleaning upstream jars" | ||
java-pkg_clean 3rdparty/ | ||
|
||
# Don't use jars we just deleted. | ||
sed -i -r 's/(:3rdparty[^:]*)+/:${THIRDPARTY_JARS}/g' \ | ||
src/vm/jvm/runners/nqp-j || die | ||
} | ||
|
||
src_prepare() { | ||
MULTIBUILD_VARIANTS=() | ||
use moar && MULTIBUILD_VARIANTS+=( moar ) | ||
use java && MULTIBUILD_VARIANTS+=( jvm ) | ||
|
||
multibuild_copy_sources | ||
|
||
# This will pull in conditional java_prepare | ||
default | ||
} | ||
|
||
nqp_configure() { | ||
pushd "${BUILD_DIR}" > /dev/null || die | ||
local myconfargs=( | ||
"--backend=${MULTIBUILD_VARIANT}" | ||
"--prefix=${EPREFIX}/usr" ) | ||
|
||
perl Configure.pl "${myconfargs[@]}" || die | ||
popd || die | ||
} | ||
|
||
nqp_compile() { | ||
if [[ "${MULTIBUILD_VARIANT}" = jvm ]]; then | ||
emake -j1 \ | ||
-C "${BUILD_DIR}" \ | ||
THIRDPARTY_JARS=$(java-pkg_getjars --with-dependencies asm-4,jline,jna-4) \ | ||
JAVAC="$(java-pkg_get-javac) $(java-pkg_javac-args)" | ||
elif [[ "${MULTIBUILD_VARIANT}" = moar ]]; then | ||
emake -j1 \ | ||
-C "${BUILD_DIR}" | ||
fi | ||
} | ||
|
||
nqp_test() { | ||
emake -j1 \ | ||
-C "${BUILD_DIR}" \ | ||
test | ||
} | ||
|
||
nqp_install() { | ||
# This is the actual reason we need multibuild.eclass. | ||
# We need to distinguish the install procedure for MoarVM and JVM backends. | ||
case "${MULTIBUILD_VARIANT}" in | ||
moar) | ||
emake \ | ||
DESTDIR="${ED}" \ | ||
-C "${BUILD_DIR}" \ | ||
install | ||
;; | ||
jvm) | ||
pushd "${BUILD_DIR}" > /dev/null || die | ||
# Set JAVA_PKG_JARDEST early. | ||
java-pkg_init_paths_ | ||
|
||
# Upstream sets the classpath to this location. Perhaps it's | ||
# used to locate the additional libraries? | ||
java-pkg_addcp "${JAVA_PKG_JARDEST}" | ||
|
||
insinto "${JAVA_PKG_JARDEST}" | ||
local jar | ||
|
||
for jar in *.jar; do | ||
if has ${jar} ${PN}.jar ${PN}-runtime.jar; then | ||
# jars for NQP itself. | ||
java-pkg_dojar ${jar} | ||
else | ||
# jars used by NQP. | ||
doins ${jar} | ||
fi | ||
done | ||
|
||
# Upstream uses -Xbootclasspath/a, which is faster due to lack | ||
# of verification, but gjl isn't flexible enough yet. :( | ||
java-pkg_dolauncher ${PN}-j --main ${PN} | ||
dosym ${PN}-j /usr/bin/${PN} | ||
dobin tools/jvm/eval-client.pl | ||
popd > /dev/null || die | ||
;; | ||
*) | ||
die "Unknown MULTIBUILD_VARIANT ${MULTIBUILD_VARIANT}." | ||
;; | ||
esac | ||
} | ||
|
||
src_configure() { | ||
multibuild_foreach_variant nqp_configure | ||
} | ||
|
||
src_compile() { | ||
multibuild_foreach_variant nqp_compile | ||
} | ||
|
||
src_test() { | ||
multibuild_foreach_variant nqp_test | ||
} | ||
|
||
src_install() { | ||
multibuild_foreach_variant nqp_install | ||
|
||
dodoc CREDITS README.pod | ||
use doc && dodoc -r docs/* | ||
} |