| #!/bin/bash |
| # |
| # Support functions for building ProGuard. |
| |
| SRC=src |
| OUT=out |
| LIB=../lib |
| |
| TARGET=1.8 |
| |
| PROGUARD_JAR=$LIB/proguard.jar |
| RETRACE_JAR=$LIB/retrace.jar |
| PROGUARD_GUI_JAR=$LIB/proguardgui.jar |
| ANNOTATIONS_JAR=$LIB/annotations.jar |
| |
| set -o pipefail |
| |
| function download { |
| if [ ! -f "$2" ]; then |
| echo "Downloading $2..." |
| mkdir -p $(dirname "$2") && \ |
| if type wget > /dev/null 2>&1; then |
| wget -O "$2" "$1" |
| else |
| curl -L -o "$2" "$1" |
| fi |
| fi |
| } |
| |
| function compile { |
| echo "Compiling $(basename $PWD) ($1)..." |
| mkdir -p "$OUT" && \ |
| |
| # Compile Java source files. |
| find $SRC -name '_*.java' -o -path "$SRC/${1//.//}.java" \ |
| | xargs --no-run-if-empty \ |
| javac -nowarn -Xlint:none \ |
| -source $TARGET -target $TARGET \ |
| -sourcepath "$SRC" -d "$OUT" \ |
| ${2:+-classpath "$2"} 2>&1 \ |
| | sed -e 's|^| |' || return 1 |
| |
| # Compile Kotlin source files. |
| #find $SRC -path "$SRC/${1//.//}.kotlin" \ |
| #| xargs --no-run-if-empty \ |
| # kotlinc -nowarn -jvm-target $TARGET \ |
| # -d "$OUT" \ |
| # ${2:+-classpath "$2"} 2>&1 \ |
| #| sed -e 's|^| |' || return 1 |
| |
| # Compile Groovy source files. |
| find $SRC -path "$SRC/${1//.//}.groovy" \ |
| | xargs --no-run-if-empty \ |
| groovyc \ |
| -sourcepath "$SRC" -d "$OUT" \ |
| ${2:+-classpath "$2"} 2>&1 \ |
| | sed -e 's|^| |' || return 1 |
| |
| # Copy resource files. |
| (cd "$SRC" && \ |
| find \ |
| \( -name \*.properties -o -name \*.png -o -name \*.gif -o -name \*.pro \) \ |
| -exec cp --parents {} "../$OUT" \; ) |
| } |
| |
| function createjar { |
| echo "Creating $1..." |
| DIRS=$(ls "$OUT" | sed -e "s|^|-C $OUT |") |
| mkdir -p $(dirname "$1") && \ |
| if [ -f "$SRC/META-INF/MANIFEST.MF" ]; then |
| jar -cfm "$1" "$SRC/META-INF/MANIFEST.MF" $DIRS |
| else |
| jar -cf "$1" $DIRS |
| fi |
| } |
| |
| function updatejar { |
| echo "Updating $1..." |
| DIRS=$(ls "$OUT" | sed -e "s|^|-C $OUT |") |
| if [ -f "$SRC/META-INF/MANIFEST.MF" ]; then |
| jar -ufm "$1" "$SRC/META-INF/MANIFEST.MF" $DIRS |
| else |
| jar -uf "$1" $DIRS |
| fi |
| } |