Commit Graph
30 Commits
Author SHA1 Message Date
75697a8e6d Add support for generating clangd compile_commands.json config (#38)
* 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>
2024-10-12 16:50:12 -06:00
Luke Street d1334bb79e Preserve symbol_mappings from existing objdiff.json 2024-10-08 21:20:40 -06:00
Luke Street f6f0e66931 Revamp progress output with objdiff report
Progress output now displays % matched, which measures 100% matched
functions across _all_ files, including files that aren't
complete/linked.

Due to this change, all source files need to be built in order to
calculate progress during a normal `ninja` run. In other words,
this makes the `all_source` build the default behavior.

The progress display can be disabled via `configure.py --no-progress`
or `config.progress = False`. This will only compile the source files
needed to link the matching DOL.

Additionally, progress information is automatically emitted as a job
summary in GitHub Actions, so it can be viewed without opening the
build logs.
2024-09-30 22:32:17 -06:00
Luke Street 584ec3de5f Only write metadata.source_path if source file exists 2024-09-29 13:58:15 -06:00
Luke Street 2f94ccb062 Minor cleanup 2024-09-17 19:21:54 -06:00
Luke Street f49a9cbb62 Fancy progress output fixes 2024-09-17 19:21:17 -06:00
NathanandGitHub 3f0a1529ff Move conditional linker flag additions from project.py to configure.py (#35) 2024-09-07 02:18:53 -06:00
Luke Street 2049aeb371 Fixes for empty progress categories 2024-09-06 19:40:12 -06:00
Luke Street 2f052e0982 objdiff.json output fixes
Ensures that most unit fields are written even
when missing the source file or auto-generated
2024-09-04 21:50:26 -06:00
Luke StreetandGitHub af452140cc Support custom progress categories (#33)
* WIP custom progress categories

* Working progress categories & type fixes
2024-09-04 08:55:19 -06:00
Luke Street f29cfaf313 Add build/GAMEID/report.json rule using objdiff-cli 2024-08-12 18:09:10 -06:00
Luke Street b7077b66b2 Output src/*.s files into the correct build dir
Before, it would put both `asm/*.s` (modding overrides)
and `src/*.s` files (matching source files that happen
to be assembly) into `build/mod`.
2024-08-11 18:22:28 -06:00
Luke Street a57d08dd07 Add ninja tools helper for downloading all tools 2024-08-11 18:07:07 -06:00
NWPlayer123andGitHub 5e7990495b Allow Custom Build Steps/Rules (#27) 2024-08-06 21:08:26 -06:00
LagoLunaticandGitHub 5c333bd399 Fix auto-decomp.me scratch config ignoring extra_cflags (#25) 2024-07-11 14:46:39 -04:00
Luke Street 182de95dae Remove "collected" from fancy progress message 2024-06-09 22:42:12 -06:00
Luke Street 08a61d78b2 Enable all decomp.me compiler mappings 2024-06-09 22:37:51 -06:00
NathanandGitHub cf654dd8ad Allow adding re-configure dependencies and doing non-matching builds (#22)
* Fix type checking errors with config version

* Add optional reconfigure dependency list to project config

* Add non-matching build option
Skips hash check and progress output

* Uncomment `config.reconfig_deps` assignment

* Change default target for non-matching instead of stubbing check/progress
2024-05-18 14:50:32 -06:00
Robin AveryandGitHub 5ea53e5a59 Fix misplaced None assignment in project.py (#20) 2024-03-14 17:18:01 -06:00
Robin AveryandGitHub 0be47a04f7 Fix dtk binary feature (#18) 2024-03-04 23:19:57 -07:00
Robin AveryandGitHub 95c866aa9d Support disabling asm overrides and fix lint errors (#17) 2024-03-04 22:13:39 -07:00
Robin AveryandGitHub 1d3192a4aa Support specifying a dtk binary (#14) 2024-03-04 18:13:10 -07:00
Luke Street 6debc74abf Fix Windows path handling
ninja_syntax.py should be writing native
platform paths instead of converting
things to unix paths.

Separately, fixed type errors introduced
by the previous commit.
2024-03-04 08:19:20 -07:00
Luke StreetandGitHub 192191ced2 Assembly modding support & objdiff + decomp.me integration (#15)
* Add initial asm build support

* WIP decomp.me and links
2024-03-03 22:47:05 -07:00
Robin AveryandGitHub bf77cea86d Fix pyright complaints and run black (#12) 2024-02-29 11:21:44 -07:00