mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2024-12-23 18:40:32 +00:00
39e9ad1d29
Normal "fat" lto is quite resource heavy and requires a lot of ram at compile time. Thinlto is a much lighter alternative that produces comparable results performance but it scales much better. [1] [2] [3] All browser engines also compile with thinlto exclusively, as it's almost as fast and saves considerable amount of link time in the build. [1]: https://doc.rust-lang.org/cargo/reference/profiles.html#lto [2]: https://clang.llvm.org/docs/ThinLTO.html [3]: https://blog.llvm.org/2016/06/thinlto-scalable-and-incremental-lto.html In a test build on a windows machine, this brings down the from scratch compile time from 7m30s to roughly 5m. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1922>
163 lines
5.4 KiB
TOML
163 lines
5.4 KiB
TOML
[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" }
|