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.