diff --git a/docs/markdown/Reference-manual.md b/docs/markdown/Reference-manual.md index f12f69540..46ea1c005 100644 --- a/docs/markdown/Reference-manual.md +++ b/docs/markdown/Reference-manual.md @@ -1143,6 +1143,10 @@ Installs the entire given subdirectory and its contents from the source tree to the location specified by the keyword argument `install_dir`. +If the subdirectory does not exist in the source tree, an empty directory is +created in the specified location. *(since 0.45.0)* A newly created +subdirectory may only be created in the keyword argument `install_dir`. + The following keyword arguments are supported: - `exclude_files`: a list of file names that should not be installed. @@ -1192,6 +1196,12 @@ share/ file1 ``` +`install_subdir('new_directory', install_dir : 'share')` creates +```text +share/ + new_directory/ +``` + ### is_disabler() ``` meson diff --git a/run_unittests.py b/run_unittests.py index 2e7fe916a..3f97c0c59 100755 --- a/run_unittests.py +++ b/run_unittests.py @@ -2414,6 +2414,7 @@ class AllPlatformTests(BasePlatformTests): 'sub/sub1': 'share/sub1', 'sub_elided': 'share', 'nested_elided/sub': 'share', + 'new_directory': 'share/new_directory', } self.assertEqual(len(intro), len(expected)) diff --git a/test cases/common/60 install subdir/meson.build b/test cases/common/60 install subdir/meson.build index 6f92efdb8..59f3b4dc5 100644 --- a/test cases/common/60 install subdir/meson.build +++ b/test cases/common/60 install subdir/meson.build @@ -16,3 +16,6 @@ install_subdir('sub/sub1', install_dir : 'share') # strip_directory install_subdir('sub_elided', install_dir : 'share', strip_directory : true) install_subdir('nested_elided/sub', install_dir : 'share', strip_directory : true) + +# Create new empty directory that doesn't exist in the source tree +install_subdir('new_directory', install_dir : 'share') diff --git a/test cases/common/60 install subdir/test.json b/test cases/common/60 install subdir/test.json index 88c6f4bda..0dd885cb5 100644 --- a/test cases/common/60 install subdir/test.json +++ b/test cases/common/60 install subdir/test.json @@ -11,6 +11,7 @@ {"type": "file", "file": "usr/share/sub1/third.dat"}, {"type": "file", "file": "usr/share/sub1/sub2/data2.dat"}, {"type": "file", "file": "usr/share/sub2/one.dat"}, - {"type": "file", "file": "usr/share/sub2/dircheck/excluded-three.dat"} + {"type": "file", "file": "usr/share/sub2/dircheck/excluded-three.dat"}, + {"type": "dir", "file": "usr/share/new_directory"} ] }