You've already forked macports-ports
mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
103 lines
3.9 KiB
Tcl
103 lines
3.9 KiB
Tcl
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
|
|
|
|
PortSystem 1.0
|
|
PortGroup github 1.0
|
|
|
|
github.setup pxb1988 dex2jar 2.1 v
|
|
github.tarball_from releases
|
|
maintainers nomaintainer
|
|
|
|
categories java devel
|
|
description Tools to work with android .dex and java .class files
|
|
long_description dex2jar contains 4 components:\n\
|
|
- dex-reader/writer: Read/write the Dalvik Executable (.dex) file.\n\
|
|
- d2j-dex2jar: Convert .dex file to .class files (zipped as jar)\n\
|
|
- smali/baksmali: disassemble dex to smali files and assemble dex from smali files.\n\
|
|
- other tools: d2j-decrypt-string
|
|
|
|
platforms any
|
|
supported_archs noarch
|
|
|
|
license Apache-2 BSD
|
|
|
|
use_zip yes
|
|
|
|
checksums rmd160 9e45f6d0860df2255090d25b0322092cecb85f5c \
|
|
sha256 7a9bdf843d43de4d1e94ec2e7b6f55825017b0c4a7ee39ff82660e2493a46f08 \
|
|
size 5641797
|
|
|
|
patchfiles patch-adjust-classpath.diff
|
|
post-patch {
|
|
# dex2jar does not expect to be installed, but to be run from its source
|
|
# directory. Since we put the binaries in $prefix/bin, they fail to find
|
|
# their *.jar archives (which would then be expected in $prefix/bin/lib).
|
|
# Reinplace $prefix to fix this. For the handling of the other tools, see
|
|
# below.
|
|
reinplace \
|
|
"s#\$APP_HOME/lib/#${prefix}/lib/dex2jar/#g" \
|
|
${worksrcpath}/bin/dex-tools
|
|
|
|
# All other shell scripts in dex2jar contain the same code that
|
|
# (incorrectly) discovers the classpath. The only difference is the class
|
|
# that is invoked as the entry point at the end. There is also one generic
|
|
# wrapper d2j_invoke.sh, that does not pass a class name. We patch
|
|
# d2j_invoke.sh, reinplce prefix, and overwrite all other scripts with
|
|
# a script that will just invoke d2j_invoke.sh with the correct class name.
|
|
reinplace -W ${worksrcpath} "s#@@PREFIX@@#${prefix}#g" d2j_invoke.sh
|
|
array set tools []
|
|
foreach filename [glob -directory ${worksrcpath} *.sh] {
|
|
if {[file tail $filename] eq "d2j_invoke.sh"} {
|
|
# Don't modify d2j_invoke.sh
|
|
continue
|
|
}
|
|
# But re-write all other tools as wrappers for d2j_invoke.sh
|
|
set fp [open ${filename} r]
|
|
set lines [split [read $fp] "\n"]
|
|
set last_line [lindex $lines end-1]
|
|
close $fp
|
|
# Example line: java -Xms512m -Xmx2048m -classpath "${_classpath}" "com.googlecode.d2j.jasmin.Jar2JasminCmd" "$@"
|
|
regexp "java .* -classpath \"\[^\"]+\" \"(com\\.googlecode\[^\"]+)\"" $last_line -> classname
|
|
set tools($filename) $classname
|
|
}
|
|
foreach filename [array names tools] {
|
|
set fp [open ${filename} w]
|
|
puts $fp "#!/bin/sh"
|
|
puts $fp "${prefix}/bin/d2j_invoke.sh \"$tools($filename)\" \"\$@\""
|
|
close $fp
|
|
}
|
|
}
|
|
|
|
use_configure no
|
|
build {}
|
|
destroot {
|
|
xinstall -m 0755 -W ${worksrcpath} \
|
|
d2j-apk-sign.sh \
|
|
d2j-asm-verify.sh \
|
|
d2j-baksmali.sh \
|
|
d2j-class-version-switch.sh \
|
|
d2j-decrypt-string.sh \
|
|
d2j-dex-recompute-checksum.sh \
|
|
d2j-dex-weaver.sh \
|
|
d2j-dex2jar.sh \
|
|
d2j-dex2smali.sh \
|
|
d2j-jar-access.sh \
|
|
d2j-jar-weaver.sh \
|
|
d2j-jar2dex.sh \
|
|
d2j-jar2jasmin.sh \
|
|
d2j-jasmin2jar.sh \
|
|
d2j-smali.sh \
|
|
d2j-std-apk.sh \
|
|
d2j_invoke.sh \
|
|
bin/dex-tools \
|
|
${destroot}${prefix}/bin
|
|
xinstall -m 0755 -d ${destroot}${prefix}/lib/dex2jar
|
|
xinstall -m 0644 -W ${worksrcpath}/lib \
|
|
{*}[glob -directory ${worksrcpath}/lib *] \
|
|
${destroot}${prefix}/lib/dex2jar
|
|
xinstall -m 0755 -d ${destroot}${prefix}/share/doc/dex2jar
|
|
xinstall -m 0644 -W ${worksrcpath} \
|
|
LICENSE.txt \
|
|
NOTICE.txt \
|
|
${destroot}${prefix}/share/doc/dex2jar
|
|
}
|