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.
41 lines
1.7 KiB
41 lines
1.7 KiB
name: shared_module |
|
returns: build_tgt |
|
since: 0.37.0 |
|
description: | |
|
Builds a shared module with the given sources. |
|
|
|
This is useful for building modules that will be `dlopen()`ed and |
|
hence may contain undefined symbols that will be provided by the |
|
library that is loading it. |
|
|
|
If you want the shared module to be able to refer to functions and |
|
variables defined in the [[executable]] it is loaded by, |
|
you will need to set the `export_dynamic` argument of the executable to |
|
`true`. |
|
|
|
notes: |
|
- | |
|
*Linking to a shared module on platforms other than Android is deprecated, and will be an error |
|
in the future*. |
|
It was previously allowed because it was the only way to have a shared-library-like target that |
|
contained references to undefined symbols. However, since 0.40.0, the `override_options:` |
|
[[build_target]] keyword argument can be used to create such a [[shared_library]] by passing |
|
`override_options: 'b_lundef=false'`. Shared modules have other characteristics that make |
|
them incompatible with linking, such as a lack of SONAME. |
|
On macOS and iOS, linking to shared modules is disallowed by the linker, so we disallow it at |
|
configure time. |
|
On Android, if a shared module `foo` uses symbols from another shared module `bar`, `foo` must |
|
also be linked to `bar`. Hence, linking one shared module to another will always be allowed when |
|
building for Android. |
|
|
|
posargs_inherit: _build_target_base |
|
varargs_inherit: _build_target_base |
|
kwargs_inherit: _build_target_base |
|
|
|
kwargs: |
|
vs_module_defs: |
|
type: str | file | custom_tgt | custom_idx |
|
since: 0.52.0 |
|
description: | |
|
Specify a Microsoft module definition file for controlling symbol exports, |
|
etc., on platforms where that is possible (e.g. Windows).
|
|
|