aboutsummaryrefslogtreecommitdiff
path: root/docs
AgeCommit message (Collapse)AuthorFilesLines
2022-03-07Add support for rust proc-macro cratesDylan Baker1-0/+16
2022-03-06find_program: add a version() method to match the one for dependenciesEli Schwartz2-0/+13
It is often useful to check the found version of a program without checking whether you can successfully find `find_program('foo', required: false, version: '>=XXX')`
2022-03-06i18n.merge_file: do not disable in the absence of gettext toolsEli Schwartz1-0/+15
Disabling targets because the tools used to build them aren't available is a pretty suspicious thing to do. Users who want this are probably, in general, advised to check themselves whether it is possible to build those targets with find_program(..., required: false) The i18n.gettext() invocation is a bit unusual because the product of running it is non-critical files, specifically, translation catalogs. If users don't have the tools needed to build them, they may not be able to use them either, because perhaps they have NLS disabled on their platform or it's difficult to put it in the bootstrap path. So, for this reason, it was made non-fatal and the message catalogs are just not created, and the resulting build is still perfectly usable *unless* you want to use it in another language, at which point it "works" but the text is all inscrutable to the end user, and that's a feature of the target platform. That's an acceptable tradeoff for translation catalogs. It is NOT an acceptable tradeoff for merge_file, which produces desktop files or MIME database catalogs or other files which have crucial roles to perform, without which the software in question simply doesn't work at all. In such cases, this just fails to install crucial files, users report bugs to the project in question, and the project adds `find_program('xgettext')` to guarantee the hard error due to lack of confidence in Meson. Fixes #6165 Fixes #8436
2022-03-06wayland module: Allow building both client and server sidesXavier Claessens1-12/+20
- Change `scope` kwarg to `public` boolean default to false. - Change `side` kwarg to `client` and `server` booleans. - Document returned values - Aggregate in a single unit test because have lots of small tests increases CI time. Fixes: #10040.
2022-03-04[skip ci] fix syntax typoDarren Ng1-1/+1
2022-03-04Add modules kwarg to JNI system depTristan Partin2-3/+24
This allows someone to link against libjvm.so and libjawt.so.
2022-03-03add release snippet for declare_dependencyRemi Thebault1-0/+14
2022-03-03Document D features in `declare_dependency`Remi Thebault1-0/+17
2022-03-02document and raise an error for disallowed combination of install_headers argsEli Schwartz1-2/+5
It makes no sense to specify both: - install_dir, which overrides the -Dincludedir= builtin option - subdir, which suffixes the -Dincludedir= builtin option We've always silently ignored the subdir in this case, which is really surprising if someone actually passed it and expected it to do something. We also confusingly didn't say anything in the documentation about it. Document that the options are incompatible, and explicitly check to see if they are both passed -- if so, raise an error message pointing out that only install_dir should be used. Fixes #10046
2022-03-02Rename JDK system dep to JNITristan Partin3-8/+28
JNI is a more apt name because it currently only supports the JNI. I also believe that CMake uses the terminology JNI here as well. JNI is currently the only way to interact with the JVM through native code, but there is a project called "Project Panama" which aims to be another way for native code to interact with the JVM.
2022-03-01Deprecate java.generate_native_header() in favor of ↔Tristan Partin2-1/+80
java.generate_native_headers() After implementing a much more extensive Java native module than what currently exists in the tests, I found shortcomings. 1. You need to be able to pass multiple Java files. 2. Meson needs more information to better track the generated native headers. 3. Meson wasn't tracking the header files generated from inner classes. This new function should fix all the issues the old function had with room to grow should more functionality need to be added. What I implemented here in this new function is essentially what I have done in the Heterogeneous-Memory Storage Engine's Java bindings.
2022-02-28Allow setting method/separator in environment() and meson.add_devenv()Xavier Claessens3-3/+64
2022-02-28devenv: Add --dump optionXavier Claessens1-0/+5
It prints all envorinmente variables that have been modified. Can be used by shell scripts that wish to setup their environment themself.
2022-02-28devenv: Setup GDB auto-load scriptsXavier Claessens2-0/+15
When the project instals GDB helper scripts, copy them into meson-private directory with the right tree layout and write a .gdbinit script to load them automatically.
2022-02-28devenv: Source bash completion scriptsXavier Claessens2-0/+8
2022-02-28devenv: Set PYTHONPATH where we install python modulesXavier Claessens2-0/+14
2022-02-28doc: Fix spelling developper->developerXavier Claessens1-1/+1
Mistaken from French développeur.
2022-02-28Change jar() default install dirTristan Partin1-0/+5
The previous install dir seemed incorrect when looking at various Linux distributions.
2022-02-28docs: correct the shaderc documentationDudemanguy1-5/+11
The documentation on how shaderc is checked in meson was quite behind. Update it to mention that pkg-config is the default and preferred method of checking. Also be specific about what order everything is checked in since shaderc is confusing.
2022-02-27modules/wayland: Add unstable_wayland moduleMark Bolhuis5-0/+71
2022-02-27cmake: configure_package_config_file can now take a dictAndrea Pappacoda2-0/+6
2022-02-22python module: add option to specify a python environment to install toEli Schwartz2-4/+25
The default behavior of installing relative to prefix may be unexpected, and is definitely wrong in many cases. Give users control in order to specify that yes, they actually want to install to a venv. This is particularly useful for projects that use meson as a build system for a python module, where *all* files shall be installed into the python site-packages.
2022-02-20add all supported arguments in docs for summary()Stone Tickle1-5/+28
2022-02-15fix missing documentation for testsuite option in test.jsonEli Schwartz1-0/+5
stdout line matching supports count since commit 66d62a224e92c41d6012dc6c23912a965da4da8f to fail if certain output is present (count: 0) but it was never documented in the contribution guidelines.
2022-02-15pkgconfig module: allow custom variables to reference builtin directoriesEli Schwartz1-0/+31
Automatically generate additional variables and write them into the generated pkg-config file. This means projects no longer need to manually define the ones they use, which is annoying for dataonly usages (it used to forbid setting the base library-relevant "reserved" ones, and now allows it only for dataonly. But it's bloat to manualy list them anyway). It also fixes a regression in commit 248e6cf4736ef9ec636228da66c28f9be03aa74f which caused libdir to not be set, and to be unsettable, if the pkg-config file has no libraries but uses the ${libdir} expansion in a custom variable. This could be considered likely a case for dataonly, but it's not guaranteed.
2022-02-14shared module: Allow linking on AndroidNirbheek Chauhan1-5/+11
Android requires shared modules that use symbols from other shared modules to be linked before they can be dlopen()ed in the correct order. Not doing so leads to a missing symbol error: https://github.com/android/ndk/issues/201 We need to always allow linking for this. Also add a soname, although it's not confirmed that it's needed, and it doesn't really hurt if it isn't needed.
2022-02-10implement 'dist --allow-dirty' flagandy59952-0/+15
closes #9824
2022-02-10Contributing.md: fix typoAlyssa Ross1-1/+1
2022-02-09meson: Allow directory options outside of prefixJan Tojnar4-15/+27
This bring us in line with Autotools and CMake and it is useful for platforms like Nix, which install projects into multiple independent prefixes. As a consequence, `get_option` might return absolute paths for some directory options, if a directory outside of prefix is passed. This is technically a backwards incompatible change but its effect should be minimal, thanks to widespread use of `join_paths`/`/` operator and pkg-config generator module. It should only cause an issue when a path were constructed by concatenating the value of directory path option. Also remove a comment about commonpath since we do not use that since <https://github.com/mesonbuild/meson/commit/00f5dadd5b7d71c30bd7393d165a87f554eb92e5>. Fixes: https://github.com/mesonbuild/meson/issues/2561
2022-02-03docs: strongly recommend the use of SPDX instead of array of licenseDylan Baker1-9/+17
The array of licenses is not clear, where and SPDX expression using AND and OR is very clear, take for example this: `['Apache', 'GPLv2']`. What does that mean? Any Apache license you like and GPLv2? Using a valid SPDX license identifier however makes it extremely clear what is meant: `'Apache-2.0 OR GPL-2.0-only'`. It is very clear that you mean, "this is Apache 2.0, however, you can use as GPL-2.0 for the purpose of linking it into your GPL-2.0 project".
2022-02-03cmake: Deprecate CMake <3.17 supportDaniel Mensinger1-0/+4
2022-02-03cmake: Drop CMake server support and bump min. CMake to >= 3.14Daniel Mensinger1-0/+9
2022-02-02Merge pull request #9834 from bonzini/test-verbose-kwargJussi Pakkanen3-0/+21
New keyword argument `verbose` for tests and benchmarks
2022-02-02Genericise TI compiler and add MSP430 supportWilliam Toohey2-1/+12
2022-02-01cmake: add arch_independent kwargAndrea Pappacoda2-1/+10
CMake's write_basic_package_version_file has supported since version 3.14 an ARCH_INDEPENDENT option that makes it skip its architecture check in the Version file. With this patch Meson now supports it as well, and the change is also compatible with older CMake versions, as they will simply ignore the option. This also slightly changes the contents of the generated Version file when arch_independent is not set: previously, the if() needed to skip the arch check was always filled with an empty string, while CMake puts "FALSE" (or "TRUE") in it. Now, that if() will always be filled with either "False" or "True", better matching CMake's behaviour.
2022-02-01minstall: stop running ldconfig for the userEli Schwartz1-0/+5
This was a nice idea in theory, but in practice it had various problems: - On the only platform where ldconfig is expected to be run, it is really slow, even when the user uses a non-default prefix and ldconfig doesn't even have permission to run, nor can do anything useful due to ld.so.conf state - On FreeBSD, it bricked the system: #9592 - On cross builds, it should not be used and broke installing, because ldconfig may not be runnable without binfmt + qemu: #9707 - it prints weird and confusing errors in the common "custom prefix" layout: #9241 Some of these problems can be or have been fixed. But it's a constant source of footguns and complaints and for something that was originally supposed to be just "it's the right thing to do anyway, so just do it automatically" it is entirely too risky. Ultimately I do not think there is justification for keeping this feature in since it doesn't actually make everyone happy. Better for users to decide whether they need this themselves. This is anyways the case for cmake and autotools and generally any other build system, so it should not be too intimidating... Fixes #9721
2022-02-01Updated precompiled library documentationGuillaume Quenneville1-0/+8
Fix link, change wording
2022-02-01new custom dependency lookup for libdlAndrew Krasavin2-0/+19
2022-02-01interpreter: support for forcibly verbose logging of some testsPaolo Bonzini3-0/+21
Add a new keyword argument to test() and benchmark(), completing the implementation of the feature. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2022-01-31gnome: add documentation for new kwargsEli Schwartz1-2/+6
This was forgotten in commit bc8c938148a55910dd1bd454fc3c5e8ab7477baa -- sorry!
2022-01-31doc: fix regression that deleted all methods from the reference manualEli Schwartz1-3/+3
Regressed in commit bfb12222c3f64c4dac45fa526a355fffa74dbecd. This needs to iterate over all methods, process them, and add them to a list. Instead, it deleted all methods, processed all remaining methods, and appended them to the in-use iterator. Use a second list, instead. Fixes #9922
2022-01-31print warning when using fastyaml loaderStone Tickle1-2/+7
2022-01-31mention fastyaml loader in the docsStone Tickle1-1/+4
2022-01-31add --quiet option to genrefmanStone Tickle1-0/+4
2022-01-31add fastyaml loaderStone Tickle2-65/+171
2022-01-29docs: find_program can return the current Python3 interpreterAndrea Pappacoda1-1/+3
This was the case since 067ff7eeae26eda8edc9f7f7432f551c3e373eaa, i.e. version 0.50.0. Fixes #3856
2022-01-26docs: correct weakref typo in Reference-tables.mdArsen Arsenović1-1/+1
2022-01-26compilers/c_function_attributes: add retainArsen Arsenović1-0/+3
retain is a relatively young attribute which has proven itself useful for working with --gc-sections -z start-stop-gc.
2022-01-26Add docs for JDK system dependencyTristan Partin1-0/+14
For whatever reason, the original PR was merged without documentation.
2022-01-25docs: fix bad advice in the READMEEli Schwartz1-2/+2
Do not recommend running the 'upload' target by default in order to build the docs. That will fail with permission errors when trying to push to a repo most people don't have commit access to, and if they did have commit access it would be an even worse problem -- unpredictably overwriting the main website without any guarantee it was generated from the latest version of the docs! Plus, it does not actually work. The first thing it does is spawn an error message that required files do not exist, because the actual docs were not, in fact, built. So they cannot be uploaded either. The docs will build by default if you do not specify a non-default target. Fixes #9873