[workspace]
resolver = "2"

members = [
    "tutorial",
    "version-helper",

    "audio/audiofx",
    "audio/claxon",
    "audio/csound",
    "audio/lewton",
    "audio/speechmatics",
    "audio/spotify",

    "generic/file",
    "generic/originalbuffer",
    "generic/sodium",
    "generic/threadshare",
    "generic/inter",
    "generic/streamgrouper",
    "generic/gopbuffer",

    "mux/flavors",
    "mux/fmp4",
    "mux/mp4",

    "net/aws",
    "net/hlssink3",
    "net/mpegtslive",
    "net/ndi",
    "net/onvif",
    "net/raptorq",
    "net/reqwest",
    "net/relationmeta",
    "net/rtp",
    "net/rtsp",
    "net/webrtchttp",
    "net/webrtc",
    "net/webrtc/protocol",
    "net/webrtc/signalling",
    "net/quinn",

    "text/ahead",
    "text/json",
    "text/regex",
    "text/wrap",

    "utils/fallbackswitch",
    "utils/livesync",
    "utils/togglerecord",
    "utils/tracers",
    "utils/uriplaylistbin",

    "video/cdg",
    "video/closedcaption",
    "video/dav1d",
    "video/ffv1",
    "video/gif",
    "video/gtk4",
    "video/hsv",
    "video/png",
    "video/rav1e",
    "video/videofx",
    "video/webp",
]

# Only plugins without external dependencies
default-members = [
    "version-helper",

    "audio/audiofx",
    "audio/claxon",
    "audio/lewton",

    "generic/originalbuffer",
    "generic/threadshare",
    "generic/inter",
    "generic/gopbuffer",
    "generic/streamgrouper",

    "mux/fmp4",
    "mux/mp4",

    "net/aws",
    "net/mpegtslive",
    "net/hlssink3",
    "net/onvif",
    "net/raptorq",
    "net/reqwest",
    "net/relationmeta",
    "net/rtp",
    "net/rtsp",
    "net/webrtchttp",
    "net/webrtc",
    "net/webrtc/protocol",
    "net/webrtc/signalling",
    "net/ndi",
    "net/quinn",

    "text/ahead",
    "text/json",
    "text/regex",
    "text/wrap",

    "utils/fallbackswitch",
    "utils/livesync",
    "utils/togglerecord",
    "utils/tracers",
    "utils/uriplaylistbin",

    "video/cdg",
    "video/ffv1",
    "video/gif",
    "video/hsv",
    "video/png",
    "video/rav1e",
]

[profile.release]
lto = "thin"
opt-level = 3
debug = true
panic = 'unwind'

[profile.dev]
opt-level = 1
lto = "off"

[workspace.package]
version = "0.14.0-alpha.1"
repository = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs"
edition = "2021"
rust-version = "1.80"

[workspace.dependencies]
glib = { git = "https://github.com/gtk-rs/gtk-rs-core", branch = "main" }
gio = { git = "https://github.com/gtk-rs/gtk-rs-core", branch = "main" }
cairo-rs = { git = "https://github.com/gtk-rs/gtk-rs-core", branch = "main", features=["use_glib"] }
pango = { git = "https://github.com/gtk-rs/gtk-rs-core", branch = "main" }
pangocairo = { git = "https://github.com/gtk-rs/gtk-rs-core", branch = "main" }
gtk = { package = "gtk4", git = "https://github.com/gtk-rs/gtk4-rs", branch = "main", features = ["v4_6"]}
gdk-wayland = { package = "gdk4-wayland", git = "https://github.com/gtk-rs/gtk4-rs", branch = "main", features = ["v4_4"]}
gdk-x11 = { package = "gdk4-x11", git = "https://github.com/gtk-rs/gtk4-rs", branch = "main", features = ["v4_4"]}
gdk-win32 = { package = "gdk4-win32", git = "https://github.com/gtk-rs/gtk4-rs", branch = "main", features = ["v4_4"]}
gst = { package = "gstreamer", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "main" }
gst-allocators = { package = "gstreamer-allocators", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "main" }
gst-analytics = { package = "gstreamer-analytics", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "main" }
gst-app = { package = "gstreamer-app", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "main" }
gst-audio = { package = "gstreamer-audio", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "main" }
gst-base = { package = "gstreamer-base", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "main" }
gst-check = { package = "gstreamer-check", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "main" }
gst-gl = { package = "gstreamer-gl", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "main" }
gst-gl-egl = { package = "gstreamer-gl-egl", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "main" }
gst-gl-wayland = { package = "gstreamer-gl-wayland", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "main" }
gst-gl-x11 = { package = "gstreamer-gl-x11", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "main" }
gst-net = { package = "gstreamer-net", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "main" }
gst-pbutils = { package = "gstreamer-pbutils", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "main" }
gst-plugin-version-helper = { path="./version-helper" }
gst-rtp = { package = "gstreamer-rtp", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "main" }
gst-sdp = { package = "gstreamer-sdp", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "main" }
gst-utils = { package = "gstreamer-utils", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "main" }
gst-video = { package = "gstreamer-video", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "main" }
gst-webrtc = { package = "gstreamer-webrtc", git = "https://gitlab.freedesktop.org/gstreamer/gstreamer-rs", branch = "main" }