The Meson Build System
http://mesonbuild.com/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
4.9 KiB
120 lines
4.9 KiB
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] |
|
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. |
|
|
|
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.
|
|
|