summaryrefslogtreecommitdiff
path: root/docs/markdown/snippets/build_subdir.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/markdown/snippets/build_subdir.md')
-rw-r--r--docs/markdown/snippets/build_subdir.md26
1 files changed, 26 insertions, 0 deletions
diff --git a/docs/markdown/snippets/build_subdir.md b/docs/markdown/snippets/build_subdir.md
new file mode 100644
index 000000000..0c115d05d
--- /dev/null
+++ b/docs/markdown/snippets/build_subdir.md
@@ -0,0 +1,26 @@
+## Added `build_subdir` arg to various targets
+
+`custom_target()`, `build_target()` and `configure_file()` now support
+the `build_subdir` argument. This directs meson to place the build
+result within the specified sub-directory path of the build directory.
+
+```meson
+configure_file(input : files('config.h.in'),
+ output : 'config.h',
+ build_subdir : 'config-subdir',
+ install_dir : 'share/appdir',
+ configuration : conf)
+```
+
+This places the build result, `config.h`, in a sub-directory named
+`config-subdir`, creating it if necessary. To prevent collisions
+within the build directory, `build_subdir` is not allowed to match a
+file or directory in the source directory nor contain '..' to refer to
+the parent of the build directory. `build_subdir` does not affect the
+install directory path at all; `config.h` will be installed as
+`share/appdir/config.h`. `build_subdir` may contain multiple levels of
+directory names.
+
+This allows construction of files within the build system that have
+any required trailing path name components as well as building
+multiple files with the same basename from the same source directory.