summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-java/javacup/javacup-0.11b_p20151001.ebuild')
-rw-r--r--dev-java/javacup/javacup-0.11b_p20151001.ebuild19
1 files changed, 17 insertions, 2 deletions
diff --git a/dev-java/javacup/javacup-0.11b_p20151001.ebuild b/dev-java/javacup/javacup-0.11b_p20151001.ebuild
index ad8742f2b4c4..b44a0da26d9e 100644
--- a/dev-java/javacup/javacup-0.11b_p20151001.ebuild
+++ b/dev-java/javacup/javacup-0.11b_p20151001.ebuild
@@ -48,8 +48,23 @@ src_configure() {
}
src_compile() {
- einfo "Bootstrapping with bundled javacup ..."
- EANT_GENTOO_CLASSPATH_EXTRA+=":${S}/bin/${MY_P:0:-1}.jar" eant
+ # Annoyingly javacup bundles an older version of itself that will
+ # break jflex if that has already been built against this newer
+ # version beforehand. Even more annoyingly, the binary download is
+ # built with Java 8, which isn't much use to us. We therefore use
+ # any installed javacup that is newer than the bundled version where
+ # possible. If this approach turns out to be unworkable then we may
+ # just have to use the bundled jflex for bootstrapping.
+ if has_version \>=${CATEGORY}/${PN}-0.11b:${SLOT}; then
+ # Use PORTAGE_QUIET to suppress a QA warning that is spurious
+ # thanks to has_version above. This is Portage-specific but
+ # showing the warning elsewhere isn't the end of the world.
+ einfo "Bootstrapping with installed javacup ..."
+ EANT_GENTOO_CLASSPATH_EXTRA+=":$(PORTAGE_QUIET=1 java-pkg_getjars --build-only javacup)" eant
+ else
+ einfo "Bootstrapping with bundled javacup ..."
+ EANT_GENTOO_CLASSPATH_EXTRA+=":${S}/bin/${MY_P:0:-1}.jar" eant
+ fi
# Clean everything except the new jar.
rm -rv java/ classes/ || die