Age | Commit message (Collapse) | Author | Files | Lines |
|
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>
|
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
optimization options
Fixes: #14603
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
This makes "meson setup --reconfigure" behave quite literally the same as
"meson configure" + "meson setup"; except that saving coredata and
cmdline file is delayed until the setup succeeds.
Fixes: #14575
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Prepare to reuse the logic in "meson setup --reconfigure".
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
This was the pre-refactoring implementation of `-D`, which is now unused.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
For compatibility with Autotools, CFLAGS is added to the linker command
line if the compiler acts as a linker driver. However, this behavior
was lost in commit d37d649b0 ("Make all Meson level options overridable
per subproject.", 2025-02-13).
The issue is that (for example) c_link_args is stored in env.options, and
from that point on it is treated as a machine-file option. This includes
not being able to override it in compilers.get_global_options:
- initialize_from_top_level_project_call places it in pending_options
- add_lang_args passes the right value to add_compiler_option
- add_compiler_option calls add_system_option_internal
- add_system_option_internal fishes the value out of pending_options
and ignores what get_global_options provided.
Instead, store the putative values of the compiler options coming from
the environment in a separate dictionary, that is only accessed by
get_global_options. This way it never appears in pending_options, and
also there is no internal *_env_args variable anymore.
Fixes: #14533
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Make space for moving the larger comment about *_env_args, which will be before
the for loop once *_env_args is removed.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
|
On Windows, os.execv spawn the process in background and returns 0.
Therefore, it prevents devenv to return proper exit code from the
called process. (see https://github.com/python/cpython/issues/63323
for reference.)
The solution is to call subprocess.run instead, on Windows, at the
price of keeping the meson python process alive while the devenv
subprocess runs.
|
|
|
|
"rustdoc --test" relies on running host binaries, and has no way of wrapping
them with Meson's exe_wrapper. Just skip the doctests in that case.
Fixes: #14583
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Document that "rustdoc" is a useful key for the `[binaries]` section.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Fixes a regression introduced in commit d37d649b08b8 "Make all Meson level
options overridable per subproject." This change results in every file
printing the warning "cl : Command line warning D9002 : ignoring unknown
option '/std:vc++14'"
Now that "get_option_..." is called before overwriting the option (instead
of after), we have to operate on compiler options, not meson options.
There is no such compiler option as /std:vc++14 (the meson option vc++xx is
split into /std:c++xx for the C++ standard version, and a separate flag
that enables Microsoft extensions). Remove the mapping from c++14 to
vc++14.
|
|
This is already done for bz2 and lzma, but even gzip is not always available
in a minimal Python installation. For example, this happens when building
Python from source without having zlib available.
|