Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
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.
|
|
|
|
.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>
|
|
|
|
Signed-off-by: Filipe LaÃns <lains@riseup.net>
Signed-off-by: Michał Górny <mgorny@quansight.com>
|
|
Fixes: #14955
Fixes: 37f7572ce15494654128184777b16ece38308b9a
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Fixes: #14956
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
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.
'
|
|
|
|
--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>
|
|
|
|
Force multiline arguments when there is a trailing comma.
This is the behavior of muon.
Fixes #14721.
|
|
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.
|
|
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.
|
|
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>
|
|
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>
|
|
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>
|
|
|
|
|
|
|
|
This reverts commit 5e627c9b421a4cebb0e112af6a432fec66640c28.
|
|
|
|
This reverts commit 12563f74a9f3dda70dcd4778aa958de355d1fae7.
|
|
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
|
|
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>
|
|
Fixes another problem with running "meson configure" on Mesa.
Related: #14840
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
|
This reverts commit 651aede977179c5fe382744e3dd91ca8e01d050c.
This was most certainly not acceptable.
|
|
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
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>
|
|
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>
|
|
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
|
|
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
|
|
Fixes #14840
|
|
|
|
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
|
|
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>
|
|
|
|
|
|
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`.
|
|
We're going to use this in the Python module as well.
|
|
|
|
Because we're going to have None once we move to more typed_kwargs
|
|
|