diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2022-12-14 10:59:36 -0800 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2023-03-28 15:01:10 +0300 |
commit | 4a014d17240f50059e20ccae3e9faaa395bdbf98 (patch) | |
tree | 4b2ae56e23db1cee4d04d602bfb1e154259cba36 /docs | |
parent | 65482497d326b0026eb11419d178d19b20ebe58b (diff) | |
download | meson-4a014d17240f50059e20ccae3e9faaa395bdbf98.zip meson-4a014d17240f50059e20ccae3e9faaa395bdbf98.tar.gz meson-4a014d17240f50059e20ccae3e9faaa395bdbf98.tar.bz2 |
Add support for meson.options as a replacement for meson_options.txt
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
Diffstat (limited to 'docs')
-rw-r--r-- | docs/markdown/snippets/meson_options.md | 7 | ||||
-rw-r--r-- | docs/yaml/functions/dependency.yaml | 2 | ||||
-rw-r--r-- | docs/yaml/functions/subproject.yaml | 4 |
3 files changed, 10 insertions, 3 deletions
diff --git a/docs/markdown/snippets/meson_options.md b/docs/markdown/snippets/meson_options.md new file mode 100644 index 0000000..f9d582a --- /dev/null +++ b/docs/markdown/snippets/meson_options.md @@ -0,0 +1,7 @@ +## Support for reading options from meson.options + +Support has been added for reading options from `meson.options` instead of +`meson_options.txt`. These are equivalent, but not using the `.txt` extension +for a build file has a few advantages, chief among them many tools and text +editors expect a file with the `.txt` extension to be plain text files, not +build scripts. diff --git a/docs/yaml/functions/dependency.yaml b/docs/yaml/functions/dependency.yaml index 2d9e366..85255b9 100644 --- a/docs/yaml/functions/dependency.yaml +++ b/docs/yaml/functions/dependency.yaml @@ -82,7 +82,7 @@ kwargs: since: 0.38.0 description: | An array of default option values - that override those set in the subproject's `meson_options.txt` + that override those set in the subproject's `meson.options` (like `default_options` in [[project]], they only have effect when Meson is run for the first time, and command line arguments override any default options in build files) diff --git a/docs/yaml/functions/subproject.yaml b/docs/yaml/functions/subproject.yaml index 4d19a31..14a778d 100644 --- a/docs/yaml/functions/subproject.yaml +++ b/docs/yaml/functions/subproject.yaml @@ -9,7 +9,7 @@ description: | `${MESON_SOURCE_ROOT}/subprojects/foo`. - `default_options` *(since 0.37.0)*: an array of default option values - that override those set in the subproject's `meson_options.txt` + that override those set in the subproject's `meson.options` (like `default_options` in `project`, they only have effect when Meson is run for the first time, and command line arguments override any default options in build files). *(since 0.54.0)*: `default_library` @@ -45,7 +45,7 @@ kwargs: since: 0.37.0 description: | An array of default option values - that override those set in the subproject's `meson_options.txt` + that override those set in the subproject's `meson.options` (like `default_options` in [[project]], they only have effect when Meson is run for the first time, and command line arguments override any default options in build files). *(since 0.54.0)*: `default_library` |