mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-21 01:36:02 +08:00
85 lines
1.9 KiB
Bash
Executable File
85 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
set -o pipefail
|
|
cd "$(dirname "$0")"
|
|
|
|
# Source logging utilities
|
|
source ../formatters/logging/logging.sh
|
|
|
|
log_title "Spine Serializer Generator"
|
|
|
|
# Check if node/npm is available
|
|
if ! command -v npm &> /dev/null; then
|
|
log_fail "npm is not installed"
|
|
exit 1
|
|
fi
|
|
|
|
# Install dependencies if node_modules doesn't exist
|
|
if [ ! -d "node_modules" ]; then
|
|
log_action "Installing dependencies"
|
|
if npm install > /tmp/npm-install.log 2>&1; then
|
|
log_ok
|
|
else
|
|
log_detail "$(cat /tmp/npm-install.log)"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
log_action "Analyzing Java API"
|
|
if output=$(npx -y tsx src/analyze-java-api.ts 2>&1); then
|
|
log_ok
|
|
else
|
|
log_fail
|
|
log_detail "$output"
|
|
exit 1
|
|
fi
|
|
|
|
log_action "Generating intermediate representation"
|
|
if output=$(npx -y tsx src/generate-serializer-ir.ts 2>&1); then
|
|
log_ok
|
|
else
|
|
log_fail
|
|
log_detail "$output"
|
|
exit 1
|
|
fi
|
|
|
|
log_action "Generating Java SkeletonSerializer"
|
|
if output=$(npx -y tsx src/generate-java-serializer.ts 2>&1); then
|
|
log_ok
|
|
else
|
|
log_fail "Failed to generate Java serializer"
|
|
log_detail "$output"
|
|
exit 1
|
|
fi
|
|
../formatters/format-java.sh
|
|
|
|
log_action "Generating C++ SkeletonSerializer"
|
|
if output=$(npx -y tsx src/generate-cpp-serializer.ts 2>&1); then
|
|
log_ok
|
|
else
|
|
log_fail "Failed to generate C++ serializer"
|
|
log_detail "$output"
|
|
exit 1
|
|
fi
|
|
../formatters/format-cpp.sh
|
|
|
|
log_action "Generating Haxe SkeletonSerializer"
|
|
if output=$(npx -y tsx src/generate-haxe-serializer.ts 2>&1); then
|
|
log_ok
|
|
else
|
|
log_fail "Failed to generate Haxe serializer"
|
|
log_detail "$output"
|
|
exit 1
|
|
fi
|
|
|
|
log_action "Type checking Haxe serializer"
|
|
if output=$(cd ../spine-haxe && haxe -cp spine-haxe --no-output -main spine.utils.SkeletonSerializer 2>&1); then
|
|
log_ok
|
|
else
|
|
log_fail "Haxe serializer type check failed"
|
|
log_detail "$output"
|
|
exit 1
|
|
fi
|
|
|
|
log_summary "✓ Serializer generation completed successfully" |