lingmodeler
↓ 0 downloadsLingModeler: box modeling with quads and tris, rigging + weight painting, 2D vector illustration and animation, procedural textures and game assets; .lmesh / .ling native formats, OBJ, glTF and SVG import / export
Keywords 3d, modeling, vector, svg, gltf, obj, rigging, animation, textures, ling
lingfu install lingmodelerCode / Files (67)
tools/build_desktop.sh
#!/bin/sh
# Build a portable LingModeler on Linux or macOS (run it on that OS):
# sh tools/build_desktop.sh -> dist/LingModeler-<os>/ (+ .tar.gz)
# Same layout as the Windows build: a launcher binary with the Ling interpreter built in, running ling/main.ling beside it.
set -e
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"
LING="${LING:-$ROOT/../ling/target/release/ling}"
[ -x "$LING" ] || LING="$(command -v ling)"
case "$(uname -s)" in
Darwin) PLAT=mac; OUT=macos ;;
*) PLAT=lin; OUT=linux ;;
esac
LING_APP_INTERP=ling "$LING" build . --platform "$PLAT" --out dist
BIN="$(find "dist/$OUT" -maxdepth 1 -type f -perm -u+x | head -n 1)"
STAGE="dist/LingModeler-$OUT"
rm -rf "$STAGE"; mkdir -p "$STAGE/assets" "$STAGE/projects"
cp "$BIN" "$STAGE/LingModeler"
cp -R ling "$STAGE/ling"
cp assets/font.ttf assets/icon.png "$STAGE/assets/"
[ -d examples ] && cp -R examples "$STAGE/examples"
cp Ling.toml README.md run.sh "$STAGE/" 2>/dev/null || true
if [ "$PLAT" = mac ]; then
# minimal .app bundle around the launcher
APP="dist/LingModeler.app"; rm -rf "$APP"; mkdir -p "$APP/Contents/MacOS"
cp -R "$STAGE/"* "$APP/Contents/MacOS/"
printf '<?xml version="1.0" encoding="UTF-8"?>\n<plist version="1.0"><dict><key>CFBundleName</key><string>LingModeler</string><key>CFBundleExecutable</key><string>LingModeler</string><key>CFBundleIdentifier</key><string>org.ling-lang.lingmodeler</string><key>CFBundlePackageType</key><string>APPL</string></dict></plist>\n' > "$APP/Contents/Info.plist"
fi
tar -czf "$STAGE.tar.gz" -C dist "LingModeler-$OUT"
echo "built $STAGE"