Luke Street
3a36810d82
Add extra_clang_flags option, translate more cflags
2024-10-16 22:49:09 -06:00
Luke Street
2b966f97a3
Add config.print_progress_categories & validate object categories
2024-10-13 12:17:15 -06:00
Luke Street
ff6be416c6
Document `object_base` and disc image support
...
This new setup flow allows users to copy their disc image into
`orig/GAMEID`, run a build, then delete the disc image to save space.
The new `object_base` config option specifies where the disc image is
searched for. Updated README.example.md with new setup instructions,
removing references to Dolphin Emulator.
2024-10-13 01:07:16 -06:00
Luke Street
4607046162
Remove fetch-depth: 0 from CI checkout
...
After reading the documentation for 2 seconds, it turns out that we
actually wanted `fetch-depth: 1`, and coincidentally, that's the
default.
2024-10-12 22:02:32 -06:00
Luke Street
4ceb68b953
--target=powerpc-none-eabi -> powerpc-eabi
...
No difference in behavior, but matches the binutils names,
so I think it's ever so slightly nicer.
2024-10-12 17:21:05 -06:00
Nathan
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
477ef5d916
Update dtk_tag and objdiff_tag
2024-09-29 13:59:02 -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
Luke Street
83e44bbec3
Documentation updates
...
Resolves #28
2024-09-17 19:20:51 -06:00
Luke Street
16efd6a025
Some configure.py flags cleanup
2024-09-07 09:27:42 -06:00
Nathan
39697835f3
Actually remove config.debug all the way ( #36 )
2024-09-07 09:15:05 -06:00
Nathan
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 Street
f54d479e6f
Update dtk_tag & remove ldflags -warn off
...
With dtk v0.9.5, disabling linker warnings is no
longer necessary. Based on mw_comment_version,
it adjusts behavior for the linker version.
2024-09-04 20:34:13 -06:00
Luke Street
af452140cc
Support custom progress categories ( #33 )
...
* WIP custom progress categories
* Working progress categories & type fixes
2024-09-04 08:55:19 -06:00
Steven Casper
4b1995b381
Allow spaces after '#' character ( #29 )
2024-08-17 21:18:22 -06:00
Luke Street
d5df3db21f
Oops, missed a char
2024-08-12 18:13:09 -06:00
Luke Street
3986009d97
Add objdiff report to CI example
2024-08-12 18:10:35 -06:00
Luke Street
f29cfaf313
Add build/GAMEID/report.json rule using objdiff-cli
2024-08-12 18:09:10 -06:00
Luke Street
5c3892b317
Only build asm with --non-matching
2024-08-12 18:08:26 -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
NWPlayer123
5e7990495b
Allow Custom Build Steps/Rules ( #27 )
2024-08-06 21:08:26 -06:00
LagoLunatic
5c333bd399
Fix auto-decomp.me scratch config ignoring extra_cflags ( #25 )
2024-07-11 14:46:39 -04:00
Luke Street
e45a0ecf5e
Downgrade wibo to 0.6.11
2024-06-23 22:32:04 -06:00
Luke Street
a3af4917a6
Update projects list
2024-06-20 22:46:43 -06:00
Luke Street
cd2d65c157
Bump actions versions
2024-06-19 14:08:49 -06:00
Luke Street
597ffd8f65
Keep ldflags "-warn off" commented
2024-06-10 00:47:36 -06:00
Luke Street
182de95dae
Remove "collected" from fancy progress message
2024-06-09 22:42:12 -06:00
Luke Street
a739a4f915
Bump tool versions
2024-06-09 22:41:00 -06:00
Luke Street
08a61d78b2
Enable all decomp.me compiler mappings
2024-06-09 22:37:51 -06:00
Nathan
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
Yanis
d102696838
add -v for --version ( #21 )
2024-05-16 18:32:30 -06:00
Robin Avery
5ea53e5a59
Fix misplaced `None` assignment in project.py ( #20 )
2024-03-14 17:18:01 -06:00
Luke Street
afb82c88dc
Add GitHub Actions workflow template & documentation
2024-03-05 17:24:33 -07:00
Luke Street
2b626fb53e
Minor documentation updates
2024-03-04 23:30:41 -07:00
Robin Avery
0be47a04f7
Fix dtk binary feature ( #18 )
2024-03-04 23:19:57 -07:00
Robin Avery
95c866aa9d
Support disabling asm overrides and fix lint errors ( #17 )
2024-03-04 22:13:39 -07:00
Luke Street
368342ae8b
Update decomp-toolkit to v0.7.5
2024-03-04 18:23:59 -07:00
Robin Avery
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 Street
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 Avery
bf77cea86d
Fix `pyright` complaints and run `black` ( #12 )
2024-02-29 11:21:44 -07:00
Robin Avery
2e4bd593e5
Set mode `+x` on executable Python scripts ( #10 )
2024-01-26 10:42:46 -07:00
Thaddeus Crews
575e3b4a46
Implement mypy fixes across all python files ( #4 )
...
• Type hinting added to every single file
• Path conversion now handled in `ninja_syntax.py` natively, can safely pass almost everything directly
2024-01-23 23:21:46 -07:00