You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
3.2 KiB
104 lines
3.2 KiB
# Copyright 1999-2022 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
JAVA_PKG_IUSE="doc source test"
|
|
MAVEN_ID="org.antlr:ST4:4.3.2"
|
|
JAVA_TESTING_FRAMEWORKS="junit-4"
|
|
|
|
inherit java-pkg-2 java-pkg-simple
|
|
|
|
DESCRIPTION="A Java template engine"
|
|
HOMEPAGE="https://www.stringtemplate.org/"
|
|
# Maven Central sources JAR for *.java sources pre-generated from *.g files;
|
|
# the source generation requires antlr-tool-3.5, which depends on this package.
|
|
# Tarball for the test suite and DOCS files
|
|
SRC_URI="
|
|
https://repo1.maven.org/maven2/org/antlr/ST4/${PV}/ST4-${PV}-sources.jar
|
|
https://github.com/antlr/${PN}4/archive/${PV}.tar.gz -> ${P}.tar.gz
|
|
"
|
|
|
|
LICENSE="BSD"
|
|
SLOT="4"
|
|
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
|
|
|
CP_DEPEND="
|
|
dev-java/antlr-runtime:3.5
|
|
"
|
|
|
|
BDEPEND="
|
|
app-arch/unzip
|
|
"
|
|
|
|
DEPEND="
|
|
>=virtual/jdk-1.8:*
|
|
${CP_DEPEND}
|
|
test? (
|
|
dev-java/antlr-tool:3.5
|
|
)
|
|
"
|
|
|
|
RDEPEND="
|
|
>=virtual/jre-1.8:*
|
|
${CP_DEPEND}
|
|
"
|
|
|
|
S="${WORKDIR}"
|
|
TARBALL_S="${S}/${PN}4-${PV}"
|
|
|
|
JAVA_SRC_DIR="org"
|
|
|
|
JAVA_TEST_GENTOO_CLASSPATH="junit-4,antlr-tool-3.5"
|
|
JAVA_TEST_SRC_DIR="${TARBALL_S}/test"
|
|
JAVA_TEST_RESOURCE_DIRS=( "${TARBALL_S}/test/resources" )
|
|
|
|
DOCS=( "${TARBALL_S}/"{CHANGES.txt,README.md} )
|
|
|
|
src_prepare() {
|
|
# Do not call java-pkg_clean; otherwise, it would remove
|
|
# ${TARBALL_S}/test/test.jar, which is merely used as a
|
|
# test resource file, does not contain any *.class files,
|
|
# and is required to pass the tests as of version 4.3.2
|
|
pushd "${TARBALL_S}" > /dev/null ||
|
|
die "Failed to enter directory storing tarball contents"
|
|
eapply "${FILESDIR}/${PN}-4.3.1-BaseTest-javac-source-target.patch"
|
|
popd > /dev/null ||
|
|
die "Failed to leave directory storing tarball contents"
|
|
java-pkg-2_src_prepare
|
|
# Some of these tests requires a graphical display.
|
|
rm -v "${JAVA_TEST_SRC_DIR}/org/stringtemplate/v4/test/TestEarlyEvaluation.java" || die
|
|
}
|
|
|
|
src_test() {
|
|
# Make sure no older versions of this slot are present in the classpath
|
|
# https://bugs.gentoo.org/834138#c4
|
|
local old_ver_cp="$(nonfatal java-pkg_getjars "${PN}-${SLOT}")"
|
|
local new_test_cp="$(\
|
|
java-pkg_getjars --with-dependencies "${JAVA_TEST_GENTOO_CLASSPATH}")"
|
|
new_test_cp="${new_test_cp//"${old_ver_cp}"/}"
|
|
|
|
# Some of the test cases require an absolute path to the JAR being tested
|
|
# against to be in the classpath, due to the fact that they call the 'java'
|
|
# command outside ${S} and reuse the classpath for the tests:
|
|
# https://github.com/antlr/stringtemplate4/blob/4.3.1/test/org/stringtemplate/v4/test/TestImports.java#L103
|
|
# https://github.com/antlr/stringtemplate4/blob/4.3.1/test/org/stringtemplate/v4/test/BaseTest.java#L174
|
|
new_test_cp="${S}/${JAVA_JAR_FILENAME}:${new_test_cp}"
|
|
|
|
# The JAR used as a test resource file needs to be in the classpath
|
|
# https://github.com/antlr/stringtemplate4/blob/4.3.2/pom.xml#L53-L58
|
|
new_test_cp+=":${JAVA_TEST_SRC_DIR}/test.jar"
|
|
|
|
# Use JAVA_GENTOO_CLASSPATH_EXTRA to set test classpath
|
|
local JAVA_TEST_GENTOO_CLASSPATH=""
|
|
[[ -n "${JAVA_GENTOO_CLASSPATH_EXTRA}" ]] &&
|
|
JAVA_GENTOO_CLASSPATH_EXTRA+=":"
|
|
JAVA_GENTOO_CLASSPATH_EXTRA+="${new_test_cp}"
|
|
java-pkg-simple_src_test
|
|
}
|
|
|
|
src_install() {
|
|
java-pkg-simple_src_install
|
|
einstalldocs # https://bugs.gentoo.org/789582
|
|
}
|