Use an array instead of a dict to make sure we iterate over
the list of subprojects in the right order, which is first
GStreamer core, then gst-plugins-base, then other things.
Without this subprojects might get configured in random order,
in which case gstreamer or gst-plugins-base libs might get picked
up via pkg-config if they are also available installed, instead of
being picked up from the subproject. This breaks all kinds of
assumptions in gst-build and will likely have strange effects
and/or lead to build failures such as
subprojects/gst-plugins-good/tests/check/meson.build:144:2:
ERROR: 'gstreamer-plugins-base-1.0' is not a pkgconfig dependency
Starting with Meson 0.50, meson instrospect --targets uses a list
for the filename and install_filenames of each target. Handle both
lists and strings.
Since gst-devtools checks for gst-rtsp-server and will
happily pick up an external dep which isn't what we want
if we configure it as subproject afterwards.
This assumes meson dicts are always stable, which may
not necessarily be the case, but it seems to work in
practice for now.
See #16
This to simplify the checks made when for example a flex binary
is available system wide: the build process was failing when
that system wide binary didn't have the required version. Instead
of adding more checks and making things more complex, let's just
always use our binary subproject.
libpsl is a dependency if libsoup that has an upstream Meson build
system (in master only).
libsoup also needs libxml2 but we already have a wrap file for it.
The only remaining dependency that must come from the system is sqlite3.
These are example cross files that will be used by the CI. They
could require manual editing to change hardcoded paths to toolchains
when used on different environment.
Currently gst-uninstalled.py changes the current directory to the root
of the gst-build before executing execute the command passed as
arguments. This is unnecessary, it creates confusion and makes scripting
more cumbersome. This patch fixes that.
Validate plugins are automatically scanned from GST_VALIDATE_PLUGIN_PATH
instead. Adding them to GST_PLUGIN_PATH causes race conditions as the
plugins may be loaded before validate itself.
This commit adds a .gitlab-ci.yml file, which uses a feature
to fetch the config from a centralized repository. The intent is
to have all the gstreamer modules use the same configuration.
The configuration is currently hosted at the gst-ci repository
under the gitlab/ci_template.yml path.
We now use a different approach to setting up our
uninstalled python environment:
We add the gst-python folder to PYTHONPATH, and it no
longer contains __init__.py files. This means that
import gi.overrides correctly loads pygobject's __init__
module, but import gi.overrides.Gst also works, as __init__
files are no longer required by python.