name: subproject
returns: subproject
description: |
  Takes the project specified in the positional argument and brings that
  in the current build specification by returning a [[@subproject]] object.
  Subprojects must always be placed inside
  the `subprojects` directory at the top source directory. So for
  example a subproject called `foo` must be located in
  `${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`
    (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` built-in option can also be overridden.
    *(since 1.2.0)*: A dictionary may be passed instead of array.
  - `version`: works just like the same as in `dependency`.
    It specifies what version the subproject should be, as an example `>=1.0.1`
  - `required` *(since 0.48.0)*: By default, `required` is `true` and
    Meson will abort if the subproject could not be setup. You can set
    this to `false` and then use the `.found()` method on the [[@subproject]]
    object. You may also pass the value of a
    [`feature`](Build-options.md#features) option, same as
    [[dependency]].

  Note that you can use the returned [[@subproject]] object
  to access any variable in the
  subproject. However, if you want to use a dependency object from
  inside a subproject, an easier way is to use the `fallback:` keyword
  argument to [[dependency]].

  [See additional documentation](Subprojects.md).

posargs:
  subproject_name:
    type: str
    description: |
      Name of the subproject. The subproject must exist in the `subprojects`
      directory (or the directory specified in the `subproject_dir` of
      [[project]]) as a directory or wrap file.

kwargs:
  default_options:
    type: array[str] | dict[str | bool | int | array[str]]
    since: 0.37.0
    description: |
      An array of default option values
      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` built-in option can also be overridden.
      *(since 1.2.0)*: A dictionary may now be passed.

  version:
    type: str
    description: |
      Works just like the same as in [[dependency]].
      It specifies what version the subproject should be, as an example `>=1.0.1`.

  required:
    type: bool | feature
    since: 0.48.0
    default: true
    description: |
      Works just the same as in [[dependency]].
