This is needed to use gst-uninstalled mode over NFS when gst-build is a
worktree. When this is the case, the .git is a file that links to the original
git tree, but this tree is unlikely to be visible over NFS. Instead of forcing
NFS contorsion, simply ignore the error.
This is a workaround for a Meson bug that incorrectly trigger
reconfigure when files change in build directory. This commit can be
reverted once GStreamer depends on Meson >=0.54.0.
See https://github.com/mesonbuild/meson/pull/6770Fixes: #85
When building with -Ddefault_library=static, also build a single library
containing all built plugins. Any external dependencies are still
dynamically linked.
A monolithic library is easier to distribute, and in some envs like
Android is required.
Having vaapi decoders/encoders accidentally available by default often
causes strange test failures or weird behaviour since the plugins are
sometimes buggy or have different behaviour.
The only requirement for the rust plugins is that a rust toolchain be
present on the system. This is problematic:
1. This means gst-build on Windows is broken by default if you have
a Rust toolchain, since glib can't be used uninstalled
2. No output is printed on Windows at all while the rust plugins are
being built. `custom_target()`'s `console:` keyword argument seems
to be broken on some Windows shells.
3. Even on Linux/macOS having this enabled by default is problematic
since it more than doubles the total build time.
4. The biggest issue with having it enabled by default is that it does
not dependency tracking, so we always run `cargo`, which might
update crates. This increases friction when you're working on
unrelated code.
This is useful when you want to create a worktree from let's say master
branch and start a new branch. This basically reproduce git-worktree -b
options.
allow for workflows that don't want the gst scripts to start shells,
this can be awkward for higher-level scripts setting up shells
themselves.
this is especially useful in combination with eval, and mimics the sort
of thing you can do with ssh-agent -s.
So gst-build/prefix/etc/xdg/tizonia/tizonia.conf can be found.
Which one contains path to tizonia plugins. Useful when
compiling tizonia-openmax-il and installing it in gst-build
's prefix location:
autoreconf -ifs
./configure --disable-player
--without-libspotify
--prefix=path_to_gst-build/prefix/
make && make install
Allows the following to work:
gst-launch-1.0 videotestsrc ! vp8enc ! omxvp8dec ! xvimagesink
`add` behaves the same as before. `rm` removes worktrees.
`git worktree remove` on the gst-build worktree will delete the
subproject worktrees inside it, but will not remove the references to
them in the main repository's subproject worktrees. The `rm` command
will.
It's pretty common to have the same branch for a subproject in
multiple worktrees. F.ex., when you want to test a feature branch
common to a few gstreamer subprojects but not the rest.
meson introspect is the wrong approach since it:
* Requires a pre-existing build directory for some branch
* Gives us potentially incorrect information since it tells us
subproject details for the current branch, not the branch we're
checking out.
* Does not allow us to share the git repos for non-gst repos since it
can't tell us the git branches for them.
Instead, parse the wrap files in the branch we're checking out since
they're just INI-style config files.