many eda additions
This commit is contained in:
64
tools/install-kicad-toolkit
Executable file
64
tools/install-kicad-toolkit
Executable file
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env bash
|
||||
# install-kicad-toolkit — install circuit_toolkit into KiCad's bundled Python
|
||||
# so pcbnew-dependent builders (pcb.py) can import it.
|
||||
#
|
||||
# Usage: ./install-kicad-toolkit.sh
|
||||
#
|
||||
# This is a one-time setup. After KiCad updates, re-run to pick up changes.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
TOOLKIT_SRC="$PROJECT_ROOT/kicad-claude-toolkit/python/circuit_toolkit"
|
||||
|
||||
# Find KiCad Python
|
||||
KICAD_APP="/Applications/KiCad/KiCad.app"
|
||||
KICAD_PYTHON="${KICAD_APP}/Contents/Frameworks/Python.framework/Versions/3.9/bin/python3"
|
||||
|
||||
if [ ! -x "$KICAD_PYTHON" ]; then
|
||||
echo "ERROR: KiCad Python not found at $KICAD_PYTHON" >&2
|
||||
echo "Install KiCad from kicad.org, then re-run." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "KiCad Python: $KICAD_PYTHON"
|
||||
echo "circuit_toolkit source: $TOOLKIT_SRC"
|
||||
echo ""
|
||||
|
||||
# Verify pcbnew works
|
||||
echo "Checking pcbnew..."
|
||||
if ! "$KICAD_PYTHON" -c "import pcbnew" 2>/dev/null; then
|
||||
echo "ERROR: pcbnew not importable. Run KiCad.app at least once." >&2
|
||||
exit 1
|
||||
fi
|
||||
echo " pcbnew OK"
|
||||
|
||||
# Install circuit_toolkit in development mode
|
||||
echo ""
|
||||
echo "Installing circuit_toolkit (editable)..."
|
||||
pushd "$TOOLKIT_SRC" >/dev/null
|
||||
# KiCad ships Python 3.9; toolkit pyproject requires >=3.10. Use --no-build-isolation
|
||||
# to bypass the version check (the code only needs 3.9 features).
|
||||
"$KICAD_PYTHON" -m pip install --no-build-isolation -e . 2>&1
|
||||
echo " installed"
|
||||
|
||||
# Also install optional sim deps
|
||||
echo ""
|
||||
echo "Installing optional sim deps (matplotlib, numpy)..."
|
||||
"$KICAD_PYTHON" -m pip install matplotlib numpy 2>&1 || echo " (non-fatal: sim deps skipped)"
|
||||
|
||||
# Verify
|
||||
echo ""
|
||||
echo "Verifying..."
|
||||
"$KICAD_PYTHON" -c "
|
||||
import pcbnew
|
||||
import circuit_toolkit
|
||||
from circuit_toolkit.core.board import Board
|
||||
from circuit_toolkit.builders.pcb import build_pcb
|
||||
print(f' circuit_toolkit {circuit_toolkit.__version__} OK (pcbnew {pcbnew.__file__})')
|
||||
"
|
||||
|
||||
echo ""
|
||||
echo "Done. circuit_toolkit is now available inside KiCad's Python."
|
||||
echo "Use ./tools/kicad-python to run scripts with pcbnew access."
|
||||
Reference in New Issue
Block a user