Archived
43 lines
1.8 KiB
Bash
Executable File
43 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")"
|
|
mkdir -p build/classes build/logs build/libs
|
|
ROOT="$(pwd)"
|
|
TDLM_ROOT="$(cd "$ROOT/../.." && pwd)"
|
|
CP="${CP:-}"
|
|
if [ -z "$CP" ]; then
|
|
CP_ENTRIES=()
|
|
for jar in \
|
|
"$TDLM_ROOT/modsource/CodeChickenCore/build/rfg/srg_merged_minecraft.jar" \
|
|
"$TDLM_ROOT/modsource/CodeChickenCore/build/rfg/recompiled_minecraft-1.7.10.jar" \
|
|
"$TDLM_ROOT/modsource/IndustrialCraft2/build/rfg/srg_patched_minecraft-classes.jar"; do
|
|
[ -f "$jar" ] && CP_ENTRIES+=("$jar")
|
|
done
|
|
for dir in "$TDLM_ROOT/Uranium/build/bundle/libraries" "$TDLM_ROOT/Uranium-server-run/libraries" "$TDLM_ROOT/Uranium-server-run/mods" "$TDLM_ROOT/client/mods" "$TDLM_ROOT/_downloaded-deps" "$TDLM_ROOT/modsource/ImmersiveEngineering/externalLibs" "$TDLM_ROOT/modsource/CodeChickenCore/run/client/mods" "$TDLM_ROOT/modsource/CodeChickenCore/run/mods" "$TDLM_ROOT/modsource/Mekanism-Community-Edition/libs" "$TDLM_ROOT/modsource/ExtraBotany/libs"; do
|
|
if [ -d "$dir" ]; then
|
|
while IFS= read -r jar; do
|
|
case "$jar" in
|
|
*-deobf.jar) continue ;;
|
|
esac
|
|
CP_ENTRIES+=("$jar")
|
|
done < <(find "$dir" -name '*.jar' -type f | sort)
|
|
fi
|
|
done
|
|
if [ ${#CP_ENTRIES[@]} -eq 0 ]; then
|
|
echo "no dependency jars found for decompiled build" >&2
|
|
exit 1
|
|
fi
|
|
CP="$(IFS=:; echo "${CP_ENTRIES[*]}")"
|
|
fi
|
|
find src/main/java -name '*.java' > build/sources.list
|
|
if [ ! -s build/sources.list ]; then
|
|
echo "no decompiled java sources found" >&2
|
|
exit 1
|
|
fi
|
|
javac -source 8 -target 8 -encoding UTF-8 -cp "$CP" -d build/classes @build/sources.list 2>&1 | tee build/logs/javac.log
|
|
if [ -d src/main/resources ]; then
|
|
( cd src/main/resources && tar cf - . ) | ( cd build/classes && tar xf - )
|
|
fi
|
|
jar cf "build/libs/[BD]遗忘Lostblade-1.0.0.jar" -C build/classes .
|
|
echo "compiled build/libs/[BD]遗忘Lostblade-1.0.0.jar"
|