diff options
author | V3n3RiX <venerix@koprulu.sector> | 2022-10-26 03:54:55 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2022-10-26 03:54:55 +0100 |
commit | 2ecd7994be1409f2a65bfca700904d2a78fd7bbe (patch) | |
tree | 0248ea4d4f411ea88c27470c15ebc725bb04baa1 /dev-java/protobuf-java/protobuf-java-9999.ebuild | |
parent | c22e93ab35a8cb604c41623a7b2cda059c462b70 (diff) |
gentoo auto-resync : 26:10:2022 - 03:54:55
Diffstat (limited to 'dev-java/protobuf-java/protobuf-java-9999.ebuild')
-rw-r--r-- | dev-java/protobuf-java/protobuf-java-9999.ebuild | 103 |
1 files changed, 77 insertions, 26 deletions
diff --git a/dev-java/protobuf-java/protobuf-java-9999.ebuild b/dev-java/protobuf-java/protobuf-java-9999.ebuild index 43fa605b496c..ab4856250e05 100644 --- a/dev-java/protobuf-java/protobuf-java-9999.ebuild +++ b/dev-java/protobuf-java/protobuf-java-9999.ebuild @@ -3,52 +3,103 @@ EAPI=8 -JAVA_PKG_IUSE="doc source" +JAVA_PKG_IUSE="doc source test" +# Version based on value in (java/)core/pom.xml from main branch +# Please update me when new release +# Maybe find a way to automatically change it? +MAVEN_ID="com.google.protobuf:${PN}:3.21.7" +# Tests not enabled, depend on com.google.truth which is not packaged +# https://github.com/protocolbuffers/protobuf/blob/v21.7/java/core/pom.xml#L35-L40 +# JAVA_TESTING_FRAMEWORKS="junit-4" inherit java-pkg-2 java-pkg-simple -if [[ "${PV}" == "9999" ]]; then +PARENT_PN="${PN/-java/}" +PARENT_PV="${PV}" +PARENT_P="${PARENT_PN}-${PARENT_PV}" + +if [[ "${PV}" == *9999 ]]; then inherit git-r3 - EGIT_CHECKOUT_DIR="${WORKDIR}/protobuf-${PV}" - EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf" + EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" EGIT_SUBMODULES=() + EGIT_CHECKOUT_DIR="${WORKDIR}/${PARENT_P}" +else + SRC_URI=" + https://github.com/protocolbuffers/protobuf/archive/v${PARENT_PV}.tar.gz + -> ${PARENT_P}.tar.gz + " + KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux ~x64-macos" fi DESCRIPTION="Google's Protocol Buffers - Java bindings" -HOMEPAGE="https://developers.google.com/protocol-buffers/ https://github.com/protocolbuffers/protobuf" -if [[ "${PV}" == "9999" ]]; then - SRC_URI="" -else - SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> protobuf-${PV}.tar.gz" -fi -S="${WORKDIR}/protobuf-${PV}/java" +HOMEPAGE=" + https://developers.google.com/protocol-buffers/ +" LICENSE="BSD" -SLOT="0/31" -KEYWORDS="" +SLOT="0/32" + +S="${WORKDIR}/${PARENT_P}/java" -COMMON_DEPEND=">=virtual/jdk-1.8:*" BDEPEND=" - ~dev-libs/protobuf-${PV} - ${COMMON_DEPEND} + dev-libs/protobuf:${SLOT} +" +DEPEND=" + >=virtual/jdk-1.8:* + test? ( + dev-java/guava:0 + dev-java/mockito:4 + ) +" +RDEPEND=" + >=virtual/jre-1.8:* " -DEPEND="${COMMON_DEPEND}" -RDEPEND="${DEPEND}" + +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}/protobuf-${PV}" > /dev/null || die + pushd "${WORKDIR}/${PARENT_P}" > /dev/null || die + [[ -n "${PARENT_PATCHES[@]}" ]] && eapply "${PARENT_PATCHES[@]}" eapply_user popd > /dev/null || die + # Remove bundled jars + java-pkg_clean + java-pkg-2_src_prepare -} -src_compile() { - "${BROOT}/usr/bin/protoc" --java_out=core/src/main/java -I../src ../src/google/protobuf/descriptor.proto || die - JAVA_SRC_DIR="core/src/main/java" JAVA_JAR_FILENAME="protobuf.jar" java-pkg-simple_src_compile -} + # 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.7/java/core/pom.xml#L45-L61 + mkdir -p "${JAVA_RESOURCE_DIRS}/google/protobuf/compiler" || die + cp "../src/google/protobuf/${core_protos[@]}.proto" \ + "${JAVA_RESOURCE_DIRS}/google/protobuf" || die + cp {../src,"${JAVA_RESOURCE_DIRS}"}/google/protobuf/compiler/plugin.proto || die -src_install() { - JAVA_SRC_DIR="core/src/main/java" JAVA_JAR_FILENAME="protobuf.jar" java-pkg-simple_src_install + # Generate 146 .java files according to + # https://github.com/protocolbuffers/protobuf/blob/v21.7/java/core/generate-sources-build.xml + for proto in "${core_protos[@]}" compiler/plugin; do + "${BROOT}/usr/bin/protoc" \ + --java_out="${JAVA_SRC_DIR}" -I../src ../src/google/protobuf/"${proto}".proto || die + done } |