gentoo/dev-java/protobuf-java/protobuf-java-3.21.9-r1.ebuild
Sam James d41ee9df53
dev-java/protobuf-java: Stabilize 3.21.9-r1 x86, #879971
Signed-off-by: Sam James <sam@gentoo.org>
2023-01-05 07:58:15 +00:00

99 lines
2.9 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Copyright 2008-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
JAVA_PKG_IUSE="doc source test"
MAVEN_ID="com.google.protobuf:protobuf-java:3.21.9"
# Tests not enabled, depend on com.google.truth which is not packaged
# https://github.com/protocolbuffers/protobuf/blob/v21.9/java/core/pom.xml#L35-L40
# JAVA_TESTING_FRAMEWORKS="junit-4"
inherit edo java-pkg-2 java-pkg-simple
PARENT_PN="${PN/-java/}"
PARENT_PV="$(ver_cut 2-)"
PARENT_P="${PARENT_PN}-${PARENT_PV}"
PARENT_SUBSLOT="32"
DESCRIPTION="Google's Protocol Buffers - Java bindings"
HOMEPAGE="https://developers.google.com/protocol-buffers/"
SRC_URI="
https://github.com/protocolbuffers/protobuf/archive/v${PARENT_PV}.tar.gz
-> ${PARENT_P}.tar.gz
"
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 ~arm ~arm64 ppc64 x86 ~amd64-linux ~x86-linux ~x64-macos"
DEPEND="
>=virtual/jdk-1.8:*
test? (
dev-java/guava:0
dev-java/mockito:4
)
"
RDEPEND=">=virtual/jre-1.8:*"
BDEPEND="dev-libs/protobuf:0/${PARENT_SUBSLOT}"
S="${WORKDIR}/${PARENT_P}/java"
JAVA_AUTOMATIC_MODULE_NAME="com.google.protobuf"
JAVA_JAR_FILENAME="protobuf.jar"
JAVA_RESOURCE_DIRS="core/src/main/resources"
JAVA_SRC_DIR="core/src/main/java"
JAVA_TEST_GENTOO_CLASSPATH="guava,junit-4,mockito-4"
JAVA_TEST_RESOURCE_DIRS="../src"
JAVA_TEST_SRC_DIR="core/src/test/java"
# Same than PATCHES but from repository's root directory,
# please see function `src_prepare` below.
# Simplier for users IMHO.
PARENT_PATCHES=(
)
# Here for patches within "java/" subdirectory.
PATCHES=(
)
src_prepare() {
pushd "${WORKDIR}/${PARENT_P}" > /dev/null || die
[[ -n "${PARENT_PATCHES[@]}" ]] && eapply "${PARENT_PATCHES[@]}"
eapply_user
popd > /dev/null || die
# Same than default without the eapply_user part, this last is kept
# for the parent directory.
# It looks like function java-pkg-2_src_prepare doesnt call "default".
[[ -n "${PATCHES[@]}" ]] && eapply "${PATCHES[@]}"
# Remove bundled jars
java-pkg_clean
java-pkg-2_src_prepare
# There is also compiler/plugin, but not in this list because in a subdirectory
core_protos=( any api descriptor duration empty field_mask source_context struct timestamp type wrappers )
# Copy resources from ../src/google/protobuf according to
# https://github.com/protocolbuffers/protobuf/blob/v21.9/java/core/pom.xml#L45-L61
mkdir -p "${JAVA_RESOURCE_DIRS}/google/protobuf/compiler" || die
local core_proto
for core_proto in "${core_protos[@]}"; do
cp "../src/google/protobuf/${core_proto}.proto" \
"${JAVA_RESOURCE_DIRS}/google/protobuf" \
|| die
done
cp {../src,"${JAVA_RESOURCE_DIRS}"}/google/protobuf/compiler/plugin.proto || die
# Generate 146 .java files according to
# https://github.com/protocolbuffers/protobuf/blob/v21.9/java/core/generate-sources-build.xml
for core_proto in "${core_protos[@]}" compiler/plugin; do
edo "${BROOT}/usr/bin/protoc" \
--java_out="${JAVA_SRC_DIR}" -I../src ../src/google/protobuf/"${core_proto}".proto
done
}