summaryrefslogtreecommitdiff
path: root/docs
AgeCommit message (Collapse)Author
2023-04-11fix various spelling issuesJosh Soref
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2023-04-11Change "can not" to "cannot" throughout projectHiPhish
The word "cannot" expresses inability to do something whereas "can not" expresses the ability to refrain from doing something.
2023-04-11Fix spelling and grammar in Dependencies.mdPete Dietl
2023-04-10Generate relnotes for 1.1.0.Jussi Pakkanen
2023-03-29Make --vsenv a readonly builtin optionXavier Claessens
We need to remember its value when reconfiguring, but the Build object is not reused, only coredata is. This also makes CLI more consistent by allowing `-Dvsenv=true` syntax. Fixes: #11309
2023-03-28doc: Use better name for builtin/return object titleXavier Claessens
The title is used only in the sidebar. There is no need to have "extends" information there. For returned objects the actual name is not meaningful so it's better to use the long name. For builtin objects the name is important because that's the global variable name.
2023-03-28doc: Fix some broken linksXavier Claessens
2023-03-28docs: replace most uses of `meson_options.txt` with `meson.options`Dylan Baker
I've left the old release notes in place, but updated everything else to use `meson.options`
2023-03-28Add support for meson.options as a replacement for meson_options.txtDylan Baker
We will still try to load `meson_options.txt` if `meson.options` doesn't exist. Because there are some advantages to using `meson.options` even with older versions of meson (such as better text editor handling) we will not warn about the existence of a `meson.options` file if a `meson_options.txt` file or symlink also exists. The name `meson.options` was picked instead of alternative proposals, such as `meson_options.build` for a couple of reasons: 1. meson.options is shorter 2. While the syntax is the same, only the `option()` function may be called in meson.options, while, it may not be called in meson.build 3. While the two files share a syntax and elementary types (strings, arrays, etc), they have different purposes: `meson.build` declares build targets, `meson.options` declares options. This is similar to the difference between C's `.c` and `.h` extensions. As an implementation detail `Interpreter.option_file` has been removed, as it is used exactly once, in the `project()` call to read the options, and we can just calculate it there and not store it. Fixes: #11176
2023-03-27Allow --reconfigure and --wipe of empty builddirXavier Claessens
This allows to run setup command regardless whether the builddir has been configured or not previously. This is useful for example with scripts that always repeat all options. meson setup builddir --reconfigure -Dfoo=bar
2023-03-27docs: add 2022 video from PyCon USandy5995
2023-03-20backends: add a new "none" backendEli Schwartz
It can only be used for projects that don't have any rules at all, i.e. they are purely using Meson to: - configure files - run (script?) tests - install files that exist by the end of the setup stage This can be useful e.g. for Meson itself, a pure python project.
2023-03-17fix meson compile with alias targetCharles Brunet
this fixes a bug introduced by #11528
2023-03-09dependencies: add pybind11 custom factoryEli Schwartz
This works with pkg-config and cmake without any special support. The custom factory adds further support for config-tool, via `pybind11-config`. This is useful because the config-tool will work out of the box when pybind11 is installed, but the pkg-config and cmake files are shoved into python's site-packages, which is an unfortunate distribution model and makes it impossible to use in an out of the box manner. It's possible to manually set up the PKG_CONFIG_PATH to detect it anyway, but in case that does not happen, having the config-tool fallback is extremely useful.
2023-03-02doc: remove unexisting operators from grammarCharles Brunet
2023-03-02mintro: redirect stdout to stderrCharles Brunet
2023-03-01docs: document default_options behaviourJohn Levon
As discussed in issue #8037, using `c_args` in `project()` leads to `CFLAGS` not being respected, which is a common mistake. Document this and suggest using `add_project_arguments()` instead. Signed-off-by: John Levon <levon@movementarian.org>
2023-03-01docs: fix a small typoJohn Levon
s/Accecpts/Accepts/ Signed-off-by: John Levon <levon@movementarian.org>
2023-02-28doc: Be more specific about warning_level optionXavier Claessens
Fixes: #11469
2023-02-27Improve unity build documentationCharles Brunet
2023-02-27docs: add Criterionandy5995
2023-02-27documentation: there is no unary + operatorCharles Brunet
2023-02-24docs: fix bad advice to use python module to find pythonEli Schwartz
2023-02-23docs: add gcc to list of compilers with sanitize toolsandy5995
2023-02-23Update Vs-External.mdValeri
Fix minor typo
2023-02-20minstall: drop privileges before running rebuild_allEli Schwartz
If the user runs `sudo meson install` this may run ninja to build everything that gets installed. This naturally happens as root also, by default, which is bad. Instead, detect root elevation tools and drop the uid/gid of the child ninja process back to the original invoking user before doing anything.
2023-02-20minstall: rework root elevation prompt for extensibility and behaviorEli Schwartz
There's a couple issues with the current approach: - pkexec is an unusual elevation method, the standard is sudo - it tries to elevate even in automated workflows - the user may not want to automatically rerun as root, that might be badly behaved Do some upfront checks instead, first to make sure it even makes sense to try becoming root, and then to ask the user "do you really want this". Also check for a couple common approaches to root elevation, including doas. Fixes #7345 Fixes #7809
2023-02-20interpreter/mesonmain: Add build_options methodL. E. Segovia
This method allows meson.build to introspect on the changed options. It works by merely exposing the same set of data that is logged by MesonApp._generate. Fixes #10898
2023-02-16docs/prebuilt: Add an example of how to use a wrap fileDylan Baker
When using a pre-built library
2023-02-16docs/prebuilt: add some sanity checking to the example.Dylan Baker
Instead of just giving a note about about how this is best practice, actually do it.
2023-02-16docs/prebuilt: use meson.override_dependency()Dylan Baker
2023-02-15interpreter: add FeatureOption.enable_if and .disable_ifDylan Baker
This adds two new methods, that are conceptually related in the same way that `enable_auto_if` and `disable_auto_if` are. They are different however, in that they will always replace an `auto` value with an `enabled` or `disabled` value, or error if the feature is in the opposite state (calling `feature(disabled).enable_if(true)`, for example). This matters when the feature will be passed to dependency(required : …)`, which has different behavior when passed an enabled feature than an auto one. The `disable_if` method will be controversial, I'm sure, since it can be expressed via `feature.require()` (`feature.require(not condition) == feature.disable_if(condition)`). I have two defences of this: 1) `feature.require` is difficult to reason about, I would expect require to be equivalent to `feature.enable_if(condition)`, not to `feature.disable_if(not condition)`. 2) mixing `enable_if` and `disable_if` in the same call chain is much clearer than mixing `require` and `enable_if`: ```meson get_option('feat') \ .enable_if(foo) \ .disable_if(bar) \ .enable_if(opt) ``` vs ```meson get_option('feat') \ .enable_if(foo) \ .require(not bar) \ .enable_if(opt) ``` In the first chain it's immediately obvious what is happening, in the second, not so much, especially if you're not familiar with what `require` means.
2023-02-15interpreter: add a feature.enable_auto_ifDylan Baker
It's always been strange to me we don't have an opposite method of the `disable_auto_if` method, but I've been pressed to find a case where we _need_ one, because `disable_auto_if` can't be logically contorted to work. I finally found the case where they're not equivalent: when you don't want to convert to a boolean: ```meson f = get_option('feat').disable_auto_if(not foo) g = get_option('feat').enable_auto_if(foo) dep1 = dependency('foo', required : f) dep2 = dependency('foo', required : g) ```
2023-02-15docs: add description of license_files kwargEli Schwartz
Added in commit 2fa074917597fea0cf3332c6620d3414034825e4 but I forgot to document it.
2023-02-15preprocess: Add dependencies kwargXavier Claessens
2023-02-14allow install script to run in dry-run modeCharles Brunet
2023-02-10docs: Add cython to the languages accepted by project()Daniele Nicolodi
Fixes #11373.
2023-02-01add cc.has_function_attribute('vector_size')Dudemanguy
2023-01-29Users.md: add @dcantrell /bsdutilsandy5995
2023-01-20docs: Qt compile_moc() parameter errorgroveer
"extra_arguments" should be "extra_args"
2023-01-20Deprecate passing strings to non-string optionsDylan Baker
Currently Meson allow the following (Muon does not): ```meson option('foo', type : 'boolean', value : 'true') option('bar', type : 'integer', value : '42') ``` This is possibly a holdover from very old code, but it's a bad idea and we should stop doing it. This deprecation is the first stop on that journey.
2023-01-18doc: Fix typo in release notesXavier Claessens
2023-01-18Fix typo in doc of sourceset moduleYue Yang
2023-01-18devenv: Allow dumping into file and select a formatXavier Claessens
It is often more useful to generate shell script than dumping to stdout. It is also important to be able to select the shell format. Formats currently implemented: - sh: Basic VAR=prepend_value:$VAR - export: Same as 'sh', but also export VAR - vscode: Same as 'sh', but without substitutions because they don't seems to work. To be used in launch.json's envFile.
2023-01-10docs: Add ld64.lld to linker reference tableDylan Baker
I forgot to ask the original author to add this to the original MR (#11243)
2023-01-04Users.md: add slapt-getandy5995
@jaos please review
2023-01-04clang-cl: supports /std:c++20 now.Luke Elliott
See https://github.com/llvm/llvm-project/commit/a8f75d49
2023-01-04document declare_dependency(object: ...)Paolo Bonzini
2023-01-04allow passing generated objects in the "objects" keyword argumentPaolo Bonzini
Generated objects can already be passed in the "objects" keyword argument as long as you go through an extract_objects() indirection. Allow the same even directly, since that is more intuitive than having to add them to "sources". Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2022-12-27add builtin option to install licensesEli Schwartz
Unless `meson.install_dependency_manifest()` is explicitly used, this will cause a default implied one to be installed.