Commit Graph
70 Commits
Author SHA1 Message Date
Luke Street 57f5777025 Add link_order_callback feature
See comments in configure.py for feature documentation.

Resolves #6
2024-12-30 17:54:31 -07:00
CreateSourceandGitHub ca32d3f429 fix a bug where computers would fail SSL certification when running ... (#42)
* fix a bug where computers would fail SSL certification when running download_tool.py

* Remove auto install script

* Determine type of URLError

* Update download_tool.py
2024-12-30 17:53:44 -07:00
NathanandGitHub e72bd7a99e Adjust version defines to avoid name collisions and improve usage ergonomics (#45)
* Rename `VERSION` define to `BUILD_VERSION` to avoid some possible name collisions

* Set a unique define per game version in addition to the `BUILD_VERSION` define
2024-12-14 12:14:21 -07:00
Luke Street 54bf50ee31 Update tool versions 2024-11-24 00:16:24 -07:00
Luke Street d34e7c95db decompctx: Automatic includes from cflags, respect #pragma once
Resolves #23, #43
2024-11-23 18:24:47 -07:00
Luke Street 065fc7b715 Add scratch_preset_id option for objdiff decomp.me integration 2024-11-07 09:30:54 -07:00
Luke Street 14c60bb5a5 Use phony targets & order_only for custom build rules
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.
2024-10-29 23:41:18 -06:00
Luke Street f29a46abae Update tools (& sjiswrap v1.2.0 for GC 3.0+ support) 2024-10-27 16:33:26 -06:00
NathanandGitHub b32dc87752 Don't show objects as diffable in objdiff if a source file doesn't exist (#40) 2024-10-21 06:54:52 -07:00
Luke Street bcd50ed0b9 Don't error on empty report categories 2024-10-18 20:54:45 -06:00
Luke Street 6d59f31a80 decompctx: Permit comments after #include directives 2024-10-18 00:46:17 -06:00
Luke Street c6dc39414b Add MatchingFor helper 2024-10-16 22:52:23 -06:00
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
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