From gst-build to local-projects
Two years ago I wrote a blog post about using gst-build inside of WebKit SDK flatpak. Well, all that has changed. That’s the true upstream spirit.There were two main reason for the change:
- Since the switch to GStreamer mono
repository,
gst-build
has been deprecated. The mechanism in WebKit were added, basically, to allow GStreamer upstream, so keepinggst-build
directory just polluted the conceptual framework. - By using
gst-build
one could override almost any other package in WebKit SDK. For example, for developing gamepad handling in WPE I addedlibmanette
as a GStreamer subproject, to link a modified version of the library rather than the one in Flatpak. But that approach added an unneeded conceptual depth in tree.
In order to simplify these operations, by taking advantage of Meson’s
subproject support directly,
gst-build
handling were removed and new mechanism was set in place: Local
Dependencies. With
local dependencies, you can add or override almost any dependency, while
flatting the tree layout, by placing at the same level GStreamer and any other
library. Of course, in order add dependencies, they must be built with meson.
For example, to override libsoup and GStreamer, just clone both repositories
below of Tools/flatpak/local-projects/subprojects
, and declare them in
WEBKIT_LOCAL_DEPS
environment variable:
export WEBKIT_SDK_LOCAL_DEPS=libsoup,gstreamer-full
export WEBKIT_SDK_LOCAL_DEPS_OPTIONS="-Dgstreamer-full:introspection=disabled -Dgst-plugins-good:soup=disabled"
build-webkit --wpe