diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.com> | 2020-11-26 18:07:41 +0300 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.com> | 2021-01-04 14:26:45 +0300 |
commit | 8bc2e5ebb872612140a986897a78b37d3e52f78e (patch) | |
tree | d42da5f971f5c30f1e9deebd17c87c14b4ad96e6 /README.md | |
parent | fc1bae347e51f08d53631ab3319cc490b6a9cca4 (diff) |
use cargo-c to produce cdy and static libs
cargo-c will produce a pkg-config file making it easier to statically
link plugins.
Also add 'static' features for plugins depending on < 1.14 as this is the
minimal required version to use static linking because of ABI changes in
core.
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -68,6 +68,37 @@ You will find the following plugins in this repository: - `togglerecord`: Element to enable starting and stopping multiple streams together. +## Building + +gst-plugins-rs relies on [cargo-c](https://github.com/lu-zero/cargo-c/) to +generate shared and static C libraries. It can be installed using: + +``` +$ cargo install cargo-c +``` + +Then you can easily build and test a specific plugin: + +``` +$ cargo cbuild --manifest-path video/cdg/Cargo.toml +$ GST_PLUGIN_PATH=$GST_PLUGIN_PATH:target/debug gst-inspect-1.0 cdgdec +``` + +The plugin can also be installed system-wide: + +``` +$ cargo cbuild --manifest-path video/cdg/Cargo.toml --prefix=/usr +$ cargo cinstall --manifest-path video/cdg/Cargo.toml --prefix=/usr +``` + +This will install the plugin to `/usr/lib/gstreamer-1.0`. +You can use `--libdir` to pass a custom `lib` directory +such as `/usr/lib/x86_64-linux-gnu` for example. + +Note that you can also just use `cargo` directly to build Rust static libraries +and shared C libraries. `cargo-c` is mostly useful to build static C libraries +and generate `pkg-config` files. + ## LICENSE gst-plugins-rs and all crates contained in here that are not listed below are |