Some checks failed
Build and Test / build (pull_request) Has been cancelled
- Remove hand-crafted kindred-icons/ in favor of auto-generated themed icons - Add icons/mappings/ with FCAD.csv (Tango palette) and kindred.csv (Catppuccin Mocha) - Add icons/retheme.py script to remap upstream FreeCAD SVG colors - Generate icons/themed/ with 1,595 themed SVGs (45,300 color replacements) - BitmapFactory loads icons/themed/ as highest priority before default icons - 157-color mapping covers the full Tango palette, interpolating between 4 luminance anchors per color family Regenerate: python3 icons/retheme.py
4.3 KiB
4.3 KiB
Repository Structure
create/
├── src/
│ ├── App/ # Core application (C++)
│ ├── Base/ # Base classes (C++)
│ ├── Gui/ # GUI framework and stylesheets (C++)
│ ├── Main/ # Application entry points
│ ├── Mod/ # FreeCAD modules (~37)
│ │ ├── Create/ # Kindred bootstrap module
│ │ ├── Assembly/ # Assembly workbench (Kindred patches)
│ │ ├── PartDesign/ # Part Design workbench
│ │ ├── Sketcher/ # Sketcher workbench
│ │ ├── AddonManager/ # Addon manager (submodule)
│ │ └── ... # Other stock FreeCAD modules
│ └── 3rdParty/
│ ├── OndselSolver/ # Assembly solver (submodule)
│ └── GSL/ # Guidelines Support Library (submodule)
├── mods/ # Kindred addon workbenches (submodules)
│ ├── ztools/ # ztools workbench
│ └── silo/ # Silo parts database
├── icons/ # Icon theming (kindred overrides, palettes, retheme script)
│ ├── kindred/ # Hand-crafted Catppuccin Mocha SVG overrides (~1444 icons)
│ ├── mappings/ # Color palette CSVs (FCAD.csv, kindred.csv)
│ └── retheme.py # Script to remap upstream icon colors
├── resources/ # Branding, desktop integration
│ ├── branding/ # Logo, splash, icon generation scripts
│ └── icons/ # Platform icons (.ico, .icns, hicolor)
├── package/ # Packaging scripts
│ ├── debian/ # Debian package
│ ├── ubuntu/ # Ubuntu-specific
│ ├── fedora/ # RPM package
│ ├── rattler-build/ # Cross-platform bundles (AppImage, DMG, NSIS)
│ └── WindowsInstaller/ # NSIS installer definition
├── .gitea/workflows/ # CI/CD pipelines
│ ├── build.yml # Build + test on push/PR
│ └── release.yml # Release on tag push
├── tests/ # Test suite
│ ├── src/ # C++ test sources
│ └── lib/ # Google Test framework (submodule)
├── cMake/ # CMake helper modules
├── docs/ # Documentation (this book)
├── tools/ # Dev utilities (build, lint, profile)
├── contrib/ # IDE configs (VSCode, CLion, debugger)
├── data/ # Example and test data
├── CMakeLists.txt # Root build configuration
├── CMakePresets.json # Platform build presets
├── pixi.toml # Pixi environment and tasks
├── CONTRIBUTING.md # Contribution guide
├── README.md # Project overview
├── LICENSE # LGPL-2.1-or-later
└── .pre-commit-config.yaml # Code quality hooks
Git submodules
| Submodule | Path | Source | Purpose |
|---|---|---|---|
| ztools | mods/ztools |
git.kindred-systems.com/forbes/ztools |
Unified workbench |
| silo-mod | mods/silo |
git.kindred-systems.com/kindred/silo-mod |
Parts database |
| OndselSolver | src/3rdParty/OndselSolver |
git.kindred-systems.com/kindred/solver |
Assembly solver |
| GSL | src/3rdParty/GSL |
github.com/microsoft/GSL |
C++ guidelines library |
| AddonManager | src/Mod/AddonManager |
github.com/FreeCAD/AddonManager |
Extension manager |
| googletest | tests/lib |
github.com/google/googletest |
Test framework |
Key files
| File | Purpose |
|---|---|
src/Mod/Create/Init.py |
Console-phase bootstrap — loads addons |
src/Mod/Create/InitGui.py |
GUI-phase bootstrap — registers workbenches, deferred setup |
src/Gui/FileOrigin.h |
Abstract file origin interface (Kindred addition) |
src/Gui/Stylesheets/KindredCreate.qss |
Catppuccin Mocha theme |
pixi.toml |
Build tasks and dependencies |
CMakeLists.txt |
Root CMake configuration |