summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-08-25linkers: Fix dsymutil being unable to symbolicate binaries with LTOL. E. Segovia
According to https://clang.llvm.org/docs/CommandGuide/clang.html#cmdoption-flto, the -object_path_lto flag is needed to preserve the intermediate object files.
2025-08-25fix transient failure on rust/12 bindgenPaolo Bonzini
The test has a custom .h target that has the same name as the input in the test's source directory. Sometimes a compiler could build a target that intends to use the file in the source tree, but finds an incomplete output of the custom_target, causing the test to fail. To fix this, move the generated headers in a subdirectory of the build tree. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-25coredata: check for per-subproject compiler and linker argumentsPaolo Bonzini
The compiler and linker argument options are special and are only added when the compiler is first discovered. Thus any project-specific values in a child project will remain sitting in pending_options after initialize_from_subproject_call; coredata needs to inform the option store that they now exist. Fixes: #14939 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-25coredata: check for per-subproject compiler optionsPaolo Bonzini
If the parent project has not enabled a language, the child project's project-specific compiler option values are sitting in pending_options after initialize_from_subproject_call, and the option store has to be informed that they now exist. Fixes: #14939 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-24Bump version number for new development.Jussi Pakkanen
2025-08-24Bump version for 1.9.0.Jussi Pakkanen
2025-08-20Bump for rc3.Jussi Pakkanen
2025-08-20Revert "gnome: support generate_gir on cross builds"Jussi Pakkanen
This reverts commit 5e627c9b421a4cebb0e112af6a432fec66640c28.
2025-08-19Condense test dirs for rc3.Jussi Pakkanen
2025-08-18Revert "backends: Use POSIX paths for target paths"Jussi Pakkanen
This reverts commit 12563f74a9f3dda70dcd4778aa958de355d1fae7.
2025-08-17gnome: Restore dependency of g-ir-scanner on gobject-introspectionL. E. Segovia
g-ir-scanner is a pair of Python script + pymod, and the latter must be available at any time the script is executed. The changes in the below commit removed the ordering guarantee, breaking GStreamer introspection building on Windows when using the monorepo. This reverts commit ab57be75148c2faac67dba7877167772410ca5ef. Fixes #14908
2025-08-17ninjabackend: pass objects to doctestsPaolo Bonzini
Fix my misunderstanding of the code before commit aede231ef ("ninjabackend: pass objects to generate_rust_target from non-Rust sources", 2025-07-29). Object files were added by get_rust_compiler_deps_and_args() to both the main target and the doctest command lines: objs, od = self.flatten_object_list(target) for o in objs: args.append(f'-Clink-arg={o}') deps.append(o) therefore they now need to be passed as the final argument of get_rust_compiler_deps_and_args() for both command lines as well. Failure to do so causes problems building doctests when the main target has objects as well. Add a regression test as well. Fixes: #14897 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-17rewriter: accept UnknownValue for name_prefix/name_suffixPaolo Bonzini
Fixes another problem with running "meson configure" on Mesa. Related: #14840 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-15Remove Google groups. Closes #14912.Jussi Pakkanen
2025-08-11Revert "build: Throw an error instead of warning for sourceless targets"Eli Schwartz
This reverts commit 651aede977179c5fe382744e3dd91ca8e01d050c. This was most certainly not acceptable.
2025-08-11Bump version number for rc2.Jussi Pakkanen
2025-08-11Condense test directory names.Jussi Pakkanen
2025-08-10build: Throw an error instead of warning for sourceless targetsFlorian "sp1rit"​
We might run into an assertion failure down the road, if we don't fail here. Specifically project('proj') executable('bin', 'header.h') will throw during the ninja generation.
2025-08-10build: Also warn about header-only build targetsFlorian "sp1rit"​
Build targets that do not contain any actual source files and only headers should just be as affected as build targets with no sources specified whatsoever, so the 'Build target has no sources.' warning should be thrown for them too.
2025-08-10build: Ensure that linker requested in link_language is availableFlorian "sp1rit"​
Meson was running into an key lookup failure when evaluating the following: project('proj', 'c') executable('bin', link_language: 'cpp') and since 41eb18d also if the executable contained exclusively header sources.
2025-08-10options: ensure all build keys are changed to hostPaolo Bonzini
OptionStore.get_value did not change build keys to host when not cross-compiling. get_value_object_and_value_for also didn't when accessing self.augments. Make all accessors go through ensure_and_validate_key so that the conversion is done early. Otherwise, when "native: true" targets look up compiler options they do so with the "build.*" name, which does not exist when not cross compiling. This removes the distinction between get_value(), meant to be for global options, and get_value_for() which would be for project-specific options. While the distinction was added in commit d37d649b0 ("Make all Meson level options overridable per subproject.", 2025-02-13), it is not particularly useful and can be a source of bugs like the one in test_build_to_host_subproject testcase (corresponding to issue #14869). Fixes: #14869 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-10unittests: remove FakeCompilerOptionsPaolo Bonzini
It does not seem to be needed anymore, and the incomplete mock does not have for example the "yielding" attribute that is used by OptionStore.get_value_object_and_value_for. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-10minstall: allow missing symlink destination in `install_symlink`Konstantin Kharlamov
Currently there's an undocumented behavior where using `install_symlink()` to point to a file that does not exist results in failure `ERROR: Tried to install symlink to missing file`. Such behavior makes little sense because there's no reason the destination file should exist. The "destination file" may belong to another package, in particular to a package inside the same repo the Meson is controlling, in both cases there's no reason the other package should be present in the system, because installation does not typically happen into the system but rather to DESTDIR. And the file may not be present in DESTDIR either because it may belong to a different installation target (and different DESTDIR) even if it's in the same repo. Best backward-compatible decision here would be to just remove the check, which is done by this commit. Fixes: https://github.com/mesonbuild/meson/issues/12253
2025-08-10compiler,rust: No native-static-libs for wasm after 1.84Ruben Gonzalez
Rust 1.84 uses the latest emsdk 3.1.68 [1], and it fixed an issue with Emscripten dynamic linking and libc [2]. After that no native-static-libs in the output if running: ``` rustc --target=wasm32-unknown-emscripten --crate-type staticlib --print native-static-libs - < /dev/null ``` [1] https://github.com/rust-lang/rust/pull/131533 [2] https://github.com/rust-lang/libc/pull/4002
2025-08-10rewriter: Accept UnknownValue() in more placesVolker Weißmann
Fixes #14840
2025-08-10tests: host_machine instead of meson.host_machine()Volker Weißmann
2025-08-07cpp: handle Apple Clang deprecation of hardening macro for old versions tooSam James
a16ec8b0fb6d7035b669a13edd4d97ff0c307a0b changed the threshold to 17 for Apple Clang, but it needs to be 16 instead. Bug: https://github.com/mesonbuild/meson/issues/14440 Closes: https://github.com/mesonbuild/meson/issues/14856
2025-08-04build: fix introspection interpreter issue when project selects RustPaolo Bonzini
The introspection interpreter sometimes produces targets with no source files; BuildTarget will then pick a random compiler, according to the order in clink_langs. According to the comment in sort_clink, clink_langs are supposed to list languages from *lowest* to highest priority. However, process_compilers_late() process clink_langs in straight order and returns the first language; which is the one with lowest priority. This became visible with the addition of Rust to clink_langs, because Rust has limitation on the names of library targets, but the bug existed before. Fixes: e49f2f7283e1d9f18e2f5f54647c07287cd70339 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-02swift: Pass C++ base compile options to swiftcKatalin Rebhan
2025-08-02Add swift_interoperability_mode kwargKatalin Rebhan
2025-08-01dependencies: fill in defaults from DEPENDENCY_KWS when generating keyDylan Baker
Otherwise we run into issues where the key doesn't match when some values are empty and others are not. These values can be empty when they come from `find_external_dependency`, but will be initialized to a default when they come from the `Interpreter`.
2025-08-01interpreter: move dependency kwargs to shared moduleDylan Baker
We're going to use this in the Python module as well.
2025-08-01interpreter: Add annotation for existing keyword arguments of dependencyDylan Baker
2025-08-01dependencies: Allow None in dep_identifierDylan Baker
Because we're going to have None once we move to more typed_kwargs
2025-08-01Bump version number for rc1.Jussi Pakkanen
2025-08-01vala: Only pass the soname to the --shared-library argumentCorentin Noël
This argument requires only the filename, not the path and the actual library we want to use is the one defined with the soname. Closes: https://github.com/mesonbuild/meson/issues/14803
2025-08-01unittests/cargotests: add tests for workspace inheritancePaolo Bonzini
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-01cargo: typing: describe which entries can be inherited from a workspacePaolo Bonzini
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-01cargo: manifest: support workspace inheritancePaolo Bonzini
Add support for passing a workspace dictionary and setting fields from it into the dataclasses. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-01cargo: typing: add missing fieldsPaolo Bonzini
Add a few fields to "package" that support workspace inheritance. Complete the Workspace dictionary. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-01cargo: change init-time computation to lazy propertiesPaolo Bonzini
Make the dataclasses closer to the TypedDicts. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-01cargo: use _raw_to_dataclass for ManifestPaolo Bonzini
Prepare to add type checking. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-01cargo: move library autodetection to Manifest.from_rawPaolo Bonzini
It makes sense to make the lib argument optional, so do the same for all the others as well because optional arguments must all go together. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-01unittests/cargotests: add tests for Cargo.toml parsingPaolo Bonzini
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-01cargo: fix path and crate-type for executable targetsPaolo Bonzini
Path cannot be empty and according to Cargo documentation these are always of bin type. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-01cargo: move dataclasses out of interpreter modulePaolo Bonzini
Extracted from a patch by Xavier Classens. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-01cargo: create dataclasses for Cargo.lockPaolo Bonzini
Start introducing a new simpler API for conversion of TypedDicts to dataclasses, and use it already for Cargo.lock. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-01cargo: remove Fixed* dictionariesPaolo Bonzini
Create the dataclasses directly from the raw dictionaries, without an intermediate step. Extracted from a patch by Xavier Classens. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-01cargo: move _convert_manifest to Manifest class, use keyword argsPaolo Bonzini
There are really many arguments, so use keyword arguments to be safe. While at it, move the function inside the dataclass. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-01cargo: move TypedDicts for Cargo.toml to "raw" modulePaolo Bonzini
Fix a few issues: * Cargo.lock's version is an int * Different BuildTargets have different types for the argument of from_raw Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>