Added "native" kwarg to add_XXX_args. Closes #3669.
parent
6cd71a8033
commit
54aed1a92c
10 changed files with 160 additions and 40 deletions
@ -0,0 +1,34 @@ |
||||
## Projects args can be set separately for cross and native builds (potentially breaking change) |
||||
|
||||
It has been a longstanding bug (or let's call it a "delayed bug fix") |
||||
that if yo do this: |
||||
|
||||
```meson |
||||
add_project_arguments('-DFOO', language : 'c') |
||||
``` |
||||
|
||||
Then the flag is used both in native and cross compilations. This is |
||||
very confusing and almost never what you want. To fix this a new |
||||
keyword `native` has been added to all functions that add arguments, |
||||
namely `add_global_arguments`, `add_global_link_arguments`, |
||||
`add_project_arguments` and `add_project_link_arguments` that behaves |
||||
like the following: |
||||
|
||||
``` |
||||
## Added to native builds when compiling natively and to cross |
||||
## compilations when doing cross compiles. |
||||
add_project_arguments(...) |
||||
|
||||
## Added only to native compilations, not used in cross compilations. |
||||
add_project_arguments(..., native : true) |
||||
|
||||
## Added only to cross compilations, not used in native compilations. |
||||
add_project_arguments(..., native : false) |
||||
``` |
||||
|
||||
Also remember that cross compilation is a property of each |
||||
target. There can be target that are compiled with the native compiler |
||||
and some which are compiled with the cross compiler. |
||||
|
||||
Unfortunately this change is backwards incompatible and may cause some |
||||
projects to fail building. However this should be very rare in practice. |
Loading…
Reference in new issue