summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-10-16build: pass Environment to GeneratedListPaolo Bonzini
GeneratedList does not need the full interpreter, only the source and build directories which can be found in Environment. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-10-16build: import EnvironmentPaolo Bonzini
2025-10-16qt: remove stale commentPaolo Bonzini
There is no generator list in the Interpreter. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-10-15backend/ninja: Ensure that a rust file is found when using StructuredSourcesDylan Baker
When a structured source contains non rust files, the backend may select such a file to treat as the main file. That doesn't work obviously, so instead filter the main file such that it must be a rust file.
2025-10-15revert local_program()Eli Schwartz
This reverts https://github.com/mesonbuild/meson/pull/15107 Explicit objections regarding the design were raised and not answered, so it shouldn't have been merged. It needs to be discussed and revisited.
2025-10-15build: clean up some of the types with swift argumentsDylan Baker
This just prevents some unintended instances of values become None, now they always remain strings or literal-strings
2025-10-15docs: Fix documentation about sources accepted by BuildTarget(extra_files: )Dylan Baker
2025-10-15build: simplify validation of BuildTarget(extra_files: )Dylan Baker
There is some validation going on here that cannot (currently) be done the KwargInfo validators, namely that the files exist. Additionally, BuildTarget.extra_files is doing some membership checking for dups, which means it should probably be an OrderedSet instead of a list.
2025-10-15build: Remove validation for `build_by_default`Dylan Baker
2025-10-15build: remove validation for C# resourcesDylan Baker
2025-10-15build: remove implicit_include_directories validationDylan Baker
2025-10-15build: remove validation for name prefix and suffixDylan Baker
2025-10-15build: remove validation from BuildTarget(link_depends: )Dylan Baker
2025-10-15build: remove validation for gnu_symbol_visibilityDylan Baker
2025-10-15build: remove validation for install_rpathDylan Baker
2025-10-15build: remove validation for build_rpathDylan Baker
2025-10-15build: remove validation for rust_dependency_mapDylan Baker
2025-10-15build: remove argument validation for pic and pieDylan Baker
2025-10-15build: move pic/pie to their proper classesDylan Baker
It's a smell for `BuildTarget` to be checking if it's a `StaticLibrary` and then doing code. This also allows us to tighten the type checking a bit.
2025-10-15build: move platform specific pic/pie handling into helperDylan Baker
There's really no reason to not do this in the `_extract_pic_pie` helper, it only increases the chance of us not doing this when we should.
2025-10-15build: remove win_subsystem validationDylan Baker
2025-10-15build: remove validation of vs_module_defsDylan Baker
We have type checking, we also have interpreter level validation from the DSL, we don't need this.
2025-10-15build: remove validation for Executable(export_dynamic)Dylan Baker
2025-10-15build: remove build layer validation of Executable(implib)Dylan Baker
This includes cleaning up some of the type handling to account for cleanups that are done at the DSL level.
2025-10-15interpreter: convert BuildTarget install to bool in KwargInfoDylan Baker
This just does what would happen later, but with the potential to fail in obscure way.
2025-10-15interpreter: move the BuildTarget install feature validator to KwargInfoDylan Baker
2025-10-15Revert "typed_kwargs: Remove feature_validator as it's not currently used"Dylan Baker
This reverts commit 93c11f249495c4af4a88206cebefef3ecf0f3228. We're going to use it again in the next commit
2025-10-15build: remove support for gui_appDylan Baker
The Interpreter has been merging gui_app and win_subsystem for a while, but now with the typed kwargs we can feel more comfortable that gui_app wont get passed through beneath us
2025-10-15build: use a TypedDict for StaticLibrary kwargsDylan Baker
2025-10-15build: use a TypedDict for SharedLibrary kwargsDylan Baker
2025-10-15build: use a TypedDict for SharedModule kwargsDylan Baker
2025-10-15build: use a TypedDict for Executable kwargsDylan Baker
2025-10-15build: Add a TypedDict for BuildTarget keyword argumentsDylan Baker
This has the "processed" keyword arguments that the interpreter is supposed to create for us, or that we expect internal users to build by build. This requires some hacking around in the rust module for the moment because we suddenly have a type.
2025-10-15build: collapse Target.process_kwargs_base into BuildTarget.process_kwargsDylan Baker
This is the only caller, so there's no reason to not do this.
2025-10-15rust: mark verbatim unsupported also for wasmKohei Tokunaga
This fixes the following error occured in the test 3 of the Emscripten build. > wasm-ld: error: unable to find library -llibvalue.a Signed-off-by: Kohei Tokunaga <ktokunaga.mail@gmail.com>
2025-10-15Add support for LocalProgram to add_*_script()Xavier Claessens
2025-10-15Share implementation between local_program and override_find_programXavier Claessens
2025-10-15Add interpreter kwarg to local_program()Xavier Claessens
2025-10-15Add common ABC for ExternalProgram and LocalProgramXavier Claessens
2025-10-15Replace OverrideExecutable and OverrideProgram with LocalProgramXavier Claessens
2025-10-15Add support for LocalProgram to override_find_program()Xavier Claessens
2025-10-15Add support for LocalProgram to generator()Xavier Claessens
2025-10-15Add support for LocalProgram to test() and benchmark()Xavier Claessens
2025-10-15Add support for LocalProgram to configure_file() and run_command()Xavier Claessens
2025-10-15Add support for LocalProgram to custom_target() and run_target()Xavier Claessens
2025-10-15Add local_program() functionXavier Claessens
2025-10-15Add --check-diff to meson format, to show what should be formattedJulianne Swinoga
2025-10-15module/rust: set _FILE_OFFSET_BITS=64 for bindgenDavid Rheinsberg
Meson sets 64-bit offsets as the default for all platforms but MSVC. Lets do the same for bindgen, to ensure we get compatible definitions. Do this by calling `get_always_args()` on the first C'ish host compiler we can find. Note that the `libc` crate does not expose 64-bit types as the default and there is no intention to do so. Instead, it exposes 32-bit default types, plus the 64-bit extended types with the `*64` suffix. This is quite unfortunate, but it seems unlikely to change [1]. However, use of `bindgen` is usually not tied to the `libc` crate. Instead, it is tied to whatever other C code in the same project does. And Meson sets `_FILE_OFFSET_BITS=64` unconditionally for all this C code. It thus seems much more plausible for Meson to also imply it for bindgen. Given that Rust code that uses the `libc` crate very likely already uses the `*64` suffixed variants, they are unaffected by whether `_FILE_OFFSET_BITS=64` is set. If they use `libc::off_t`, they already explicitly state that they use the 32-bit variant on 32-bit platforms. Hence, it is inherently incompatible to C code that uses `_FILE_OFFSET_BITS=64`. And lastly, if a Meson project is Rust-only, but generates its internal code from its public C headers, then it is better suited to actually call `add_language('c')` and ensure that Meson knows what the compiler configuration for the target platform actually is. Otherwise, bindgen cannot know what platform options to enable. Hence, warn loudly if `rust.bindgen()` is used without a configured C compiler (even if the compiler used by bindgen does not necessarily match the configured one). [1] https://github.com/rust-lang/libc/issues/3223#issuecomment-2033298952
2025-10-14cargo: pick version from Cargo.toml if not specified in a dependencyPaolo Bonzini
Extracted from a patch by Xavier Claessens <xclaessens@netflix.com>
2025-10-14cargo: pick exact dependency version from Cargo.lockPaolo Bonzini
A dependency might specify a version that is compatible with the one in Cargo.lock, but not the exact same version. Whenever Cargo.lock contains the package, only use the pinned versions that can be used; update the version in the manifest so that the correct API level is used as well. Originally by Xavier Claessens <xclaessens@netflix.com>, but almost completely rewritten.