aboutsummaryrefslogtreecommitdiff
path: root/docs/yaml/functions/subproject.yaml
blob: 4d19a31785e6130afa34a326db45caa54b488989 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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: |
      Works just the same as in [[dependency]].