398 Commits

Author SHA1 Message Date
Stone Tickle
f88b642f42 properly mark wayland test as being skipped 2026-01-18 09:53:44 -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
cc9abb7b81 make clang format target not rely on shell 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
97d2ddbde0 add module sharing system 2026-01-01 08:11:05 -05:00
Stone Tickle
ca9925cd5f format 2025-12-26 14:49:10 -05:00
Stone Tickle
55d505d259 add unified option to control which langs to test
This is useful if want to test a c compiler that lacks c++ support for
example
2025-12-26 14:48:03 -05:00
Stone Tickle
2bc9ac5a11 implement string comparison operators 2025-11-27 08:48:23 -05:00
Stone Tickle
c98d8c25bf fix array join throwing bad assert with empty str 2025-11-27 08:48:18 -05:00
Stone Tickle
6458273447 revert capture: false in project test runner
this slows down tests on windows since it greatly increases the amount
of output the parent muon test command has to capture
2025-11-09 20:05:38 -05:00
Stone Tickle
a3a726e3b0 gather some timing information during project test 2025-10-28 20:15:10 -04:00
Stone Tickle
7a5f06c86b move some functions into new 'util' module 2025-10-28 13:53:10 -04:00
Stone Tickle
d6ef670dcc fix lsp tests 2025-10-28 09:59:04 -04:00
Stone Tickle
6e74b00826 always strip lib prefix on windows 2025-10-27 17:02:05 -04:00
Stone Tickle
c54662a3cb consolidate unsupported installed types 2025-10-27 16:40:48 -04:00
Stone Tickle
913017d8d7 try to fix more windows paths 2025-10-27 14:40:34 -04:00
Stone Tickle
cbee3ece6f fix windows lib path 2025-10-27 09:07:17 -04:00
Stone Tickle
ab08252855 handle platform key in installed file 2025-10-27 09:07:03 -04:00
Stone Tickle
d4cc974c56 also ignore implibs for now 2025-10-27 09:06:50 -04:00
Stone Tickle
d7ac6d0ea2 skip pdb install checking 2025-10-26 22:06:02 -04:00
Stone Tickle
1ad5ffac7a project tests: support test.json
Currently only the "installed" key is considered
2025-10-26 21:53:20 -04:00
Stone Tickle
21694a200d attempt to fix lsp test 2025-10-16 10:29:17 -04:00
Stone Tickle
543b9360af fix lsp test by properly percent encoding uri 2025-10-16 10:29:17 -04:00
Stone Tickle
67cf0c0efb rename many edits test to contain a space 2025-10-16 10:29:17 -04:00
Stone Tickle
55905fa140 format lsp runner 2025-10-16 10:29:17 -04:00
Stone Tickle
9a9ad1ff2d add basic lsp tests 2025-10-16 10:29:17 -04:00
Stone Tickle
e708ca24a5 increase objc and cpp timeout 2025-10-16 09:58:25 -04:00
Stone Tickle
106754505c add copyright 2025-10-16 09:45:12 -04:00
Stone Tickle
692c3c2c0e improve triple parsing and use to pick win linker 2025-10-13 22:20:43 -04:00
Stone Tickle
41fac9736f delete old comment 2025-08-25 14:36:09 -04:00
Stone Tickle
acee4b45f9 make cat optional for script module test 2025-08-04 17:48:59 -04:00
Stone Tickle
9620e4ebd7 tests: don't run subproject tests by default
You can now pass -a to run subproject tests
2025-07-04 07:01:37 -04:00
Stone Tickle
a5753f1e94 refactor json parser
json parser now parses directly into meson objects with minimal
intermediate allocations.  It also now reports parse error locations.  A
new internal module was added to facilitate testing.
2025-06-09 14:10:51 -04:00
Stone Tickle
1dfc10948b implement cmd shell splitting and fix cmd quoting 2025-05-27 17:58:18 -04:00
Stone Tickle
fb0e0eb0d8 implement a version of shlex.split()
A few simplifications were made such as only caring about posix rules.
Additionally the shell_escape() function was re-evaluated based on posix
quoting rules.
2025-05-27 11:48:14 -04:00
Stone Tickle
5b97732064 improve language mode handling in analyzer
Properly differentiate between internal and extended modes.
2025-04-29 15:04:12 -04:00
Stone Tickle
8f5201cc68 avoid calling full_path on ninja found prog
test() accepts executables now so we don't need to do this anymore
2025-04-08 06:32:48 -04:00
Stone Tickle
12e40d1c2c both libraries / dependency refactor
To support some of the newer both libraries features, namely
dep.as_shared, dep.as_static, and:
> When default_both_libraries is 'auto', both_libraries() with
> dependencies that are both_libs themselves will link with the same kind
> of library.
A partial refactor was required.  The main complication is that muon
preprocesses all dependencies into flat arrays of their components (e.g.
link_with, compile_args, etc.) at the time the dependency is created.
This includes flattening both_libs into a single path pointing to either
the shared or static lib.  There was already a crude system to track the
original dependency inputs when they were occasionally needed, but now
that system has been much more fleshed out.  Dependency objects should
now contain all the information needed to recreate them with different
options.

A few other changes were required as part of this refactor such as
supporting an option matrix in the project tests.
2025-03-26 06:35:48 -04:00
Stone Tickle
90f682d8de tests: differentiate between failing / should fail
failing = tests that are currently failing due to bugs or limitations in muon
should fail = tests that are intended to fail
2025-03-19 10:16:07 -07:00
Stone Tickle
08ebe61ba4 move meson test definitions to meson-tests 2025-03-18 21:14:32 -04:00
Stone Tickle
f94e3c8892 clean up docs and tests related options
- separate options to control meson-docs and meson-tests
- decouple docs and website
    docs => man-pages
- change website to a 'feature'
2025-03-14 07:42:42 -04:00
Stone Tickle
41dbf636e1 add -Werror to analyze calls on embedded scripts
We should be extra strict on these scripts, particularly ones in the
runtime directory which are always executed and can cause unfixable
warnings to appear in user-level muon analyze calls.  We could just hide
warnings from embedded scripts but that seems like a poor solution.
2025-03-14 07:42:42 -04:00
kzc
94a8d77651 Fix array.slice() when array is length 1 2025-03-04 09:51:25 -05:00
Stone Tickle
89967b43bf communicate ninja to the test runner without split
The path to muon may contain spaces, so a simple split(' ') is
insufficient.  One approach would be to split on a different character
but we are already passing muon's path to the runner so just use a
special name for this case instead.

Thanks to @kzc for identifying this in github #127
2025-02-12 05:52:16 -05:00
Stone Tickle
5d9435d722 support pch 2025-02-07 13:59:34 -05:00
kzc
eca39643ac
Fix muon fmt inline comment handling 2025-02-04 05:54:37 -05:00
Stone Tickle
c5450460b6 make tests requiring unix utils optional 2025-01-25 06:14:03 -05:00
Stone Tickle
dbf5735a53 tests/lang/run_command: use uppercase env vars
Managing envvars is annoying on windows.  run_cmd uses
SetEnvironmentVariable to build up the environment which converts all
variables to uppercase.  Apparently this is because environment
variables are case-insensitive on windows.  Python has a similar
behavior where all envvar accesses on windows are uppercased.

It should be possible to support lowercase envvars by manually
constructing the environment but I'm going to defer that work until it
breaks a project since it seems that technically that is "undefined
behavior".
2025-01-21 10:41:13 -05:00
Stone Tickle
3a8a3479bc use found sh in editorconfig tests 2025-01-21 10:39:31 -05:00