This improves the common case of a simple meson.build which doesn't contain any 'native: true' targets to not require a native compiler when cross-compiling, without needing any changes in the meson.build. v2: Do it the right way around!pull/6532/head
parent
7a159ff1e1
commit
c5a32c2afe
3 changed files with 26 additions and 7 deletions
@ -1,5 +1,20 @@ |
|||||||
## Native (build machine) compilers not always required |
## Native (build machine) compilers not always required |
||||||
|
|
||||||
`add_languages()` gained a `native:` keyword, indicating if a native or cross |
`add_languages()` gained a `native:` keyword, indicating if a native or cross |
||||||
compiler is to be used. Currently, for backwards compatibility, if the keyword |
compiler is to be used. |
||||||
is absent, that means both are used. |
|
||||||
|
For the benefit of existing simple build definitions which don't contain any |
||||||
|
`native: true` targets, without breaking backwards compatibility for build |
||||||
|
definitions which assume that the native compiler is available after |
||||||
|
`add_languages()`, if the `native:` keyword is absent the languages may be used |
||||||
|
for either the build or host machine, but are never required for the build |
||||||
|
machine. |
||||||
|
|
||||||
|
This changes the behaviour of the following meson fragment (when cross-compiling |
||||||
|
but a native compiler is not available) from reporting an error at |
||||||
|
`add_language` to reporting an error at `executable`. |
||||||
|
|
||||||
|
``` |
||||||
|
add_language('c') |
||||||
|
executable('main', 'main.c', native: true) |
||||||
|
``` |
||||||
|
Loading…
Reference in new issue