| Age | Commit message (Collapse) | Author |
|
Some of the evaluate_* functions in AstInterpreter seem very broken
and do not even evaluate all of the AST. I do not know what the
original author thought, so I just fixed it.
|
|
Replace `AstInterpreter.reverse_assignment` with
`AstInterpreter.all_assignment_nodes`.
This does not give us an immediate advantage but
will be useful in future commits.
|
|
Replace the variable tracking of `AstInterpreter.assignments`
with a slightly better variable tracking called
`AstInterpreter.cur_assignments`.
We now have a class `UnknownValue` for more explicit handling
of situations that are too complex/impossible.
|
|
The AstInterpreter now stores how deep into if/elif/else we are.
This is currently dead code, but it will be read in future commits.
|
|
|
|
To improve type-safety and readability we replace a
dictionary with a new class `IntrospectionDependency`.
|
|
To improve type-safety and readability we replace a
dictionary with a new class `IntrospectionBuildTarget`.
|
|
The order in which the rewriter outputs the listed sources is more or
less arbitrary anyways, so we ignore it to prevent the tests from
breaking after small irrelevant changes.
|
|
|
|
Without this commit, meson thinks that the `var` token in the code below
starts at a different column number than it actually starts, because the
old author forgot to account for the length of the triple quotes.
```
'''
some multiline strings
abc''' + var
```
|
|
|
|
The parser should behave exactly as before,
but the code is a bit easier to understand now.
|
|
|
|
|
|
With introduction of dfd8cfbd8d9c VS compile is broken for cases where
/MANIFEST:EMBED linker flag is actually used. The fix keeps the default
creation of <EmbedManifest> but adopts the same strategy as e3db7af0ea41,
that is to scan the link flags for the embed case to decide state is emit
'true' or 'false' for EmbedManifest.
|
|
This allows linker arguments containing a space (or other special
character) to pass through to the linker correctly. For example, the spaces
in "test cases/windows/25 embed manifest" when using
meson.project_source_root().
|
|
They've changed it from "linux-x86_64" to "x86-64-linux".
|
|
This is fixed in Ubuntu rolling now and Bionic wasn't affected to
begin with.
Bug: https://bugs.debian.org/1078026
|
|
This unbreaks commit 59910c437a81b94c72e3cbdfc2c3612fae576d6e.
It kind of maybe appears to fix something but does break it all quite
terribly too. Totally random subdirectories of site-packages/ should
certainly not be added to PYTHONPATH regardless of anything else as that
may include mesonbuild/, leading to `import ast` finding mesonbuild.ast
instead...
The underlying issue here is that egg .pth is not loaded from PYTHONPATH
at all, which means depending on versions of e.g. setuptools this test
may end up solely testing system-installed meson, or fail entirely. So
we can fix this by manually adding eggs specifically.
|
|
The most egregious cases are Nasm (which needs to be transformed to `ASM_NASM`) and Rust (which is not yet supported by CMake).
See https://cmake.org/cmake/help/v4.0/command/project.html
|
|
Restore the behavior from before commit d37d649b0 ("Make all Meson level
options overridable per subproject.", 2025-02-13). The old code was:
options: T.MutableMapping[OptionKey, T.Any] = OrderedDict()
# process project default options
for k, v in default_options.items():
if not subproject or k.subproject == subproject:
options[k] = v
# override them with machine default and command line options
options.update(env.options)
env.options = options
Fixes: #14608
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
The workaround in commit 2f146775e ("Work around the mising RECORD
file with homebrew pip.", 2025-05-04) is brittle and has broken
again. Do not bother updating setuptool and pip at all, they should be
relatively up to date on homebrew.
Suggested-by: Eli Schwartz <eschwartz93@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
The CFLAGS environment variable is used for g-ir-scanner's linking pass,
It is emptied since commit 237513dff ("modules/gnome, modules/Python:
Allow injecting RPATH flags through LDFLAGS if needed", 2025-04-09);
which could even be considered a bugfix if it didn't break Fedora
quite badly.
I could not write a testcase, but the culprit seems to be the
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 that Fedora places
in CFLAGS. The file contains
*cc1_options:
+ %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}}}
and the lack of -fPIE option upsets the linker. Fix by priming
the contents of the CFLAGS variable with the c_link_args being used
for the build.
Fixes: #14631
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Append to scan_env_ldflags instead of overwriting it.
Fixes: #14631
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Add test cases that target the Vulkan system dependeny resolver
explicitly.
|
|
This change ensures that Vulkan will be found in the path defined by the
VULKAN_SDK env var. This is the case when the Vulkan SDK is not
installed in a well-known location (/usr, /usr/local), but in a user's
home folder.
|
|
VULKAN_SDK is the preferred environment variable to point to
the Vulkan installation. With this change the old variable
(VK_SDK_PATH) is made optional.
|
|
|
|
See https://github.com/mesonbuild/meson/pull/14391
|
|
Also ensure that .get_version() can be called on the output of
_find_tool by the modules (kind of required for #14422).
|
|
only the real arguments to response file
|
|
Fixes #6710
|
|
Make more of the first-invocation logic apply to subsequent configuration
of the build tree.
This also opens the door for using set_option_maybe_root for the
first invocation. This is a huge cleanup but also a larger change,
and therefore not something for stable branches. Leave it for later.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
configure"
Follow the same logic that is used at the end of the first invocation.
This fixes
meson setup --reconfigure -Db_ndebug=true
on a project that has no language that defines b_ndebug.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
The check for unknown options is duplicated in OptionStore and MesonApp. Place the
better version of the two as a new method of OptionStore, and use it in
OptionStore.validate_cmd_line_options.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
classify_D_arguments returns a list with OptionKeys in it. Rename
the function so that the difference with set_option is clear.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
|
Some libraries in CUDA are stubbed out to load the actual implementation from
the driver at runtime. One example is NVML, that only exists in `stubs/`.
Ensure that the stubs dir is searched last, like FindCUDAToolkit.cmake:
https://github.com/Kitware/CMake/blob/4f2482700b6a6231c697b1178239acf76955bfeb/Modules/FindCUDAToolkit.cmake#L1163-L1173
|
|
When trying to pick between a CUDA library that has both shared and static
libraries and the same basename, e.g. `libnvidia-ml.a` and `libnvidia-ml.so`,
it becomes impossible to pick a specific variant with `-l` arguments.
|
|
|
|
When fetching wrap files and releases.json, ask for gzipped data and
decompress it if the server obliges. Wrap files come from GitHub releases,
thus from Azure blob storage, and Azure currently doesn't compress these
responses. releases.json comes from Git master, and GitHub does support
compression there, reducing the response body from ~64 KiB to ~10 KiB.
That's a small change in absolute terms, but straightforward to support.
|
|
|
|
Due to some recent package splits llvm is no longer installed
when clang is installed and the meson test suite was depending
on the transitive dependency.
Instead explicitly install llvm in all cases.
|
|
|
|
|
|
|
|
|
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
The subproject and machine should already be correct, thanks
to form_compileropt_key.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Let add_compiler_options and process_compiler_options handle subprojects,
and also run it for the main project to ensure that pending_options are
properly processed.
This exposes a bug because "comp" could have been None, so fix that.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|