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.
72 lines
2.2 KiB
72 lines
2.2 KiB
--- |
|
short-description: Adding compiler arguments |
|
... |
|
|
|
# Adding arguments |
|
|
|
Often you need to specify extra compiler arguments. Meson provides two |
|
different ways to achieve this: global arguments and per-target |
|
arguments. |
|
|
|
Global arguments |
|
-- |
|
|
|
Global compiler arguments are set with the following command. As an |
|
example you could do this. |
|
|
|
```meson |
|
add_global_arguments('-DFOO=bar', language : 'c') |
|
``` |
|
|
|
This makes Meson add the define to all C compilations. Usually you |
|
would use this setting for flags for global settings. Note that for |
|
setting the C/C++ language standard (the `-std=c99` argument in GCC), |
|
you would probably want to use a default option of the `project()` |
|
function. For details see the [reference manual](Reference-manual.md). |
|
|
|
Global arguments have certain limitations. They all have to be defined |
|
before any build targets are specified. This ensures that the global |
|
flags are the same for every single source file built in the entire |
|
project with one exception. Compilation tests that are run as part of |
|
your project configuration do not use these flags. The reason for that |
|
is that you may need to run a test compile with and without a given |
|
flag to determine your build setup. For this reason tests do not use |
|
these global arguments. |
|
|
|
You should set only the most essential flags with this setting, you |
|
should *not* set debug or optimization flags. Instead they should be |
|
specified by selecting an appropriate build type. |
|
|
|
Project arguments |
|
-- |
|
|
|
Project arguments work similar to global arguments except that they |
|
are valid only within the current subproject. The usage is simple: |
|
|
|
```meson |
|
add_project_arguments('-DMYPROJ=projname', language : 'c') |
|
``` |
|
|
|
This would add the compiler flags to all C sources in the current |
|
project. |
|
|
|
Per target arguments |
|
-- |
|
|
|
Per target arguments are just as simple to define. |
|
|
|
```meson |
|
executable('prog', 'prog.cc', cpp_args : '-DCPPTHING') |
|
``` |
|
|
|
Here we create a C++ executable with an extra argument that is used |
|
during compilation but not for linking. |
|
|
|
You can find the parameter name for other languages in the [reference |
|
tables](Reference-tables.md). |
|
|
|
Specifying extra linker arguments is done in the same way: |
|
|
|
```meson |
|
executable('prog', 'prog.cc', link_args : '-Wl,--linker-option') |
|
```
|
|
|