aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
4 daysdocs: clarify dict keys() and values() returns sorted arraysHEADmasterMarvin Scholz1-2/+4
4 daystests: add dict.values() testsMarvin Scholz1-0/+6
4 daysinterpreter: add dict.values() methodMarvin Scholz3-1/+29
Analogous to keys(), this returns the values in an array. It uses the same sorting as keys(), else it would quite confusing to return values in a different order than the corresponding keys.
4 daystests: add tests for the dict.keys() methodMarvin Scholz1-0/+6
5 daysutils: make .wraplock optionalPaolo Bonzini4-4/+25
.wraplock is nice to have, but prevents Meson from operating on a read-only source directory. If the source directory is read-only, there is no possible conflict so in that case it is acceptable to return without any actual locking. Fixes: #14948 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
5 daysFix Cygwin test failure.Jussi Pakkanen1-1/+2
5 dayspython: add a python.build_config option (PEP 739)Filipe Laíns8-89/+421
Signed-off-by: Filipe Laíns <lains@riseup.net> Signed-off-by: Michał Górny <mgorny@quansight.com>
7 dayscoredata: do not write None to cmd_line.txtPaolo Bonzini1-1/+7
Fixes: #14955 Fixes: 37f7572ce15494654128184777b16ece38308b9a Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
7 daysoptions: do not raise exception for unknown options in -U commandPaolo Bonzini2-0/+8
Fixes: #14956 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
8 daystest cases/common/32 has header: disable undef with libcxxHaelwenn (lanodan) Monnier1-3/+8
Can be tested with adding -stdlib=libc++ to C++ flags. In file included from /usr/include/c++/v1/stdio.h:93: In file included from /usr/include/c++/v1/__config:14: In file included from /usr/include/c++/v1/__configuration/abi.h:15: /usr/include/c++/v1/__configuration/platform.h:35:7: error: function-like macro '__has_include' is not defined 35 | # if __has_include(<features.h>) | ^ /usr/include/c++/v1/__configuration/platform.h:48:5: error: function-like macro '__has_include' is not defined 48 | #if __has_include(<picolibc.h>) | ^ 1 warning and 2 errors generated. '
8 daysPrint external project logfile on CI systemsTobias Diez2-6/+13
8 daysrustdoc: skip --crate-type optionPaolo Bonzini1-1/+1
--crate-type is accepted by recent versions of rustdoc, but it is not used by it and not listed in the documentation[1]. Remove it for compatibility with old versions of Rust. [1] https://doc.rust-lang.org/rustdoc/command-line-arguments.html Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
8 daysSet version, soversion from cmake if availableJulianne Swinoga2-0/+28
8 daysmformat: force multiline arguments with commaCharles Brunet2-0/+12
Force multiline arguments when there is a trailing comma. This is the behavior of muon. Fixes #14721.
8 daysformat: do not group '--' argCharles Brunet1-1/+1
The group_arg_value option allow to put --key and its value on the same line on multiline arguments. However, when the options is `--`, it is an argument separator, and should not be grouped with the following argument.
8 dayslinkers: Fix dsymutil being unable to symbolicate binaries with LTOL. E. Segovia4-4/+26
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.
9 daysfix transient failure on rust/12 bindgenPaolo Bonzini4-15/+15
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>
9 dayscoredata: check for per-subproject compiler and linker argumentsPaolo Bonzini3-2/+16
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>
9 dayscoredata: check for per-subproject compiler optionsPaolo Bonzini2-3/+9
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>
9 daysBump version number for new development.Jussi Pakkanen1-1/+1
10 daysBump version for 1.9.0.1.9.0Jussi Pakkanen1-1/+1
2025-08-20Bump for rc3.1.9.0rc3Jussi Pakkanen1-1/+1
2025-08-20Revert "gnome: support generate_gir on cross builds"Jussi Pakkanen2-41/+14
This reverts commit 5e627c9b421a4cebb0e112af6a432fec66640c28.
2025-08-19Condense test dirs for rc3.Jussi Pakkanen2-0/+0
2025-08-18Revert "backends: Use POSIX paths for target paths"Jussi Pakkanen4-51/+49
This reverts commit 12563f74a9f3dda70dcd4778aa958de355d1fae7.
2025-08-17gnome: Restore dependency of g-ir-scanner on gobject-introspectionL. E. Segovia1-10/+12
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 Bonzini3-5/+20
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 Bonzini2-2/+14
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 Pakkanen1-3/+1
2025-08-11Revert "build: Throw an error instead of warning for sourceless targets"Eli Schwartz7-10/+12
This reverts commit 651aede977179c5fe382744e3dd91ca8e01d050c. This was most certainly not acceptable.
2025-08-11Bump version number for rc2.1.9.0rc2Jussi Pakkanen1-1/+1
2025-08-11Condense test directory names.Jussi Pakkanen168-44/+44
2025-08-10build: Throw an error instead of warning for sourceless targetsFlorian "sp1rit"​7-12/+10
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"​1-2/+2
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"​2-1/+6
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 Bonzini2-1/+67
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 Bonzini2-10/+1
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 Kharlamov2-8/+5
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 Gonzalez1-0/+3
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ßmann4-6/+40
Fixes #14840
2025-08-10tests: host_machine instead of meson.host_machine()Volker Weißmann1-2/+2
2025-08-07cpp: handle Apple Clang deprecation of hardening macro for old versions tooSam James1-3/+4
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 Bonzini3-2/+7
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 Rebhan2-4/+9
2025-08-02Add swift_interoperability_mode kwargKatalin Rebhan10-17/+47
2025-08-01dependencies: fill in defaults from DEPENDENCY_KWS when generating keyDylan Baker1-1/+5
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 Baker3-2/+9
We're going to use this in the Python module as well.
2025-08-01interpreter: Add annotation for existing keyword arguments of dependencyDylan Baker2-1/+6
2025-08-01dependencies: Allow None in dep_identifierDylan Baker1-2/+2
Because we're going to have None once we move to more typed_kwargs
2025-08-01Bump version number for rc1.1.9.0rc1Jussi Pakkanen2-2/+2