Commit Graph
57 Commits
Author SHA1 Message Date
Luke Street 42014b4401 Bump dtk to v1.8.3 2026-03-01 22:47:43 -07:00
Luke Street 3d5567cc48 Bump dtk to v1.8.2, wibo to 1.0.3 2026-03-01 21:45:36 -07:00
Luke Street eca3646fff Update docs/splits.md 2026-03-01 17:43:38 -07:00
Luke Street 01500c171e Update all tools & update dtk docs 2026-03-01 16:26:36 -07:00
Luke Street b0eff0abd4 Update tool versions 2025-12-30 19:26:41 -07:00
Luke Street df2b8586ae Fix implicit dependencies for pch rules 2025-11-20 02:05:48 -07:00
Luke Street efc8e05051 Update to wibo 1.0.0-beta.5 2025-11-20 02:05:38 -07:00
Luke Street f306a31151 Update tools & format with ruff 2025-11-18 23:03:27 -07:00
Luke Street 5efb1c83cd Update dtk_tag & objdiff_tag 2025-11-12 12:42:43 -07:00
Luke Street e4980856aa Update to wibo 1.0.0-beta.4 2025-11-11 23:27:22 -07:00
Luke Street f225a1ba65 Update tools & use wibo for macOS (no more wine-crossover) 2025-11-11 15:22:02 -07:00
Luke Street 9d6a0399f5 Add cache restore-keys to always update cache
NOTE: See https://github.com/encounter/dtk-template-build/commit/9408cb2cdc65750f9099d58783adc2936c0831ba
zstd is added as a package to significantly improve cache update time.
2025-08-15 16:58:35 -06:00
Luke Street aa98d34e96 Update git-restore-mtime args for caching 2025-08-15 10:43:35 -06:00
Luke Street ebe57b5464 Update tool versions 2025-08-15 10:43:21 -06:00
Luke Street d639e15cb8 Update category typings in tools/project.py 2025-08-15 10:43:11 -06:00
Luke Street 49b34faa6a Format tools/download_tool.py 2025-08-15 10:42:49 -06:00
Luke Street b4be7cfa39 Add build cache to CI workflow
NOTE: This requires an update to your build container. See
https://github.com/encounter/dtk-template-build/commit/e132563a5a88c58b933022f435cfd5a784d7069b

This normalizes file modtimes with git-restore-mtime, and caches
the build directory. Subsequent runs will only rebuild the files
that have changed.
2025-08-14 19:05:46 -06:00
Luke Street dbad3087b6 Support clean_extab feature
See documentation for more details.
2025-06-01 22:12:17 -06:00
Luke Street 30945827b0 Check source file path case 2025-06-01 16:18:07 -06:00
Luke Street c3ddfc779c Only use asm from asm_dir if source is non-matching
Resolves #49
2025-06-01 15:40:24 -06:00
Luke Street f6f10ea187 Remove depfile from GNU as commands
Instead, hardcodes an implicit dependency on
build/GAMEID/include/macros.inc, which is
always written by decomp-toolkit.

Resolves #51
2025-06-01 15:35:25 -06:00
Luke Street c73e4b8f87 Remove "host" build rules
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.
2025-06-01 15:24:41 -06:00
Luke Street 2cd0b6703f Update compilers & add mapping for GC/1.1p1 2025-05-20 22:07:01 -06:00
Luke Street 2e907657cc Updates for decomp.dev (replaces frogress)
Resolves #52
2025-05-06 21:40:23 -06:00
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
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 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
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
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 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 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
Luke Street e45a0ecf5e Downgrade wibo to 0.6.11 2024-06-23 22:32:04 -06:00
Luke Street cd2d65c157 Bump actions versions 2024-06-19 14:08:49 -06:00