|
|
|
name: shared_library
|
|
|
|
returns: lib
|
|
|
|
description: Builds a shared library with the given sources.
|
|
|
|
|
|
|
|
posargs_inherit: _build_target_base
|
|
|
|
varargs_inherit: _build_target_base
|
|
|
|
kwargs_inherit: _build_target_base
|
|
|
|
|
|
|
|
kwargs:
|
|
|
|
version:
|
|
|
|
type: str
|
|
|
|
description: |
|
|
|
|
A string specifying the version of this shared library,
|
|
|
|
such as `1.1.0`. On Linux and OS X, this is used to set the shared
|
|
|
|
library version in the filename, such as `libfoo.so.1.1.0` and
|
|
|
|
`libfoo.1.1.0.dylib`. If this is not specified, `soversion` is used
|
|
|
|
instead (see above).
|
|
|
|
|
|
|
|
soversion:
|
|
|
|
type: str | int
|
|
|
|
description: |
|
|
|
|
A string or integer specifying the soversion of this shared library,
|
|
|
|
such as `0`. On Linux and Windows this is used to set the
|
|
|
|
soversion (or equivalent) in the filename. For example, if
|
|
|
|
`soversion` is `4`, a Windows DLL will be called `foo-4.dll` and one
|
|
|
|
of the aliases of the Linux shared library would be
|
|
|
|
`libfoo.so.4`. If this is not specified, the first part of `version`
|
|
|
|
is used instead (see below). For example, if `version` is `3.6.0` and
|
|
|
|
`soversion` is not defined, it is set to `3`.
|
|
|
|
|
|
|
|
darwin_versions:
|
|
|
|
type: str | int | list[str]
|
|
|
|
since: 0.48.0
|
|
|
|
description: |
|
|
|
|
Defines the `compatibility version` and `current version` for the dylib on macOS.
|
|
|
|
If a list is specified, it must be
|
|
|
|
either zero, one, or two elements. If only one element is specified
|
|
|
|
or if it's not a list, the specified value will be used for setting
|
|
|
|
both compatibility version and current version. If unspecified, the
|
|
|
|
`soversion` will be used as per the aforementioned rules.
|
|
|
|
|
|
|
|
vs_module_defs:
|
|
|
|
type: str | file | custom_tgt | custom_idx
|
|
|
|
description: |
|
|
|
|
Specify a Microsoft module definition file for controlling symbol exports,
|
|
|
|
etc., on platforms where that is possible (e.g. Windows).
|
|
|
|
|
|
|
|
*(Since 1.3.0)* [[@custom_idx]] are supported
|
|
|
|
|
|
|
|
rust_abi:
|
|
|
|
type: str
|
|
|
|
since: 1.3.0
|
|
|
|
description: |
|
|
|
|
Set the specific ABI to compile (when compiling rust).
|
|
|
|
- 'rust' (default): Create a "dylib" crate.
|
|
|
|
- 'c': Create a "cdylib" crate.
|