Commit Graph
54 Commits
Author SHA1 Message Date
Max RoncaceandGitHub f512971b4f Add support for building precompiled headers (#60) 2025-08-21 22:20:24 -06:00
Luke Street d639e15cb8 Update category typings in tools/project.py 2025-08-15 10:43:11 -06:00
BR-andGitHub 5e2fa2a574 add --ninja argument to set ninja binary if not on system PATH (#59) 2025-06-22 22:39:01 -06:00
cadmicandLuke Street 840261985b Replace object-level clean_extab with extab_padding 2025-06-04 22:12:06 -07: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
LagoLunaticandLuke Street e8f1f4c302 Rebuild report.json when configure.py is modified
Co-authored-by: Luke Street <luke@street.dev>
2025-06-01 15:16:04 -06:00
Luke Street 2cd0b6703f Update compilers & add mapping for GC/1.1p1 2025-05-20 22:07:01 -06:00
1abea6952b Allow customizing progress report config arguments (#55)
* Update dtk, objdiff, sjiswrap, and wibo

* Allow customizing progress report config arguments

* Enable function reloc diffing in default configure.py

* Update comment & disable data_value config by default

---------

Co-authored-by: Luke Street <luke@street.dev>
2025-05-17 23:00:08 -06:00
Luke Street 2e907657cc Updates for decomp.dev (replaces frogress)
Resolves #52
2025-05-06 21:40:23 -06:00
LagoLunaticandGitHub f67064940d Implement progress report regression testing (#50)
* 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
2025-04-18 18:49:47 -06:00
Steven CasperandGitHub 98383b934b Bump tool versions; Add GC/2.0p1 compiler (#48) 2025-04-18 18:46:55 -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 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
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 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 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