This feature was designed as an experiment in
Prime's build script, and ended up getting pulled
into the initial dtk-template. It doesn't have
proper configuration options or any usage in the
wild. Projects aiming to port their code will
use CMake or a similar build system instead.
* Implement progress report regression testing
* Rename to "changes"
* chmod+x again
* Add [...] when truncating long symbols
* Make `ninja baseline` always be rerun, even if file times are older
* Make `ninja changes` also always be rerun, ignoring file times
This deduplicates dependencies on custom build rules by writing
them once and using phony targets to collect them.
Uses order_only instead of implicit dependencies to avoid
rebuilding source files when a custom build rule is dirty.
Cleans up typing issues in ninja_syntax.py.
* Implement support for generating clangd `compile_commands.json` config
* Add example .clangd file
* Tidy .gitignore and add entries for clangd and other things
* couple things i forgot to remove
* Change indent level to 2
* Centralize file type checking logic
* Refactor flag replacments to fix `-lang=` flags not being handled
* Move language flag fallback addition to `generate_build_ninja`
* Remove file type flags from .clangd example
* Remove clangd compiler defines option
Projects which need it can define things themselves in .clangd
* Move global clangd flags to tools/project.py & update vscode config
---------
Co-authored-by: Luke Street <luke@street.dev>