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.txt` (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. - `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: list[str] since: 0.37.0 description: | An array of default option values that override those set in the subproject's `meson_options.txt` (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. 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: | If `true`, 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]].