FreeCAD workbench for Silo PLM integration. Uses shared silo-client package (submodule) for API communication. Changes from monorepo version: - SiloClient class removed, imported from silo_client package - FreeCADSiloSettings adapter wraps FreeCAD.ParamGet() preferences - Init.py adds silo-client to sys.path at startup - All command classes and UI unchanged
58 lines
2.2 KiB
Makefile
58 lines
2.2 KiB
Makefile
.PHONY: install-freecad install-freecad-flatpak install-freecad-native uninstall-freecad help
|
|
|
|
# Detect FreeCAD Mod directory (Flatpak or native)
|
|
FREECAD_MOD_DIR_FLATPAK := $(HOME)/.var/app/org.freecad.FreeCAD/data/FreeCAD/Mod
|
|
FREECAD_MOD_DIR_NATIVE := $(HOME)/.local/share/FreeCAD/Mod
|
|
FREECAD_MOD_DIR_LEGACY := $(HOME)/.FreeCAD/Mod
|
|
|
|
# Install FreeCAD workbench (auto-detect Flatpak or native)
|
|
install-freecad:
|
|
@if [ -d "$(HOME)/.var/app/org.freecad.FreeCAD" ]; then \
|
|
echo "Detected Flatpak FreeCAD (org.freecad.FreeCAD)"; \
|
|
mkdir -p $(FREECAD_MOD_DIR_FLATPAK); \
|
|
rm -f $(FREECAD_MOD_DIR_FLATPAK)/Silo; \
|
|
ln -sf $(PWD)/freecad $(FREECAD_MOD_DIR_FLATPAK)/Silo; \
|
|
echo "Installed to $(FREECAD_MOD_DIR_FLATPAK)/Silo"; \
|
|
else \
|
|
echo "Using native FreeCAD installation"; \
|
|
mkdir -p $(FREECAD_MOD_DIR_NATIVE); \
|
|
mkdir -p $(FREECAD_MOD_DIR_LEGACY); \
|
|
rm -f $(FREECAD_MOD_DIR_NATIVE)/Silo; \
|
|
rm -f $(FREECAD_MOD_DIR_LEGACY)/Silo; \
|
|
ln -sf $(PWD)/freecad $(FREECAD_MOD_DIR_NATIVE)/Silo; \
|
|
ln -sf $(PWD)/freecad $(FREECAD_MOD_DIR_LEGACY)/Silo; \
|
|
echo "Installed to $(FREECAD_MOD_DIR_NATIVE)/Silo"; \
|
|
fi
|
|
@echo ""
|
|
@echo "Restart FreeCAD to load the Silo workbench"
|
|
|
|
install-freecad-flatpak:
|
|
mkdir -p $(FREECAD_MOD_DIR_FLATPAK)
|
|
rm -f $(FREECAD_MOD_DIR_FLATPAK)/Silo
|
|
ln -sf $(PWD)/freecad $(FREECAD_MOD_DIR_FLATPAK)/Silo
|
|
@echo "Installed to $(FREECAD_MOD_DIR_FLATPAK)/Silo"
|
|
@echo "Restart FreeCAD to load the Silo workbench"
|
|
|
|
install-freecad-native:
|
|
mkdir -p $(FREECAD_MOD_DIR_NATIVE)
|
|
mkdir -p $(FREECAD_MOD_DIR_LEGACY)
|
|
rm -f $(FREECAD_MOD_DIR_NATIVE)/Silo
|
|
rm -f $(FREECAD_MOD_DIR_LEGACY)/Silo
|
|
ln -sf $(PWD)/freecad $(FREECAD_MOD_DIR_NATIVE)/Silo
|
|
ln -sf $(PWD)/freecad $(FREECAD_MOD_DIR_LEGACY)/Silo
|
|
@echo "Installed to $(FREECAD_MOD_DIR_NATIVE)/Silo"
|
|
|
|
uninstall-freecad:
|
|
rm -f $(FREECAD_MOD_DIR_FLATPAK)/Silo
|
|
rm -f $(FREECAD_MOD_DIR_NATIVE)/Silo
|
|
rm -f $(FREECAD_MOD_DIR_LEGACY)/Silo
|
|
@echo "Uninstalled Silo workbench"
|
|
|
|
help:
|
|
@echo "Silo FreeCAD Workbench Makefile"
|
|
@echo ""
|
|
@echo " install-freecad Install workbench (auto-detect Flatpak/native)"
|
|
@echo " install-freecad-flatpak Install for Flatpak FreeCAD"
|
|
@echo " install-freecad-native Install for native FreeCAD"
|
|
@echo " uninstall-freecad Remove workbench symlinks"
|