aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2025-05-25tests: don't skip frameworks/17 mpi for auto/pkgconfigSam James1-4/+2
This is fixed in Ubuntu rolling now and Bionic wasn't affected to begin with. Bug: https://bugs.debian.org/1078026
2025-05-25Unbreak "Fix setuptools 49 test. (fixes #7452)"Eli Schwartz1-1/+1
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.
2025-05-23cmake: Fix toolchain including unsupported languagesL. E. Segovia2-2/+8
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
2025-05-23options: process project options before machine optionsPaolo Bonzini2-15/+31
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>
2025-05-23ci: do not update pip on macosPaolo Bonzini1-7/+0
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>
2025-05-23gnome: initialize CFLAGS environment variable to linker argumentsPaolo Bonzini1-1/+1
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>
2025-05-23gnome: fix typo in creating gir flagsPaolo Bonzini1-2/+2
Append to scan_env_ldflags instead of overwriting it. Fixes: #14631 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-05-23vulkan: Add regression test with VULKAN_SDK variableArjan Molenaar3-1/+20
Add test cases that target the Vulkan system dependeny resolver explicitly.
2025-05-23vulkan: Extract Vulkan version in SDK pathArjan Molenaar1-1/+1
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.
2025-05-23vulkan: Make VK_SDK_PATH optionalArjan Molenaar1-6/+3
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.
2025-05-22Use two hashes in snippet.Jussi Pakkanen1-1/+1
2025-05-22docs: Add response files entryL. E. Segovia1-0/+8
See https://github.com/mesonbuild/meson/pull/14391
2025-05-22support .version() for overridden executablesFlorian "sp1rit"​6-7/+41
Also ensure that .get_version() can be called on the output of _find_tool by the modules (kind of required for #14422).
2025-05-22gnome.mkenums: Allow passthrough of ExternalPrograms to enable converting ↵L. E. Segovia3-9/+16
only the real arguments to response file
2025-05-22gnome.mkenums: Use rspfiles on Windows when possibleL. E. Segovia4-2/+28
Fixes #6710
2025-05-21options: accept build options in --reconfigure or "meson configure"Paolo Bonzini1-0/+3
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>
2025-05-21options: accept compiler and built-in options in --reconfigure and "meson ↵Paolo Bonzini2-2/+11
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>
2025-05-21options: commonize code to accept unknown optionsPaolo Bonzini3-17/+33
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>
2025-05-21options: remove unnecessary Union[OptionKey, str]Paolo Bonzini1-7/+3
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>
2025-05-21cuda: add test for libs in stubs/David Seifert3-3/+3
2025-05-21cuda: look for stubbed libraries tooDavid Seifert1-1/+8
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
2025-05-21cuda: avoid `-l` arguments for linkingDavid Seifert1-21/+22
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.
2025-05-21compilers: add option for ignoring system dirsDavid Seifert7-17/+17
2025-05-21wrap: Support gzip Content-Encoding when fetching WrapDB metadataBenjamin Gilbert2-14/+31
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.
2025-05-20Update email address in .mailmap.Jussi Pakkanen1-2/+3
2025-05-20CI: always install llvm for MSYS2Christoph Reiter2-3/+4
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.
2025-05-19docs: Note that debug=false does not define NDEBUGPaul Caprioli1-0/+4
2025-05-15docs: mention masm support in release notesZephyr Lykos1-0/+8
2025-05-15test masm compilation on vs backendZephyr Lykos1-4/+0
2025-05-15vs2010backend: Initial MASM language supportZephyr Lykos2-14/+74
2025-05-15coredata: remove unused argumentsPaolo Bonzini5-8/+7
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-05-15coredata: assert compiler OptionKeys have the right shapePaolo Bonzini1-4/+4
The subproject and machine should already be correct, thanks to form_compileropt_key. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-05-15introspection: do not reinvent process_compiler_optionsPaolo Bonzini1-8/+2
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>
2025-05-15unittests: add minimal coverage of --buildtype=customPaolo Bonzini1-2/+2
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-05-15options: "custom" buildtype does not trigger changes in debug or ↵Paolo Bonzini1-1/+1
optimization options Fixes: #14603 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-05-15add test case for setting options from reconfigurePaolo Bonzini2-2/+11
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-05-15msetup: update coredata if options are passed together with --reconfigurePaolo Bonzini1-0/+3
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>
2025-05-15mconf: extract option processing to CoreData.set_from_configure_commandPaolo Bonzini2-5/+8
Prepare to reuse the logic in "meson setup --reconfigure". Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-05-15mconf: remove dead functionPaolo Bonzini1-3/+0
This was the pre-refactoring implementation of `-D`, which is now unused. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-05-15unittests: add test for CFLAGS in linker command linePaolo Bonzini1-0/+16
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-05-15options: restore special behavior of CFLAGS vs. c_argsPaolo Bonzini3-25/+43
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>
2025-05-15environment: move a comment aroundPaolo Bonzini1-2/+2
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>
2025-05-15environment: split list of important environment variables to a constantPaolo Bonzini1-6/+8
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-05-14Skip gettext extractor on macos because it is unstableCharles Brunet2-1/+5
2025-05-14devenv: do not use os.execv on WindowsCharles Brunet2-2/+13
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.
2025-05-14docs: gender neutral pronouns for "the user"nasso2-10/+10
2025-05-13rust: skip doctests when build machine cannot run host binariesPaolo Bonzini1-0/+4
"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>
2025-05-13cross: add rustdoc to ubuntu-armhf toolchainPaolo Bonzini1-0/+1
Document that "rustdoc" is a useful key for the `[binaries]` section. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-05-13cpp: Fix cpp_std=vc++14Peter Harris1-2/+1
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.
2025-05-11mdist.py: Import gzip only when neededHenrik Lindström1-1/+1
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.