parent
038d072364
commit
9cf7a12561
4 changed files with 51 additions and 1 deletions
@ -0,0 +1,26 @@ |
||||
## structured_sources() |
||||
|
||||
A new function, `structured_sources()` has been added. This function allows |
||||
languages like Rust which depend on the filesystem layout at compile time to mix |
||||
generated and static sources. |
||||
|
||||
```meson |
||||
executable( |
||||
'main', |
||||
structured_sources( |
||||
'main.rs, |
||||
{'mod' : generated_mod_rs}, |
||||
) |
||||
) |
||||
``` |
||||
|
||||
Meson will then at build time copy the files into the build directory (if |
||||
necessary), so that the desired file structure is laid out, and compile that. In |
||||
this case: |
||||
|
||||
``` |
||||
root/ |
||||
main.rs |
||||
mod/ |
||||
mod.rs |
||||
``` |
@ -0,0 +1,21 @@ |
||||
name: structured_sources |
||||
returns: structured_src |
||||
since: 0.62.0 |
||||
description: | |
||||
Create a StructuredSource object, which is opaque and may be passed as a source |
||||
to any build_target (including static_library, shared_library, executable, |
||||
etc.). This is useful for languages like Rust, which use the filesystem layout |
||||
to determine import names. This is only allowed in Rust targets, and cannot be |
||||
mixed with non structured inputs. |
||||
|
||||
posargs: |
||||
root: |
||||
type: list[str | file | custom_tgt | custom_idx | generated_list] |
||||
description: Sources to put at the root of the generated structure |
||||
|
||||
optargs: |
||||
additional: |
||||
type: dict[str | file | custom_tgt | custom_idx | generated_list] |
||||
description: | |
||||
Additional sources, where the key is the directory under the root to place |
||||
the values |
@ -0,0 +1,3 @@ |
||||
name: structured_src |
||||
long_name: Structured Source |
||||
description: Opaque object returned by [[structured_sources]]. |
Loading…
Reference in new issue