# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit desktop edo java-pkg-2 multiprocessing xdg DESCRIPTION="DEX to Java decompiler" HOMEPAGE="https://github.com/skylot/jadx" SRC_URI="https://github.com/skylot/jadx/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" LICENSE="Apache-2.0" LICENSE+=" BSD EPL-1.0 LGPL-3+ MIT OFL-1.1" SLOT="0" KEYWORDS="~amd64" IUSE="+build-online" RESTRICT="test build-online? ( network-sandbox )" # Gradle 9 needs a JDK 17+ to run; cap at 21, newer JDKs break # the build scripts of some gradle-bin versions. DEPEND="|| ( virtual/jdk:21 virtual/jdk:17 )" RDEPEND=">=virtual/jre-11" BDEPEND=" >=dev-java/gradle-bin-9.6 dev-java/java-config " DOCS=( README.md SECURITY.md ) src_compile() { local -x JADX_VERSION="${PV}" local -x JAVA_HOME="$(java-config --jdk-home || die)" local -x HOME="${T}/home" # some JVMs take user.home from the passwd database instead of $HOME: # pin it for the gradle client, the kotlin daemon and friends local -x JAVA_TOOL_OPTIONS="-Duser.home=${HOME}" mkdir -p "${HOME}" || die einfo "Using JAVA_HOME: ${JAVA_HOME}" edo gradle \ --no-daemon \ --no-watch-fs \ --gradle-user-home="${T}/gradle" \ --parallel --max-workers="$(get_makeopts_jobs)" \ :jadx-gui:shadowJar } src_install() { local jar="jadx-gui/build/libs/jadx-gui-${PV}-all.jar" java-pkg_newjar "${jar}" "jadx-${PV}-all.jar" java-pkg_dolauncher "jadx" --main "jadx.cli.JadxCLI" java-pkg_dolauncher "jadx-gui" --main "jadx.gui.JadxGUI" local logo="jadx-gui/src/main/resources/logos/jadx-logo" newicon -s 16 "${logo}-16px.png" "${PN}.png" newicon -s 32 "${logo}-32px.png" "${PN}.png" newicon -s 48 "${logo}-48px.png" "${PN}.png" # the logo is 252px, too big for a 256x256 hicolor entry: install it # as a scalable icon instead newicon "${logo}.png" "${PN}.png" domenu "contrib/jadx-gui.desktop" einstalldocs } pkg_postinst() { xdg_icon_cache_update xdg_desktop_database_update } pkg_postrm() { xdg_icon_cache_update xdg_desktop_database_update }