1144 Commits

Author SHA1 Message Date
Stone Tickle
b8701aecc1 add option to build tests without running them 2026-01-21 10:31:09 -05:00
Stone Tickle
c943d1168c config tool deps use pkgconfig frag parsing
Expose the fragment (aka cli argument) parsing code we have for
pkgconfig as a module function and wrap it in a nice api in
dependencies.meson.  This should fix issues where libraries are added to
link_args and don't end up in the right spot on the link line
2026-01-20 10:55:08 -05:00
VaiTon
b8c9b47570 feat: add Wayland module
Implement a new wayland Meson module providing functions to find and
scan Wayland protocol XML files using wayland-scanner.
closes #220
2026-01-18 09:51:27 -05:00
Stone Tickle
27249ba5fd lsp: properly reset log indent 2026-01-12 13:58:58 -05:00
VaiTon
51dc0fcd5d feat: add clang-format support
closes #216
2026-01-11 12:20:07 -05:00
VaiTon
9e1acf7534 Add Vala language support with two-stage compilation
Implement full Vala language support using a two-stage compilation
approach: Vala source files are first transpiled to C code using valac
--ccode, then the generated C code is compiled to object files using the
C compiler.

Changes:
- Add Vala to exposed compiler languages in toolchains.h
- Configure valac in toolchains.meson with compile_only and output
  handlers
- Implement write_vala_two_stage_compilation() helper in build_target.c
- Register both Vala and C compilers for Vala source files
- Add .vala and .vapi file extension handling
- Add VALAC environment variable support
- Include test case
closes #209
2026-01-11 08:40:28 -05:00
Stone Tickle
bf2aad86c4 fix some range formatting issues 2026-01-09 11:17:37 -05:00
Stone Tickle
ce3b115382 fix some comment mangling 2026-01-09 09:16:59 -05:00
Stone Tickle
56b8ba22fe implement partially broken formatting ranges
with lsp integration
2026-01-08 20:39:39 -05:00
Stone Tickle
164d780029 add basic deprecation warning api 2026-01-06 22:17:25 -05:00
kzc
36f2b0ea33 simplify custom implib handling 2026-01-06 13:00:00 -05:00
Stone Tickle
a9b5ad1ae1 add toolchain definition for tcc
closes #188
2026-01-06 13:00:00 -05:00
Stone Tickle
659b0b3323 fix netbsd defines 2026-01-06 11:09:43 -05:00
Stone Tickle
c2206c7382 refactor cli parsing and docs
We no longer use getopt, but a bespoke parser loosely inspired by
https://github.com/skeeto/scratch/blob/master/parsers/imgo.c.

