mirror of
https://github.com/curioustorvald/Terrarum-sans-bitmap.git
synced 2026-03-07 11:51:50 +09:00
81 lines
2.8 KiB
Bash
Executable File
81 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
ASSETS_DIR="$PROJECT_DIR/src/assets"
|
|
OUTPUT_DIR="$SCRIPT_DIR"
|
|
BITSNPICAS_JAR="$SCRIPT_DIR/bitsnpicas_runtime/BitsNPicas.jar"
|
|
|
|
# Output paths
|
|
KBITX_OUTPUT="$OUTPUT_DIR/TerrarumSansBitmap.kbitx"
|
|
TTF_OUTPUT="$OUTPUT_DIR/TerrarumSansBitmap.ttf"
|
|
|
|
echo "=== Terrarum Sans Bitmap OTF Build Pipeline ==="
|
|
echo "Project: $PROJECT_DIR"
|
|
echo "Assets: $ASSETS_DIR"
|
|
echo ""
|
|
|
|
# Step 1: Compile the builder
|
|
echo "--- Step 1: Compiling OTFbuild module ---"
|
|
COMPILE_CLASSPATH="$BITSNPICAS_JAR"
|
|
SRC_DIR="$SCRIPT_DIR/src"
|
|
OUT_DIR="$SCRIPT_DIR/out"
|
|
|
|
mkdir -p "$OUT_DIR"
|
|
|
|
# Find all Kotlin source files
|
|
SRC_FILES=$(find "$SRC_DIR" -name "*.kt" | tr '\n' ' ')
|
|
|
|
# Try to find Kotlin compiler
|
|
if command -v kotlinc &> /dev/null; then
|
|
KOTLINC="kotlinc"
|
|
KOTLIN_STDLIB=""
|
|
else
|
|
# Try IntelliJ's bundled Kotlin
|
|
IDEA_CACHE="$HOME/.cache/JetBrains"
|
|
KOTLIN_DIST=$(find "$IDEA_CACHE" -path "*/kotlin-dist-for-ide/*/lib/kotlin-compiler.jar" 2>/dev/null | sort -V | tail -1)
|
|
if [ -n "$KOTLIN_DIST" ]; then
|
|
KOTLIN_LIB="$(dirname "$KOTLIN_DIST")"
|
|
KOTLINC_CP="$KOTLIN_LIB/kotlin-compiler.jar:$KOTLIN_LIB/kotlin-stdlib.jar:$KOTLIN_LIB/trove4j.jar:$KOTLIN_LIB/kotlin-reflect.jar:$KOTLIN_LIB/kotlin-script-runtime.jar:$KOTLIN_LIB/kotlin-daemon.jar:$KOTLIN_LIB/annotations-13.0.jar"
|
|
KOTLIN_STDLIB="$KOTLIN_LIB/kotlin-stdlib.jar:$KOTLIN_LIB/kotlin-stdlib-jdk7.jar:$KOTLIN_LIB/kotlin-stdlib-jdk8.jar"
|
|
echo "Using IntelliJ's Kotlin from: $KOTLIN_LIB"
|
|
else
|
|
echo "ERROR: kotlinc not found. Please install Kotlin compiler or build via IntelliJ IDEA."
|
|
echo ""
|
|
echo "Alternative: Build the OTFbuild module in IntelliJ IDEA, then run:"
|
|
echo " java -cp \"$OUT_DIR:$COMPILE_CLASSPATH\" net.torvald.otfbuild.MainKt \"$ASSETS_DIR\" \"$KBITX_OUTPUT\""
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
if [ -n "$KOTLIN_STDLIB" ]; then
|
|
# Use IntelliJ's bundled Kotlin via java
|
|
java -cp "$KOTLINC_CP" org.jetbrains.kotlin.cli.jvm.K2JVMCompiler \
|
|
-cp "$COMPILE_CLASSPATH:$KOTLIN_STDLIB" -d "$OUT_DIR" $SRC_FILES
|
|
else
|
|
kotlinc -cp "$COMPILE_CLASSPATH" -d "$OUT_DIR" $SRC_FILES
|
|
KOTLIN_STDLIB=""
|
|
fi
|
|
|
|
# Step 2: Run the builder to generate KBITX
|
|
echo ""
|
|
echo "--- Step 2: Generating KBITX ---"
|
|
RUNTIME_CP="$OUT_DIR:$COMPILE_CLASSPATH"
|
|
if [ -n "$KOTLIN_STDLIB" ]; then
|
|
RUNTIME_CP="$RUNTIME_CP:$KOTLIN_STDLIB"
|
|
fi
|
|
java -cp "$RUNTIME_CP" net.torvald.otfbuild.MainKt "$ASSETS_DIR" "$KBITX_OUTPUT"
|
|
|
|
# Step 3: Convert KBITX to TTF via BitsNPicas
|
|
echo ""
|
|
echo "--- Step 3: Converting KBITX to TTF ---"
|
|
java -jar "$BITSNPICAS_JAR" convertbitmap \
|
|
-f ttf -o "$TTF_OUTPUT" \
|
|
"$KBITX_OUTPUT"
|
|
|
|
echo ""
|
|
echo "=== Build complete ==="
|
|
echo " KBITX: $KBITX_OUTPUT"
|
|
echo " TTF: $TTF_OUTPUT"
|