blob: f633aca966fe3d411ef8d7fe175f938505823685 [file] [log] [blame]
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.