mirror of
https://github.com/Guardsquare/proguard.git
synced 2026-03-13 09:50:34 +08:00
86 lines
1.9 KiB
Bash
Executable File
86 lines
1.9 KiB
Bash
Executable File
#!/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
|
|
}
|