Lightweight C++23 sandbox for experimenting with geometry / meshing ideas and integrating third‑party geometry libs (Eigen, Triangle, Geogram, CGAL, Pablo, OpenVDB).
- make
- Bazel (>= 8.x) installed & on PATH (invoked indirectly)
- A C++23 capable compiler (gcc >= 13 or clang >= 17 recommended)
Quiet build (default):
make buildRun the demo (build if needed):
make runVerbose build (show subcommands & failure details):
make verbose build # or: make v buildVerbose run (verbose build + execute):
make verbose run # or: make v runJust make verbose (or make v) with no extra goal defaults to a verbose build.
Clean all Bazel artifacts:
make cleanTip: You can chain, e.g. make verbose run for a one‑liner.
Add new C++ sources / headers and expose them through a new or existing Bazel target; then invoke via the existing Make targets. If you add another binary (e.g. //src:tool), mirror the run rule pattern or create a small wrapper target + optional new phony make rule.
This repo integrates hedron_compile_commands to produce a compile_commands.json for accurate editor navigation/completion.
Generate / refresh it:
bazel build //... \
--aspects=@hedron_compile_commands//:aspects.bzl%hedron_compile_commands_aspect \
--output_groups=hedron_compile_commands
# Copy (or symlink) the generated file to project root for the C/C++ extension:
cp bazel-out/**/compile_commands.json ./compile_commands.json(The wildcard path segment depends on your platform / Bazel output tree; use find bazel-out -maxdepth 4 -name compile_commands.json to locate it.)
VS Code is configured (.vscode/settings.json) to point to compile_commands.json when present.
See LICENSE.