X-Git-Url: https://git.distorted.org.uk/~mdw/termux-packages/blobdiff_plain/382cfb780ca9a40f80e3932544bd32aeccb66e5a..f60546e03fdef40d0d4fa055b196799ad9d8de14:/packages/dx/build.sh diff --git a/packages/dx/build.sh b/packages/dx/build.sh index a225d132..21961495 100755 --- a/packages/dx/build.sh +++ b/packages/dx/build.sh @@ -1,22 +1,29 @@ TERMUX_PKG_HOMEPAGE=http://developer.android.com/tools/help/index.html TERMUX_PKG_DESCRIPTION="Command which takes in class files and reformulates them for usage on Android" TERMUX_PKG_VERSION=$TERMUX_ANDROID_BUILD_TOOLS_VERSION +TERMUX_PKG_REVISION=1 TERMUX_PKG_PLATFORM_INDEPENDENT=true termux_step_make_install () { - # As of build tools 24 the dx tool is implemented using java 8, but - # as dx itself does not support java 8 (class file format 52) - # we go the .class -> jill -> jack route. - local DX_JACK=$TERMUX_PKG_TMPDIR/dx.jack - java -jar $TERMUX_JILL \ - --output=$DX_JACK \ - $ANDROID_HOME/build-tools/${TERMUX_PKG_VERSION}/lib/dx.jar - java -jar $TERMUX_JACK \ - --output-dex $TERMUX_PKG_TMPDIR \ - --import $DX_JACK + # Rewrite packages to avoid using com.android.* classes which may clash with + # classes in the Android runtime on devices (see #1801): + local JARJAR=$TERMUX_PKG_CACHEDIR/jarjar.jar + local RULEFILE=$TERMUX_PKG_TMPDIR/jarjar-rule.txt + local REWRITTEN_DX=$TERMUX_PKG_TMPDIR/dx-rewritten.jar + termux_download \ + http://central.maven.org/maven2/com/googlecode/jarjar/jarjar/1.3/jarjar-1.3.jar \ + $JARJAR \ + 4225c8ee1bf3079c4b07c76fe03c3e28809a22204db6249c9417efa4f804b3a7 + echo 'rule com.android.** dx.@1' > $RULEFILE + java -jar $JARJAR process $RULEFILE \ + $ANDROID_HOME/build-tools/${TERMUX_PKG_VERSION}/lib/dx.jar \ + $REWRITTEN_DX - mkdir -p $TERMUX_PREFIX/share/dex - mv $TERMUX_PKG_TMPDIR/classes.dex $TERMUX_PREFIX/share/dex/dx.dex + # Dex the rewritten jar file: + mkdir -p $TERMUX_PREFIX/share/dex + $TERMUX_DX --dex \ + --output $TERMUX_PREFIX/share/dex/dx.dex \ + $REWRITTEN_DX install $TERMUX_PKG_BUILDER_DIR/dx $TERMUX_PREFIX/bin/dx perl -p -i -e "s%\@TERMUX_PREFIX\@%${TERMUX_PREFIX}%g" $TERMUX_PREFIX/bin/dx