Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.com>2020-11-26 18:07:41 +0300
committerGuillaume Desmottes <guillaume.desmottes@collabora.com>2021-01-04 14:26:45 +0300
commit8bc2e5ebb872612140a986897a78b37d3e52f78e (patch)
treed42da5f971f5c30f1e9deebd17c87c14b4ad96e6
parentfc1bae347e51f08d53631ab3319cc490b6a9cca4 (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.
-rw-r--r--README.md31
-rw-r--r--audio/audiofx/Cargo.toml19
-rw-r--r--audio/claxon/Cargo.toml19
-rw-r--r--audio/csound/Cargo.toml19
-rw-r--r--audio/lewton/Cargo.toml19
-rw-r--r--generic/file/Cargo.toml19
-rw-r--r--generic/sodium/Cargo.toml19
-rw-r--r--generic/threadshare/Cargo.toml19
-rw-r--r--net/reqwest/Cargo.toml19
-rw-r--r--net/rusoto/Cargo.toml19
-rw-r--r--text/wrap/Cargo.toml19
-rw-r--r--tutorial/Cargo.toml2
-rw-r--r--utils/fallbackswitch/Cargo.toml17
-rw-r--r--utils/togglerecord/Cargo.toml19
-rw-r--r--video/cdg/Cargo.toml19
-rw-r--r--video/closedcaption/Cargo.toml19
-rw-r--r--video/dav1d/Cargo.toml17
-rw-r--r--video/flavors/Cargo.toml19
-rw-r--r--video/gif/Cargo.toml19
-rw-r--r--video/hsv/Cargo.toml19
-rw-r--r--video/rav1e/Cargo.toml19
-rw-r--r--video/rspng/Cargo.toml19
22 files changed, 388 insertions, 21 deletions
diff --git a/README.md b/README.md
index 027629281..7d2b4fadd 100644
--- a/README.md
+++ b/README.md
@@ -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
diff --git a/audio/audiofx/Cargo.toml b/audio/audiofx/Cargo.toml
index 844607de7..6ae243494 100644
--- a/audio/audiofx/Cargo.toml
+++ b/audio/audiofx/Cargo.toml
@@ -20,7 +20,7 @@ nnnoiseless = { version = "0.3", default-features = false }
[lib]
name = "gstrsaudiofx"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[dev-dependencies]
@@ -29,3 +29,20 @@ gst-app = { package = "gstreamer-app", git = "https://gitlab.freedesktop.org/gst
[build-dependencies]
gst-plugin-version-helper = { path="../../version-helper" }
+
+[features]
+# GStreamer 1.14 is required for static linking
+static = ["gst/v1_14"]
+
+[package.metadata.capi]
+min_version = "0.7.0"
+
+[package.metadata.capi.header]
+enabled = false
+
+[package.metadata.capi.library]
+install_subdir = "gstreamer-1.0"
+versioning = false
+
+[package.metadata.capi.pkg_config]
+requires_private = "gstreamer-1.0, gstreamer-base-1.0, gstreamer-audio-1.0, gobject-2.0, glib-2.0, gmodule-2.0"
diff --git a/audio/claxon/Cargo.toml b/audio/claxon/Cargo.toml
index bf2fb8e09..531f49623 100644
--- a/audio/claxon/Cargo.toml
+++ b/audio/claxon/Cargo.toml
@@ -20,8 +20,25 @@ gst-check = { package = "gstreamer-check", git = "https://gitlab.freedesktop.org
[lib]
name = "gstclaxon"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[build-dependencies]
gst-plugin-version-helper = { path="../../version-helper" }
+
+[features]
+# GStreamer 1.14 is required for static linking
+static = ["gst/v1_14"]
+
+[package.metadata.capi]
+min_version = "0.7.0"
+
+[package.metadata.capi.header]
+enabled = false
+
+[package.metadata.capi.library]
+install_subdir = "gstreamer-1.0"
+versioning = false
+
+[package.metadata.capi.pkg_config]
+requires_private = "gstreamer-1.0, gstreamer-audio-1.0, gobject-2.0, glib-2.0, gmodule-2.0"
diff --git a/audio/csound/Cargo.toml b/audio/csound/Cargo.toml
index f55ec236f..8662773aa 100644
--- a/audio/csound/Cargo.toml
+++ b/audio/csound/Cargo.toml
@@ -21,7 +21,7 @@ gst-check = { package = "gstreamer-check", git = "https://gitlab.freedesktop.org
[lib]
name = "gstcsound"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[[example]]
@@ -30,3 +30,20 @@ path = "examples/effect_example.rs"
[build-dependencies]
gst-plugin-version-helper = { path = "../../version-helper" }
+
+[features]
+# GStreamer 1.14 is required for static linking
+static = ["gst/v1_14"]
+
+[package.metadata.capi]
+min_version = "0.7.0"
+
+[package.metadata.capi.header]
+enabled = false
+
+[package.metadata.capi.library]
+install_subdir = "gstreamer-1.0"
+versioning = false
+
+[package.metadata.capi.pkg_config]
+requires_private = "gstreamer-1.0, gstreamer-base-1.0, gstreamer-audio-1.0, gobject-2.0, glib-2.0, gmodule-2.0, csound"
diff --git a/audio/lewton/Cargo.toml b/audio/lewton/Cargo.toml
index 59022f62d..ec1bfe78e 100644
--- a/audio/lewton/Cargo.toml
+++ b/audio/lewton/Cargo.toml
@@ -21,8 +21,25 @@ gst-check = { package = "gstreamer-check", git = "https://gitlab.freedesktop.org
[lib]
name = "gstlewton"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[build-dependencies]
gst-plugin-version-helper = { path="../../version-helper" }
+
+[features]
+# GStreamer 1.14 is required for static linking
+static = ["gst/v1_14"]
+
+[package.metadata.capi]
+min_version = "0.7.0"
+
+[package.metadata.capi.header]
+enabled = false
+
+[package.metadata.capi.library]
+install_subdir = "gstreamer-1.0"
+versioning = false
+
+[package.metadata.capi.pkg_config]
+requires_private = "gstreamer-1.0, gstreamer-audio-1.0, gobject-2.0, glib-2.0, gmodule-2.0"
diff --git a/generic/file/Cargo.toml b/generic/file/Cargo.toml
index 60431ecc5..8e36d4823 100644
--- a/generic/file/Cargo.toml
+++ b/generic/file/Cargo.toml
@@ -16,8 +16,25 @@ once_cell = "1.0"
[lib]
name = "gstrsfile"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[build-dependencies]
gst-plugin-version-helper = { path="../../version-helper" }
+
+[features]
+# GStreamer 1.14 is required for static linking
+static = ["gst/v1_14"]
+
+[package.metadata.capi]
+min_version = "0.7.0"
+
+[package.metadata.capi.header]
+enabled = false
+
+[package.metadata.capi.library]
+install_subdir = "gstreamer-1.0"
+versioning = false
+
+[package.metadata.capi.pkg_config]
+requires_private = "gstreamer-1.0, gstreamer-base-1.0, gobject-2.0, glib-2.0, gmodule-2.0"
diff --git a/generic/sodium/Cargo.toml b/generic/sodium/Cargo.toml
index c1d2216b7..0f6e21922 100644
--- a/generic/sodium/Cargo.toml
+++ b/generic/sodium/Cargo.toml
@@ -35,7 +35,7 @@ package="gstreamer-app"
[lib]
name = "gstsodium"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[[example]]
@@ -55,3 +55,20 @@ required-features = ["serde", "serde_json", "clap"]
[build-dependencies]
gst-plugin-version-helper = { path="../../version-helper" }
+
+[features]
+# GStreamer 1.14 is required for static linking
+static = ["gst/v1_14"]
+
+[package.metadata.capi]
+min_version = "0.7.0"
+
+[package.metadata.capi.header]
+enabled = false
+
+[package.metadata.capi.library]
+install_subdir = "gstreamer-1.0"
+versioning = false
+
+[package.metadata.capi.pkg_config]
+requires_private = "gstreamer-1.0, gstreamer-base-1.0, gobject-2.0, glib-2.0, gmodule-2.0, libsodium"
diff --git a/generic/threadshare/Cargo.toml b/generic/threadshare/Cargo.toml
index 14ebe5102..abb4ba7a2 100644
--- a/generic/threadshare/Cargo.toml
+++ b/generic/threadshare/Cargo.toml
@@ -33,7 +33,7 @@ gst-app = { package = "gstreamer-app", git = "https://gitlab.freedesktop.org/gst
[lib]
name = "gstthreadshare"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[[example]]
@@ -52,3 +52,20 @@ path = "examples/tcpclientsrc_benchmark_sender.rs"
gst-plugin-version-helper = { path="../../version-helper" }
cc = "1.0.38"
pkg-config = "0.3.15"
+
+[features]
+# GStreamer 1.14 is required for static linking
+static = ["gst/v1_14"]
+
+[package.metadata.capi]
+min_version = "0.7.0"
+
+[package.metadata.capi.header]
+enabled = false
+
+[package.metadata.capi.library]
+install_subdir = "gstreamer-1.0"
+versioning = false
+
+[package.metadata.capi.pkg_config]
+requires_private = "gstreamer-1.0, gstreamer-net-1.0, gstreamer-rtp-1.0, gobject-2.0, glib-2.0, gmodule-2.0"
diff --git a/net/reqwest/Cargo.toml b/net/reqwest/Cargo.toml
index 7dc52731e..02df32b61 100644
--- a/net/reqwest/Cargo.toml
+++ b/net/reqwest/Cargo.toml
@@ -24,8 +24,25 @@ hyper = "0.13"
[lib]
name = "gstreqwest"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[build-dependencies]
gst-plugin-version-helper = { path="../../version-helper" }
+
+[features]
+# GStreamer 1.14 is required for static linking
+static = ["gst/v1_14"]
+
+[package.metadata.capi]
+min_version = "0.7.0"
+
+[package.metadata.capi.header]
+enabled = false
+
+[package.metadata.capi.library]
+install_subdir = "gstreamer-1.0"
+versioning = false
+
+[package.metadata.capi.pkg_config]
+requires_private = "gstreamer-1.0, gstreamer-base-1.0, gobject-2.0, glib-2.0, gmodule-2.0"
diff --git a/net/rusoto/Cargo.toml b/net/rusoto/Cargo.toml
index a961e5a84..81695d869 100644
--- a/net/rusoto/Cargo.toml
+++ b/net/rusoto/Cargo.toml
@@ -34,8 +34,25 @@ atomic_refcell = "0.1"
[lib]
name = "gstrusoto"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[build-dependencies]
gst-plugin-version-helper = { path="../../version-helper" }
+
+[features]
+# GStreamer 1.14 is required for static linking
+static = ["gst/v1_14"]
+
+[package.metadata.capi]
+min_version = "0.7.0"
+
+[package.metadata.capi.header]
+enabled = false
+
+[package.metadata.capi.library]
+install_subdir = "gstreamer-1.0"
+versioning = false
+
+[package.metadata.capi.pkg_config]
+requires_private = "gstreamer-1.0, gstreamer-base-1.0, gobject-2.0, glib-2.0, gmodule-2.0, libssl"
diff --git a/text/wrap/Cargo.toml b/text/wrap/Cargo.toml
index 5f93d25eb..2254ffc7a 100644
--- a/text/wrap/Cargo.toml
+++ b/text/wrap/Cargo.toml
@@ -20,7 +20,7 @@ package="gstreamer"
[lib]
name = "gstrstextwrap"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[build-dependencies]
@@ -29,3 +29,20 @@ gst-plugin-version-helper = { path="../../version-helper" }
[dev-dependencies.gst-check]
git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs"
package="gstreamer-check"
+
+[features]
+# GStreamer 1.14 is required for static linking
+static = ["gst/v1_14"]
+
+[package.metadata.capi]
+min_version = "0.7.0"
+
+[package.metadata.capi.header]
+enabled = false
+
+[package.metadata.capi.library]
+install_subdir = "gstreamer-1.0"
+versioning = false
+
+[package.metadata.capi.pkg_config]
+requires_private = "gstreamer-1.0, gobject-2.0, glib-2.0, gmodule-2.0"
diff --git a/tutorial/Cargo.toml b/tutorial/Cargo.toml
index 05074ca32..880dea6b3 100644
--- a/tutorial/Cargo.toml
+++ b/tutorial/Cargo.toml
@@ -19,7 +19,7 @@ once_cell = "1.0"
[lib]
name = "gstrstutorial"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[build-dependencies]
diff --git a/utils/fallbackswitch/Cargo.toml b/utils/fallbackswitch/Cargo.toml
index 8c24571ab..854b51cf4 100644
--- a/utils/fallbackswitch/Cargo.toml
+++ b/utils/fallbackswitch/Cargo.toml
@@ -24,7 +24,7 @@ gst-check = { package = "gstreamer-check", git = "https://gitlab.freedesktop.org
[lib]
name = "gstfallbackswitch"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[[example]]
@@ -40,3 +40,18 @@ pkg-config = "0.3"
[features]
default = ["libc"]
v1_18 = ["gst-base/v1_18"]
+# We already use 1.14 which is new enough for static build
+static = []
+
+[package.metadata.capi]
+min_version = "0.7.0"
+
+[package.metadata.capi.header]
+enabled = false
+
+[package.metadata.capi.library]
+install_subdir = "gstreamer-1.0"
+versioning = false
+
+[package.metadata.capi.pkg_config]
+requires_private = "gstreamer-1.0, gstreamer-base-1.0, gobject-2.0, glib-2.0, gmodule-2.0"
diff --git a/utils/togglerecord/Cargo.toml b/utils/togglerecord/Cargo.toml
index 685e8a2d4..8981369a4 100644
--- a/utils/togglerecord/Cargo.toml
+++ b/utils/togglerecord/Cargo.toml
@@ -23,7 +23,7 @@ either = "1.0"
[lib]
name = "gsttogglerecord"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[[example]]
@@ -33,3 +33,20 @@ required-features = ["gtk", "gio"]
[build-dependencies]
gst-plugin-version-helper = { path="../../version-helper" }
+
+[features]
+# GStreamer 1.14 is required for static linking
+static = ["gst/v1_14"]
+
+[package.metadata.capi]
+min_version = "0.7.0"
+
+[package.metadata.capi.header]
+enabled = false
+
+[package.metadata.capi.library]
+install_subdir = "gstreamer-1.0"
+versioning = false
+
+[package.metadata.capi.pkg_config]
+requires_private = "gstreamer-1.0, gstreamer-audio-1.0, gstreamer-video-1.0, gobject-2.0, glib-2.0, gmodule-2.0"
diff --git a/video/cdg/Cargo.toml b/video/cdg/Cargo.toml
index e5c73207c..30db58d9a 100644
--- a/video/cdg/Cargo.toml
+++ b/video/cdg/Cargo.toml
@@ -23,8 +23,25 @@ gst-app = { package = "gstreamer-app", git = "https://gitlab.freedesktop.org/gst
[lib]
name = "gstcdg"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[build-dependencies]
gst-plugin-version-helper = { path="../../version-helper" }
+
+[features]
+# GStreamer 1.14 is required for static linking
+static = ["gst/v1_14"]
+
+[package.metadata.capi]
+min_version = "0.7.0"
+
+[package.metadata.capi.header]
+enabled = false
+
+[package.metadata.capi.library]
+install_subdir = "gstreamer-1.0"
+versioning = false
+
+[package.metadata.capi.pkg_config]
+requires_private = "gstreamer-1.0, gstreamer-base-1.0, gstreamer-video-1.0, gobject-2.0, glib-2.0, gmodule-2.0"
diff --git a/video/closedcaption/Cargo.toml b/video/closedcaption/Cargo.toml
index edd3dad19..9646af5e7 100644
--- a/video/closedcaption/Cargo.toml
+++ b/video/closedcaption/Cargo.toml
@@ -45,9 +45,26 @@ package="gstreamer-check"
[lib]
name = "gstrsclosedcaption"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[build-dependencies]
gst-plugin-version-helper = { path="../../version-helper" }
cc = "1.0"
+
+[features]
+# We already use 1.16 which is new enough for static build
+static = []
+
+[package.metadata.capi]
+min_version = "0.7.0"
+
+[package.metadata.capi.header]
+enabled = false
+
+[package.metadata.capi.library]
+install_subdir = "gstreamer-1.0"
+versioning = false
+
+[package.metadata.capi.pkg_config]
+requires_private = "gstreamer-1.0, gstreamer-base-1.0, gstreamer-video-1.0, gobject-2.0, glib-2.0, gmodule-2.0, pango, pangocairo, cairo-gobject"
diff --git a/video/dav1d/Cargo.toml b/video/dav1d/Cargo.toml
index 476fab14a..98d63cb5d 100644
--- a/video/dav1d/Cargo.toml
+++ b/video/dav1d/Cargo.toml
@@ -17,7 +17,7 @@ once_cell = "1.0"
[lib]
name = "gstrsdav1d"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[build-dependencies]
@@ -25,3 +25,18 @@ gst-plugin-version-helper = { path = "../../version-helper" }
[features]
build = ["dav1d/build"]
+# GStreamer 1.14 is required for static linking
+static = ["gst/v1_14"]
+
+[package.metadata.capi]
+min_version = "0.7.0"
+
+[package.metadata.capi.header]
+enabled = false
+
+[package.metadata.capi.library]
+install_subdir = "gstreamer-1.0"
+versioning = false
+
+[package.metadata.capi.pkg_config]
+requires_private = "gstreamer-1.0, gstreamer-base-1.0, gstreamer-video-1.0, gobject-2.0, glib-2.0, gmodule-2.0, dav1d"
diff --git a/video/flavors/Cargo.toml b/video/flavors/Cargo.toml
index aa2c6ddb4..9da1c3643 100644
--- a/video/flavors/Cargo.toml
+++ b/video/flavors/Cargo.toml
@@ -21,8 +21,25 @@ smallvec = "1.0"
[lib]
name = "gstrsflv"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[build-dependencies]
gst-plugin-version-helper = { path="../../version-helper" }
+
+[features]
+# GStreamer 1.14 is required for static linking
+static = ["gst/v1_14"]
+
+[package.metadata.capi]
+min_version = "0.7.0"
+
+[package.metadata.capi.header]
+enabled = false
+
+[package.metadata.capi.library]
+install_subdir = "gstreamer-1.0"
+versioning = false
+
+[package.metadata.capi.pkg_config]
+requires_private = "gstreamer-1.0, gstreamer-base-1.0, gobject-2.0, glib-2.0, gmodule-2.0"
diff --git a/video/gif/Cargo.toml b/video/gif/Cargo.toml
index f25283fe3..430da8480 100644
--- a/video/gif/Cargo.toml
+++ b/video/gif/Cargo.toml
@@ -20,7 +20,7 @@ gst-check = { package = "gstreamer-check", git = "https://gitlab.freedesktop.org
[lib]
name = "gstgif"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[[example]]
@@ -29,3 +29,20 @@ path = "examples/testvideosrc2gif.rs"
[build-dependencies]
gst-plugin-version-helper = { path="../../version-helper" }
+
+[features]
+# GStreamer 1.14 is required for static linking
+static = ["gst/v1_14"]
+
+[package.metadata.capi]
+min_version = "0.7.0"
+
+[package.metadata.capi.header]
+enabled = false
+
+[package.metadata.capi.library]
+install_subdir = "gstreamer-1.0"
+versioning = false
+
+[package.metadata.capi.pkg_config]
+requires_private = "gstreamer-1.0, gstreamer-video-1.0, gobject-2.0, glib-2.0, gmodule-2.0"
diff --git a/video/hsv/Cargo.toml b/video/hsv/Cargo.toml
index bdcf6b9d7..45acbd342 100644
--- a/video/hsv/Cargo.toml
+++ b/video/hsv/Cargo.toml
@@ -23,8 +23,25 @@ gst_check = { package = "gstreamer-check", git = "https://gitlab.freedesktop.org
[lib]
name = "gsthsv"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[build-dependencies]
gst-plugin-version-helper = { path="../../version-helper" }
+
+[features]
+# GStreamer 1.14 is required for static linking
+static = ["gst/v1_14"]
+
+[package.metadata.capi]
+min_version = "0.7.0"
+
+[package.metadata.capi.header]
+enabled = false
+
+[package.metadata.capi.library]
+install_subdir = "gstreamer-1.0"
+versioning = false
+
+[package.metadata.capi.pkg_config]
+requires_private = "gstreamer-1.0, gstreamer-base-1.0, gstreamer-video-1.0, gstreamer-audio-1.0, gobject-2.0, glib-2.0, gmodule-2.0" \ No newline at end of file
diff --git a/video/rav1e/Cargo.toml b/video/rav1e/Cargo.toml
index 8e0d2f30f..f1cf6c24d 100644
--- a/video/rav1e/Cargo.toml
+++ b/video/rav1e/Cargo.toml
@@ -20,8 +20,25 @@ gst-check = { package = "gstreamer-check", git = "https://gitlab.freedesktop.org
[lib]
name = "gstrav1e"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[build-dependencies]
gst-plugin-version-helper = { path="../../version-helper" }
+
+[features]
+# GStreamer 1.14 is required for static linking
+static = ["gst/v1_14"]
+
+[package.metadata.capi]
+min_version = "0.7.0"
+
+[package.metadata.capi.header]
+enabled = false
+
+[package.metadata.capi.library]
+install_subdir = "gstreamer-1.0"
+versioning = false
+
+[package.metadata.capi.pkg_config]
+requires_private = "gstreamer-1.0, gstreamer-video-1.0, gobject-2.0, glib-2.0, gmodule-2.0"
diff --git a/video/rspng/Cargo.toml b/video/rspng/Cargo.toml
index 87a7c4051..71095a401 100644
--- a/video/rspng/Cargo.toml
+++ b/video/rspng/Cargo.toml
@@ -21,8 +21,25 @@ gst_check = { package = "gstreamer-check", git = "https://gitlab.freedesktop.org
[lib]
name = "gstrspng"
-crate-type = ["cdylib", "rlib", "staticlib"]
+crate-type = ["cdylib", "rlib"]
path = "src/lib.rs"
[build-dependencies]
gst-plugin-version-helper = { path="../../version-helper" }
+
+[features]
+# GStreamer 1.14 is required for static linking
+static = ["gst/v1_14"]
+
+[package.metadata.capi]
+min_version = "0.7.0"
+
+[package.metadata.capi.header]
+enabled = false
+
+[package.metadata.capi.library]
+install_subdir = "gstreamer-1.0"
+versioning = false
+
+[package.metadata.capi.pkg_config]
+requires_private = "gstreamer-1.0, gstreamer-video-1.0, gobject-2.0, glib-2.0, gmodule-2.0"