blob: a70d684dd533cf3b7a06200f626214a3043031c5 [file] [log] [blame]
#!/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
}