aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
AgeCommit message (Collapse)AuthorFilesLines
3 daysoptions: put back in place 1.7 ordering of opt=value vs subp:opt=valuePaolo Bonzini1-8/+8
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
4 daysFix not passing user option args to scan-build buildStephan Lachnit1-3/+1
The option refactor (https://github.com/mesonbuild/meson/pull/14251) required False as argument in order for get_user_option_args to work as intended. This commit removes this argument again. Signed-off-by: Stephan Lachnit <stephanlachnit@debian.org>
8 daysDocument internal dep support in pkgconfig.generate `requires` argBenjamin Gilbert1-2/+6
Added in #14750 for 1.9.0. Also add FeatureNew.
10 daysmsetup: not-found subprojects do not have known optionsPaolo Bonzini1-2/+3
If a subproject had its SubprojectHolder created, but was disabled, its options were not parsed; therefore the subproject should not be checked for unknown options. Fixes: #14969 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
13 dayscompilers: Enable out-of-the-box MSVC compatibility with ccacheL. E. Segovia6-34/+45
ccache has been for a long time compatible with MSVC (since 4.6) but when using debug mode, the /Z7 flag must be passed instead of /Zi. See https://ccache.dev/releasenotes.html#_ccache_4_6
13 daysvsenv: Ignore errors when parsing multiline env valuesXavier Claessens1-1/+11
2025-09-04gnome: Add missing install tag for vapi .deps fileThomas Mühlbacher1-1/+1
2025-09-03Boost python must have a library component.Jussi Pakkanen1-0/+5
2025-09-03Check for header only Boost libraries.Jussi Pakkanen1-2/+20
2025-08-29interpreter: add dict.values() methodMarvin Scholz1-1/+12
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.
2025-08-29utils: 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>
2025-08-28python: add a python.build_config option (PEP 739)Filipe Laíns4-89/+253
Signed-off-by: Filipe Laíns <lains@riseup.net> Signed-off-by: Michał Górny <mgorny@quansight.com>
2025-08-27coredata: do not write None to cmd_line.txtPaolo Bonzini1-1/+7
Fixes: #14955 Fixes: 37f7572ce15494654128184777b16ece38308b9a Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-27options: do not raise exception for unknown options in -U commandPaolo Bonzini1-0/+3
Fixes: #14956 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-26Print external project logfile on CI systemsTobias Diez2-6/+13
2025-08-26rustdoc: 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>
2025-08-26Set version, soversion from cmake if availableJulianne Swinoga1-0/+10
2025-08-26mformat: force multiline arguments with commaCharles Brunet1-0/+4
Force multiline arguments when there is a trailing comma. This is the behavior of muon. Fixes #14721.
2025-08-26format: 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.
2025-08-25linkers: 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.
2025-08-25coredata: check for per-subproject compiler and linker argumentsPaolo Bonzini1-0/+10
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 Bonzini1-2/+5
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 Pakkanen1-1/+1
2025-08-24Bump 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-18Revert "backends: Use POSIX paths for target paths"Jussi Pakkanen3-13/+12
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 Bonzini1-4/+3
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 Bonzini1-2/+6
Fixes another problem with running "meson configure" on Mesa. Related: #14840 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-08-11Revert "build: Throw an error instead of warning for sourceless targets"Eli Schwartz1-1/+3
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-10build: Throw an error instead of warning for sourceless targetsFlorian "sp1rit"​1-3/+1
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"​1-0/+5
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 Bonzini1-1/+2
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-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ßmann2-5/+10
Fixes #14840
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 Bonzini1-1/+1
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 Rebhan1-1/+5
2025-08-02Add swift_interoperability_mode kwargKatalin Rebhan7-12/+32
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 Pakkanen1-1/+1
2025-08-01vala: Only pass the soname to the --shared-library argumentCorentin Noël1-1/+1
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-01cargo: typing: describe which entries can be inherited from a workspacePaolo Bonzini1-21/+21
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>