| name: project |
| returns: void |
| description: | |
| The first function called in each project, to initialize Meson. |
| |
| The first argument to this function must be a string defining the name |
| of this project. |
| |
| The project name can be any string you want, it's not used for |
| anything except descriptive purposes. However since it is written to |
| e.g. the dependency manifest is usually makes sense to have it be the |
| same as the project tarball or pkg-config name. So for example you |
| would probably want to use the name _libfoobar_ instead of _The Foobar |
| Library_. |
| |
| It may be followed by the list of programming languages that the project uses. |
| |
| *(since 0.40.0)* The list of languages is optional. |
| |
| These languages may be used both for `native: false` (the default) |
| (host machine) targets and for `native: true` (build machine) targets. |
| *(since 0.56.0)* The build machine compilers for the specified |
| languages are not required. |
| |
| Supported values for languages are `c`, `cpp` (for `C++`), `cuda`, |
| `cython`, `d`, `objc`, `objcpp`, `fortran`, `java`, `cs` (for `C#`), |
| `vala` and `rust`. |
| |
| posargs: |
| project_name: |
| type: str |
| description: The name of the project. |
| |
| varargs: |
| name: language |
| type: str |
| description: The languages that Meson should initialize. |
| |
| kwargs: |
| default_options: |
| type: list[str] | dict[str | bool | int | list[str]] |
| description: | |
| Accepts strings in the form `key=value` |
| which have the same format as options to `meson configure`. |
| For example to set the default project type you would |
| set this: `default_options : ['buildtype=debugoptimized']`. Note |
| that these settings are only used when running Meson for the first |
| time. Global options such as `buildtype` can only be specified in |
| the master project, settings in subprojects are ignored. Project |
| specific options are used normally even in subprojects. |
| |
| Note that some options can override the default behavior; |
| for example, using `c_args` here means that the `CFLAGS` |
| environment variable is not used. Consider using |
| [[add_project_arguments()]] instead. |
| |
| *(since 1.2.0)*: A dictionary may now be passed. |
| |
| version: |
| type: str | file |
| description: | |
| A free form string describing the version of this project. |
| You can access the value in your Meson build files |
| with [[meson.project_version]]. *(Since 0.57.0)* this can also be a |
| [[@file]] object pointing to a file that contains exactly one line of |
| text. |
| |
| meson_version: |
| type: str |
| description: | |
| Takes a string describing which Meson version the project requires. |
| Usually something like `>=0.28.0`. |
| |
| license: |
| type: str | list[str] |
| description: | |
| Takes a string or array of strings describing the license(s) the code is under. |
| |
| This *should* be an [SPDX license expression](https://spdx.dev/ids/), |
| using the standardized license identifier from the [SPDX license |
| list](https://spdx.org/licenses/). Usually this would be something like |
| `license : 'GPL-2.0-or-later'`. If there are multiple licenses you can use the |
| `AND` and `OR` operators to join them: `license : 'Apache-2.0 OR GPL-2.0'`. |
| |
| For backwards compatibility reasons you can also pass an array of |
| licenses here. This is not recommended, as it is ambiguous: `license : |
| ['Apache-2.0', 'GPL-2.0-only']` instead use an SPDX expression: `license |
| : 'Apache-2.0 OR GPL-2.0-only'`, which makes it clear that the license |
| mean OR, not AND. |
| |
| Note that the text is informal and is only written to the dependency |
| manifest. Meson does not do any license validation, you are responsible |
| for verifying that you abide by all licensing terms. You can access the |
| value in your Meson build files with `meson.project_license()`. |
| |
| license_files: |
| type: str | list[str] |
| since: 1.1.0 |
| description: | |
| Takes a string or array of strings with the paths to the license file(s) |
| the code is under. |
| |
| This enhances the value of the `license` kwarg by allowing to specify both |
| the short license name and the full license text. Usually this would be |
| something like `license_files: ['COPYING']`. |
| |
| Note that the files are informal and are only installed with the dependency |
| manifest. Meson does not do any license validation, you are responsible |
| for verifying that you abide by all licensing terms. You can access the |
| value in your Meson build files with [[meson.project_license_files]]. |
| |
| subproject_dir: |
| type: str |
| default: "'subprojects'" |
| description: | |
| Specifies the top level directory name that holds Meson subprojects. |
| This is only meant as a compatibility option |
| for existing code bases that house their embedded source code in a |
| custom directory. All new projects should not set this but instead |
| use the default value. It should be noted that this keyword |
| argument is ignored inside subprojects. There can be only one |
| subproject dir and it is set in the top level Meson file. |