aboutsummaryrefslogtreecommitdiff
path: root/docs/markdown
diff options
context:
space:
mode:
Diffstat (limited to 'docs/markdown')
-rw-r--r--docs/markdown/Reference-manual.md20
-rw-r--r--docs/markdown/snippets/deprecate_source_build_root.md10
2 files changed, 23 insertions, 7 deletions
diff --git a/docs/markdown/Reference-manual.md b/docs/markdown/Reference-manual.md
index 1d0bb92..d315b53 100644
--- a/docs/markdown/Reference-manual.md
+++ b/docs/markdown/Reference-manual.md
@@ -1808,17 +1808,23 @@ the following methods.
or `xcode`.
- `build_root()`: returns a string with the absolute path to the build
- root directory. Note: this function will return the build root of
- the parent project if called from a subproject, which is usually
- not what you want. Try using `current_build_dir()`.
+ root directory. *(deprecated since 0.56.0)*: this function will return the
+ build root of the parent project if called from a subproject, which is usually
+ not what you want. Try using `current_build_dir()` or `project_build_root()`.
- `source_root()`: returns a string with the absolute path to the
source root directory. Note: you should use the `files()` function
to refer to files in the root source directory instead of
- constructing paths manually with `meson.source_root()`. This
- function will return the source root of the parent project if called
- from a subproject, which is usually not what you want. Try using
- `current_source_dir()`.
+ constructing paths manually with `meson.source_root()`.
+ *(deprecated since 0.56.0)*: This function will return the source root of the
+ parent project if called from a subproject, which is usually not what you want.
+ Try using `current_source_dir()` or `project_source_root()`.
+
+- `project_build_root()` *(since 0.56.0)*: returns a string with the absolute path
+ to the build root directory of the current (sub)project.
+
+- `project_source_root()` *(since 0.56.0)*: returns a string with the absolute path
+ to the source root directory of the current (sub)project.
- `current_build_dir()`: returns a string with the absolute path to the
current build directory.
diff --git a/docs/markdown/snippets/deprecate_source_build_root.md b/docs/markdown/snippets/deprecate_source_build_root.md
new file mode 100644
index 0000000..1cebef4
--- /dev/null
+++ b/docs/markdown/snippets/deprecate_source_build_root.md
@@ -0,0 +1,10 @@
+## `meson.build_root()` and `meson.source_root()` are deprecated
+
+Those function are common source of issue when used in a subproject because they
+point to the parent project root which is rarely what is expected and is a
+violation of subproject isolation.
+
+`meson.current_source_dir()` and `meson.current_build_dir()` should be used instead
+and have been available in all Meson versions. New functions `meson.project_source_root()`
+and `meson.project_build_root()` have been added in Meson 0.56.0 to get the root
+of the current (sub)project.