The purpose of this is to reduce duplication.  Currently for every cli
flag we need to list it a total of 4 times.  Once in the optstring, once
in the switch statement, once in the cli help (-h), and ideally once in the man
page (which is easy to forget).  The new api should function exactly
like posix getopt, but allows us to only specify flags in one place and
generate all docs necessary.  Additionally, the docs are available and
searchable using muon help.
2026-01-06 10:23:54 -05:00
Stone Tickle
a9bf89eb12 add query to muon help 2026-01-03 11:45:46 -05:00
Stone Tickle
d46ad4f8a9 add docs.c now with json and manpage generator
Also, working on a new subcommand: muon help
2026-01-03 11:26:02 -05:00
Stone Tickle
a31e286e2c move docs generation and delete sig generation
The signature generation isn't super relevant anymore and hasn't been
maintained for a few versions.  It has been superseded by the generated
reference docs.
2026-01-02 09:46:49 -05:00
Stone Tickle
97d2ddbde0 add module sharing system 2026-01-01 08:11:05 -05:00
Stone Tickle
deafdef95f handler to specify ar is same exe as compiler 2025-12-26 14:48:07 -05:00
kzc
afac07a2d2 improve MUON_NORETURN support
- add support for tcc
- allow overriding using -DMUON_NORETURN in cflags
2025-12-25 11:54:54 -05:00
Stone Tickle
45ab272c61 add optional native backtrace printing 2025-12-24 10:54:47 -05:00
Stone Tickle
9e73eb05a9 use a global signal handler + custom assert 2025-12-24 10:52:08 -05:00
Stone Tickle
5bd92aca1f add api for getting state / config dirs 2025-12-20 21:16:16 -05:00
Stone Tickle
8aff92fcc7 extract ini cfg parsing from fmt.c 2025-12-20 21:15:34 -05:00
Stone Tickle
43fd01492d delete some unused struct fields
found with cppcheck
2025-12-02 10:19:22 -05:00
Stone Tickle
c1d133870f fix nesting of MUON_RELEASE def 2025-12-02 07:32:54 -05:00
Stone Tickle
08a23cc287 pkgconfig: improve per-machine handling
also set PKG_CONFIG_PATH for exec backend
2025-12-01 20:56:46 -05:00
Stone Tickle
570f2c2cc5 add api for getting build. options 2025-12-01 20:56:29 -05:00
Stone Tickle
1a80d57613 add commented out op tracing to analyzer 2025-12-01 08:44:58 -05:00
Stone Tickle
ed611323fd add define to query buildtype
The motivation for this was to skip freeing the base arenas in release
builds, since this is pointless, and can take surprisingly long after
evaluating particularly long scripts.
2025-12-01 08:43:08 -05:00
Stone Tickle
93f111d5db analyze: avoid looking up src location on assign
This is a significant perf win, especially noticeable on large projects
2025-12-01 08:20:59 -05:00
Stone Tickle
ad9d734bff partially support build. options 2025-11-30 13:29:25 -05:00
Stone Tickle
8e8dfaf089 stub rust language 2025-11-30 11:33:49 -05:00
Stone Tickle
3b957c2e43 rename unstable-rust -> rust 2025-11-30 11:33:22 -05:00
Stone Tickle
9c6b7e59cd re-add statement with no effect lint 2025-11-30 11:32:22 -05:00
Stone Tickle
0741bf7728 subproject: skip wrap fetch if meson.build exists 2025-11-27 20:00:09 -05:00
Stone Tickle
17ee1ad934 re-introduce version compare warning in analyzer 2025-11-27 08:48:23 -05:00
Stone Tickle
2bc9ac5a11 implement string comparison operators 2025-11-27 08:48:23 -05:00
Stone Tickle
d1e42d116e unify pkgconfig fragment handling 2025-11-20 15:10:17 -05:00
Stone Tickle
1eece6afdb don't write file when checking if header exists
This pair of options could probably be applied to more preprocess checks
but I'll save that for later
2025-11-20 09:34:58 -05:00
Stone Tickle
1f0ccd2940 log: always indicate if output was truncated
Also, generalize compiler output log truncation
2025-11-20 09:34:46 -05:00
Stone Tickle
27a5f587ff add docs for toolchain handlers 2025-11-12 20:26:22 -05:00
Stone Tickle
16a336272b rename static_linker -> archiver 2025-11-10 09:07:47 -05:00
Stone Tickle
46781f1400 rename compilers.c/meson to toolchains
this aligns more with the internal naming
2025-11-09 22:11:51 -05:00
Stone Tickle
98e9a67c32 delete dead code 2025-11-09 22:07:36 -05:00
Stone Tickle
87c6cd1318 port msvc compiler 2025-11-09 21:28:44 -05:00
Stone Tickle
cd0d0cc654 fix fmt workspace init 2025-11-09 21:28:44 -05:00
Stone Tickle
c4e1aa3ab9 improve toolchain language and linker selection 2025-11-09 21:28:44 -05:00
Stone Tickle
f9bfc2b431 start migrating all toolchain defs to .meson
This consists of essentially a rewrite of the toolchain detection to
make it more modular, as well as improvements to the analyzer and c <->
meson interface, particularly around enums.  This is to ensure that we
don't lose any robustness by having toolchain definitions in script
modules.
2025-11-09 21:28:44 -05:00
Stone Tickle
65f7896770 small fix and sort compiler definitions 2025-11-09 21:28:44 -05:00