pcbjam/scripts/deps/build-all-deps.sh

77 lines
2.2 KiB
Shell
Raw Normal View History

#!/bin/bash
# Build all KiCad dependencies for WebAssembly
# This script builds dependencies in the correct order
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "${SCRIPT_DIR}/../common/env.sh"
source "${SCRIPT_DIR}/../common/functions.sh"
log_info "Building all KiCad dependencies for WASM..."
log_info "Using ${JOBS} parallel jobs"
# Parse arguments
CLEAN=""
WITH_OCC=0
WITH_NGSPICE=0
for arg in "$@"; do
case $arg in
--clean)
CLEAN="--clean"
;;
--with-occ)
WITH_OCC=1
;;
--with-ngspice)
WITH_NGSPICE=1
;;
--all)
WITH_OCC=1
WITH_NGSPICE=1
;;
esac
done
# Build dependencies in order
# 1. Header-only libraries (no dependencies)
log_info "=== Phase 1: Header-only libraries ==="
"${SCRIPT_DIR}/build-glm.sh" ${CLEAN}
# 2. Basic libraries (minimal dependencies)
log_info "=== Phase 2: Basic compression/serialization ==="
"${SCRIPT_DIR}/build-zstd.sh" ${CLEAN}
"${SCRIPT_DIR}/build-protobuf.sh" ${CLEAN}
"${SCRIPT_DIR}/build-boost.sh" ${CLEAN}
# 3. Font rendering stack
log_info "=== Phase 3: Font rendering ==="
"${SCRIPT_DIR}/build-freetype.sh" ${CLEAN}
"${SCRIPT_DIR}/build-harfbuzz.sh" ${CLEAN}
# 4. Graphics stack (optional, for Cairo rendering)
log_info "=== Phase 4: Graphics libraries ==="
"${SCRIPT_DIR}/build-pixman.sh" ${CLEAN}
"${SCRIPT_DIR}/build-cairo.sh" ${CLEAN}
# 4b. Stub headers (needed for KiCad compilation but functionality is stubbed)
log_info "=== Phase 4b: Stub dependencies (headers only) ==="
"${SCRIPT_DIR}/build-curl-headers.sh" ${CLEAN}
"${SCRIPT_DIR}/build-libgit2-headers.sh" ${CLEAN}
# 5. Optional heavy dependencies
if [ $WITH_OCC -eq 1 ]; then
log_info "=== Phase 5a: OpenCASCADE (3D/STEP support) ==="
"${SCRIPT_DIR}/build-opencascade.sh" ${CLEAN}
fi
if [ $WITH_NGSPICE -eq 1 ]; then
log_info "=== Phase 5b: ngspice (SPICE simulation) ==="
"${SCRIPT_DIR}/build-ngspice.sh" ${CLEAN}
fi
log_info "============================================"
log_info "All dependencies built successfully!"
log_info "Install prefix: ${SYSROOT}"
log_info "============================================"