aboutsummaryrefslogtreecommitdiff
path: root/docs/markdown
AgeCommit message (Collapse)AuthorFilesLines
2025-04-02mtest: set VALGRIND_OPTS to fail tests on errorsSam James1-0/+6
We currently suggest that users run `meson test --wrapper valgrind`, but this doesn't do what one might expect: Valgrind doesn't error out on violations/issues it detects. In the past, we had special handling for Valgrind in tests, see 1f76b76a84cb635f764ecbd2b77aaba1d375d72b but it was later dropped in 951262d7590343ffa9730666c427ad9d708a9fb6. This is similar to what we do for {A,UB,M}SAN_OPTIONS to give sensible behaviour that users expect out-of-the-box. Only do this if we see 'valgrind' in the wrapper command to avoid polluting logs. We may want to do that for the sanitizers variables in future too. Note that we're not adding --exit-on-first-error=yes here, as there may be several issues in an application, or a test may be rather slow, and so on. But --error-exitcode=1 to simply make Valgrind's exit status reflect whether an error was found is uncontroversial. Bug: https://github.com/mesonbuild/meson/issues/4727 Bug: https://github.com/mesonbuild/meson/issues/1105 Bug: https://github.com/mesonbuild/meson/issues/1175 Bug: https://github.com/mesonbuild/meson/issues/13745
2025-04-02wayland: Mark module stableXavier Claessens1-7/+4
There is no point in printing warning about unstable module, in the worst case we can just deprecate and add new API. It has been tested in a few projects already, and this warning is a blocker on wider adoption.
2025-04-02rust: add link_whole to rust.test and rust.doctestPaolo Bonzini2-0/+6
QEMU needs it in its integration tests (in order to run global constructors), and therefore in rust.doctest too. With this change I could do: # Rust executables do not support objects, so add an intermediate step. rust_qemu_api_objs = static_library( 'rust_qemu_api_objs', objects: [libqom.extract_all_objects(recursive: false), libhwcore.extract_all_objects(recursive: false)]) rust.doctest('rust-qemu-api-doc', _qemu_api_rs, dependencies: [qemu_api, qemu_api_macros], link_with: libqemuutil, link_whole: [rust_qemu_api_objs], suite: ['doc', 'rust']) followed by "meson test --suite doc". For completeness, add it to rust.test as well. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-04-02rust: add rust.doctestPaolo Bonzini1-0/+27
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-04-02docs: add release notes for "ninja rustdoc"Paolo Bonzini1-0/+6
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-03-26docs: Clarify string building with absolute pathsPaul Caprioli1-0/+2
2025-03-24linkers: darwin: do not use -bundle for shared_modulesPaolo Bonzini1-2/+1
Both dynamic libraries and bundles these days can be dynamically loaded using the dl APIs (e.g. dlopen, dlclose). It is not possible to include bundles on a linker command line as if they were shared libraries, but that's pretty much the only difference. However, bundles fail the Apple verification for iOS: 2025-02-10 13:54:09.095 ERROR: Validation failed (409) The binary is invalid. The executable 'Runner.app/Frameworks/numpy._core._operand_flag_tests.framework/numpy._core._operand_flag_tests' has type 'BUNDLE' that is not valid. Only 'EXECUTE' is permitted. 2025-02-10 13:54:09.096 ERROR: Validation failed (409) Missing load commands. The executable at 'Runner.app/Frameworks/numpy._core._operand_flag_tests.framework' does not have the necessary load commands. Try rebuilding the app with the latest Xcode version. If you are using third party development tools, contact the provider. So switch to -dynamiclib for shared modules as well. Fixes: #14240
2025-03-24docs: Fix apt-get installation command linehpkfft.com1-6/+11
2025-03-24Fix doc for `meson test --print-errorlogs` [skip ci]Khairul Azhar Kasmiran1-5/+5
2025-03-12modules/gnome: header argument of generate_gir accepts an array of stringsCorentin Noël1-1/+2
The behavioral change is there since be1d013453e3df3b83da0c91f5211c822d4da4d7 so align the documentation with what is allowed here.
2025-03-09compilers: convert `b_sanitize` to a free-form array optionPatrick Steinhardt2-4/+31
In the preceding commit we have started to perform compiler checks for the value of `b_sanitize`, which allows us to detect sanitizers that aren't supported by the compiler toolchain. But we haven't yet loosened the option itself to accept arbitrary values, so until now it's still only possible to pass sanitizer combinations known by Meson, which is quite restrictive. Lift that restriction by adapting the `b_sanitize` option to become a free-form array. Like this, users can pass whatever combination of comma-separated sanitizers to Meson, which will then figure out whether that combination is supported via the compiler checks. This lifts a couple of restrictions and makes the supporting infrastructure way more future proof. A couple of notes regarding backwards compatibility: - All previous values of `b_sanitize` will remain valid as the syntax for free-form array values and valid combo choices is the same. We also treat 'none' specially so that we know to convert it into an empty array. - Even though the option has been converted into a free-form array, callers of `get_option('b_sanitize')` continue to get a string as value. We may eventually want to introduce a kwarg to alter this behaviour, but for now it is expected to be good enough for most use cases. Fixes #8283 Fixes #7761 Fixes #5154 Fixes #1582 Co-authored-by: Dylan Baker <dylan@pnwbakers.com> Signed-off-by: Patrick Steinhardt <ps@pks.im>
2025-03-07docs: provide details about how to fund Meson developmentEli Schwartz1-0/+15
At the moment it turns out this mostly means... me. But this was discussed publicly, as requested by a third party, and as per the newly added page this is open to anyone in the Project who wishes to let it be known that they accept donations. Closes: https://github.com/mesonbuild/meson/issues/14262
2025-03-07docs: reorganize the main landing page and add more linksEli Schwartz1-9/+25
It can sometimes be hard to find content without digging through menus. Try to guide people towards the specific content they are probably looking for.
2025-03-07docs: describe the support policy for python versionsEli Schwartz2-2/+67
Bug: https://github.com/mesonbuild/meson/issues/14322
2025-03-06doc: fix sentence about cross-compilation.Charles Brunet1-1/+1
Fixes #14338
2025-03-04docs: update dead link in Users.mdEli Schwartz1-1/+1
The project in question still exists but no longer has a dedicated domain; instead it uses a group website in theory for multiple projects hosted by the same group (but in practice still just the one). Apparently changed almost 2 years ago. See: https://github.com/theimpossibleastronaut/rmw/commit/0f53e40861c46916597990bfe2c95ca3e5cfb0a3
2025-03-03docs: document release process and security keysEli Schwartz1-0/+24
Bug: https://github.com/mesonbuild/meson/issues/13446
2025-03-03docs: Mention deprecation of path(), document full_path()Nirbheek Chauhan1-3/+15
2025-03-01modules/gnome: Allow to specify the doc-format argumentCorentin Noël1-0/+1
Add the support for the doc-format argument if g-ir-scanner supports it. Ignore the argument otherwise as this is a no-op in such cases.
2025-02-27mtest: add option to slice testsPatrick Steinhardt2-0/+11
Executing tests can take a very long time. As an example, the Git test suite on Windows takes around 4 hours to execute. The Git project has been working around the issue by splitting up CI jobs into multiple slices: one job creates the build artifacts, and then we spawn N test jobs with those artifacts, where each test job executes 1/Nth of the tests. This can be scripted rather easily by using `meson test --list`, selecting every Nth line, but there may be other projects that have a similar need. Wire up a new option "--slice i/n" to `meson test` that does implements this logic. Signed-off-by: Patrick Steinhardt <ps@pks.im>
2025-02-26Tutorial.md typo fixEniek1-1/+1
2025-02-13Make all Meson level options overridable per subproject.Jussi Pakkanen2-0/+56
2025-01-30Mention add_dist_script in meson dist docs (#14186)Otto Moerbeek1-0/+7
2025-01-28docs: clarify behavior of default_both_libraries optionDaiki Ueno1-5/+10
Signed-off-by: Daiki Ueno <dueno@redhat.com>
2025-01-27allow to compare multiple version with version_compareCharles Brunet1-0/+8
2025-01-27adding c_std=c2y option for clangajs2-2/+2
Signed-off-by: ajs <sam4lordjesus@outlook.com>
2025-01-26Created release notes for 1.7.0.Jussi Pakkanen16-131/+155
2025-01-26Ask for testing help for the option refactor branch.Jussi Pakkanen1-0/+16
2025-01-26docs: Add missing release snippet for the TASKING compiler supportgerioldman1-0/+3
2025-01-20Alphabetize the Docs on DependenciesKevin Meagher1-42/+42
Persumably this list of was supposed to be alphabetized, but a few of the items were out of order. This confused me because I was looking for numpy, got the the Os and thought it wasn't there.
2025-01-19docs: Remove dead links in Users.mdDaniele Nicolodi1-2/+0
2025-01-12docs: add Git to list of projects using meson (#14117)Kyle Johnson1-0/+1
* docs: add git to list of projects using meson git 2.48 introduced support for the Meson build system: https://github.com/git/git/commit/904339edbd80ec5676616af6e072b41804c1c8eb https://github.blog/open-source/git/highlights-from-git-2-48/ * fix capitalization of Git; use Linus's initial revision's description
2025-01-09Add Linear ASM compilerWu, Zhenyu2-16/+20
Fix #13670
2025-01-09Merge pull request #12342 from gerioldman/TaskingCCompilerJussi Pakkanen1-0/+3
Add support for the TASKING compiler family, and its MIL linking feature
2025-01-09Merge pull request #13304 from chubinou/qml_modulesJussi Pakkanen1-1/+79
Qml modules
2025-01-09qt module: update add qml_module documentationPierre Lamot1-2/+76
2025-01-08rust: add 2024 editionPaolo Bonzini1-0/+5
Rust edition 2024 is being released in February, add support for rust_std=2024. Resolves: #14074 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-01-08rust: add warning_level=0 to downloaded Cargo subprojectsPaolo Bonzini1-0/+8
This adds --cap-lints allow, matching how Cargo builds them. In the case of Cargo, this is only applied to non-path dependencies. Without this change, clippy will complain about dependencies as well. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-01-08rust: change warning_level=0 to "--cap-lints allow"Paolo Bonzini1-0/+2
This is a better and more backwards-compatible way to disable all warnings, compared to "-A warnings". The Rust RFC (https://rust-lang.github.io/rfcs/1193-cap-lints.html) explains the rationale: > We would very much like to be able to modify lints, however. For example > rust-lang/rust#26473 updated the missing_docs lint to also look for missing > documentation on const items. This ended up breaking some crates in the > ecosystem due to their usage of #![deny(missing_docs)]. While at it, document that Rust deviates from the other languages in its interpretation of warning_level=0. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-01-08qt module: allow moc to generate json introspection filePierre Lamot1-0/+4
2025-01-07ninja backend: don't rebuild all tests by defaultEli Schwartz1-0/+29
When running `ninja all` we shouldn't build testsuite programs as these might not be wanted e.g. in order to just install the project. We do want them to be built when running `ninja test`. Since meson 0.63 we actually have a dedicated ninja alias for test dependencies -- move these from the "all" rule to the dedicated test/benchmark rules. Closes: https://github.com/mesonbuild/meson/issues/1704 Closes: https://github.com/mesonbuild/meson/issues/1949 Closes: https://github.com/mesonbuild/meson/issues/2518 Closes: https://github.com/mesonbuild/meson/issues/3662 Closes: https://github.com/mesonbuild/meson/pull/5728 Closes: https://github.com/mesonbuild/meson/pull/5867 Closes: https://github.com/mesonbuild/meson/pull/6511 Closes: https://github.com/mesonbuild/meson/pull/11317 Closes: https://github.com/mesonbuild/meson/issues/13378
2025-01-08First draft version of Tasking MIL linking with b_lto and prelinkinggerioldman2-11/+2
2025-01-08Add TASKING compiler supportgerioldman2-2/+2
2025-01-08Add TASKING to docsgerioldman2-0/+12
2025-01-07Add run0 as a way to raise privilegesrusty-snake1-1/+1
2025-01-06docs: fix cxx -> cppDylan Baker1-1/+1
2024-12-29dependencies: add custom atomic dependencyDudemanguy2-0/+19
Almost exactly the same as how the dl dependency works. On certain systems (like BSDs that use clang), stdatomic is provided by compiler-rt and doesn't need a separate library explictly linked. On a typical GNU/LINUX system, atomic is a separate library that must be explictly found and linked against. So just add a builtin and system method for these two use cases.
2024-12-19rust: raise a warning if clippy is used instead of rustcPaolo Bonzini1-0/+3
clippy-driver is not meant to be a general-purpose compiler front-end. Since Meson can now provide natively the ability to invoke clippy, raise a warning if someone uses it that way. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2024-12-19ninjabackend: add support for "ninja clippy"Paolo Bonzini3-1/+26
Add a target that builds all crates that could be extern to others, and then reruns clippy. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2024-12-19scripts: convert run_tool to asyncioPaolo Bonzini1-1/+2
This improves the handling of keyboard interrupt, and also makes it easy to buffer the output and not mix errors from different subprocesses. This is useful for clang-tidy and will be used by clippy as well. In addition, the new code supports MESON_NUM_PROCESSES. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>