name: install_subdir
returns: void
description: |
  Installs the entire given subdirectory and its contents from the
  source tree to the location specified by the keyword argument
  `install_dir`.

  *(since 0.45.0, deprecated since 0.60.0)* If the subdirectory does not exist
  in the source tree, an empty directory is created in the specified location.
  A newly created subdirectory may only be created in the keyword argument
  `install_dir`. There are a number of flaws with this method, and it was never
  intentionally designed to work this way, please use [[install_emptydir]]
  instead.

example: |
  For a given directory `foo`:
  ```text
  foo/
    bar/
      file1
    file2
  ```
  `install_subdir('foo', install_dir : 'share', strip_directory : false)` creates
  ```text
  share/
    foo/
      bar/
        file1
      file2
  ```

  `install_subdir('foo', install_dir : 'share', strip_directory : true)` creates
  ```text
  share/
    bar/
      file1
    file2
  ```

  `install_subdir('foo/bar', install_dir : 'share', strip_directory : false)` creates
  ```text
  share/
    bar/
      file1
  ```

  `install_subdir('foo/bar', install_dir : 'share', strip_directory : true)` creates
  ```text
  share/
    file1
  ```

  `install_subdir('new_directory', install_dir : 'share')` creates
  ```text
  share/
    new_directory/
  ```

warnings:
  - the `install_mode` kwarg ignored integer values between 0.59.0 -- 1.1.0.

posargs:
  subdir_name:
    type: str
    description: The sub-directory to install

kwargs:
  install_mode:
    type: array[str | int]
    since: 0.47.0
    description: |
      Specify the file mode in symbolic format
      and optionally the owner/uid and group/gid for the installed files.

      See the `install_mode` kwarg of [[install_data]] for more information.

  install_tag:
    type: str
    since: 0.60.0
    description: |
      A string used by the `meson install --tags` command
      to install only a subset of the files. By default these files have no install
      tag which means they are not being installed when `--tags` argument is specified.

  exclude_files:
    type: array[str]
    description: |
      An array of file names that should not be installed.
      Names are interpreted as paths relative to the `subdir_name` location.

  exclude_directories:
    type: array[str]
    since: 0.47.0
    description: |
      An array of directory names that should not be installed.
      Names are interpreted as paths relative to the `subdir_name` location.

  install_dir:
    type: str
    description: Where to install to.

  strip_directory:
    type: bool
    since: 0.45.0
    default: false
    description: |
      Install directory contents.
      If `strip_directory=true` only the last component of the source path is used.

  follow_symlinks:
    type: bool
    since: 1.3.0
    default: true
    description: |
      If true, dereferences links and copies their target instead.  The default
      value will become false in the future.
