Commit graph

317 commits

Author SHA1 Message Date
Xavier Claessens
66d22c103b Meson: dict.has_key() method has no 'default' argument
Meson silently accept those keyword arguments, will produce a warning in
the future: https://github.com/mesonbuild/meson/pull/6780
2020-03-12 14:41:24 -04:00
Xavier Claessens
7ef372db76 Meson: Fix useless reconfigure when plugins libs change
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/6770

Fixes: #85
2020-03-11 13:49:11 -04:00
Xavier Claessens
7fa292406e Add example using gstreamer-full
It will be used by the CI to verify we can build it.
2020-03-04 08:28:11 -05:00
Xavier Claessens
35285c51b8 Add gstreamer-full library containing all plugins and their deps
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.
2020-03-04 08:23:52 -05:00
Xavier Claessens
7cf00627be Simplify generate_plugins_path.py script
This also fix an empty plugin name being prepended to the list.
2020-03-04 08:18:09 -05:00
Nirbheek Chauhan
6dfcecb16a Disable vaapi feature by default
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.
2020-03-02 11:11:47 +05:30
Nirbheek Chauhan
7f231c2d8a Disable rust feature option by default
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.
2020-03-02 11:05:41 +05:30
Nirbheek Chauhan
c67034c529 Remove unused variable in meson.build
We don't use this anywhere. It's confusing.
2020-03-02 11:04:40 +05:30
Seungha Yang
588250eaeb meson: Apply msvc warning level to cpp too
We have c++ code as well.
2020-03-01 19:58:35 +09:00
Xavier Claessens
d06b4ffe1e libsoup: Bump subproject version to 2.68.4
Older versions fails to build because the glib dependency was wrong.

Fixes: #75
2020-02-27 13:43:36 +00:00
Stéphane Cerveau
bc5c73e651 git-update: fix typo in message 2020-02-27 09:01:57 +01:00
Nirbheek Chauhan
7716ea303a cross-files/android: Update paths and args for latest NDK
-fuse-ld=gold was always needed, but we missed it while adding this.

The rest are new in NDK r21.
2020-02-21 22:25:21 +05:30
Nirbheek Chauhan
ee4108a086 cross-files/android: cpu is aarch64, not arm64
Matching the value in glib:
https://gitlab.gnome.org/GNOME/glib/merge_requests/1376#note_719427
2020-02-21 16:44:37 +00:00
Stéphane Cerveau
b9acfcace8 git-update: provides a check status option
Add --check-status to git-update python script
to provide the list of subprojects with their
git status (branch and state).
2020-02-19 21:53:05 +01:00
Stéphane Cerveau
631677589c libxml2: update wrap path to 2.9.7-6
This patch allows to fallback on zlib subproject
2020-02-19 13:45:52 +01:00
Nirbheek Chauhan
e958c85b37 Nuke setup.py: It doesn't do anything special
It's just confusing for people to see that in the build root, and we
do not even mention this file in the README.
2020-02-12 01:56:23 +05:30
Nicolas Dufresne
32bf9a29f7 gst-worktree.py: Add execution permission
This allow doing ./gst-worktree.py directly.
2020-02-02 17:44:00 -05:00
Nicolas Dufresne
c1f9d409b4 gst-worktree: Allow creating a new branch
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.
2020-01-31 13:56:05 -05:00
Thibault Saunier
7d08aef9ed devenv: Fix path handling for gdb support
And enable gdb support only when gdb is avalaible
2020-01-19 11:21:17 +00:00
Nirbheek Chauhan
2f11c43f49 win-flex-bison: Use gstreamer mirror as primary source
Use the gstreamer mirror as the primary source and fallback to
upstream if it's down.
2020-01-18 17:54:48 +05:30
Nirbheek Chauhan
352b838121 win-nasm: Use gstreamer mirror as primary source
nasm.us went down today and broke all our CI. Use the gstreamer mirror
as the primary source and fallback to nasm.us if that's down.
2020-01-18 17:54:48 +05:30
Nirbheek Chauhan
439dfa2955 win-nasm: Error out if accidentally called on non-Windows 2020-01-18 17:54:36 +05:30
Guillaume Desmottes
4720ef8767 fetch wrap patches from github
wrapdb.mesonbuild.com has been down for a few days now.

Fix #71
2020-01-16 13:21:26 +05:30
Tim-Philipp Müller
ef2c97babe meson: bump glib subproject wrap to GLib 2.62 2020-01-13 17:16:52 +00:00
Thibault Saunier
84e01411e4 uninstalled: Add support for GStreamer and GLib gdb scripts 2020-01-13 11:41:40 -03:00
Tim-Philipp Müller
5e6c0b389a meson: add graphene subproject
So we can build all the OpenGL elements.
2020-01-08 17:40:43 +00:00
Charlie Turner
c57dca5220 dev environment: allow printing only env without starting a shell
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.
2020-01-06 21:06:42 +00:00
Seungha Yang
7aaa11aa77 gitignore: Ignore libxml2 and sqlite
Add more things to ignore.
2020-01-06 12:19:08 +00:00
Guillaume Desmottes
1e8cdbf137 git-update: try updating cargo deps
May prevent build errors if a newer version gstreamer-rs or
gst-plugins-rs depend on an updated version of a git dependency.
2019-12-24 15:08:02 +05:30
Guillaume Desmottes
20fc4b92b8 add gst-plugins-rs
Fix #63
2019-12-24 09:25:40 +05:30
Julien Isorce
cca62a11f5 env: preprend gst-build/prefix/etc/xdg to XDG_CONFIG_DIRS
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
2019-12-23 09:38:59 +00:00
Nirbheek Chauhan
b46aa21ed4 gst-env: Automatically set the prompt for zsh too 2019-12-22 20:16:25 +05:30
Philippe Normand
7cbd30eb65 README: Remove now-useless Fish prompt setup docs
After commit e13e6758e3 there's no need to
manually configure the prompt.
2019-12-20 19:34:05 +01:00
Nirbheek Chauhan
bc1c337c77 gst-env: Don't put helper binaries in PATH
Check if the executable would be installed into bindir before adding
it to PATH in the uninstalled shell.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-build/issues/67
2019-12-19 16:24:37 +05:30
Nirbheek Chauhan
245baadbce gst-env: Fix shell name check
We should use `endswith`, not `in`. Else we'll match paths like:

`/home/arbash/.local/bin/fish` as a bash shell, not a fish shell.
2019-12-19 02:45:44 +05:30
Nirbheek Chauhan
e13e6758e3 gst-env: Set the prompt for fish to be same as bash 2019-12-19 02:39:01 +05:30
Nirbheek Chauhan
675cec1ed2 gst-env: Ignore SIGINT when using the fish shell
After discussion with fish upstream it looks like it will take some
work to fix this issue.

https://github.com/fish-shell/fish-shell/pull/6426#issuecomment-567174105

In the meantime, this only happens when there's no command running in
the terminal, and in that case the shell just ignores it anyway. So
just do that in `gst-env.py`.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-build/issues/18
2019-12-19 02:14:30 +05:30
Xavier Claessens
4bf0504e2a Bump libsoup wrap to latest stable release
It contains fix to properly fallback to libxml2 and sqlite subprojects,
as well as using feature options.
2019-12-03 19:41:24 -05:00
Stéphane Cerveau
c9a52c7939 dev environment: update documentation
Add gst-dev.py usage with an external script.
2019-11-25 20:40:05 +00:00
Nirbheek Chauhan
769711394e gst-worktree: Add sub-commands: add and rm
`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.
2019-11-24 01:25:38 +05:30
Nirbheek Chauhan
5b77e65d06 Move checkout-branch-worktree to gst-worktree.py
We will add more actions to it than just 'checkout'. Also add
a wrapper shell script that calls gst-worktree.py with the correct
arguments.
2019-11-24 01:25:38 +05:30
Nirbheek Chauhan
85e818947b .gitignore: Ignore subproject package cache 2019-11-23 23:39:54 +05:30
Nirbheek Chauhan
dd065f67cf git-worktree: Fix indentation 2019-11-23 17:08:17 +05:30
Nirbheek Chauhan
2138bce2f1 git-worktree: Allow multiple worktrees for subproject branches
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.
2019-11-23 17:08:17 +05:30
Nirbheek Chauhan
a950c286ba git-worktree: Parse wrap files instead of meson introspect
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.
2019-11-23 17:08:17 +05:30
Xavier Claessens
d72ce5f14e Add sqlite.wrap from wrapdb
This allows building libsoup support on platforms that does not have
sqlite.
2019-11-17 15:47:48 +00:00
Jan Alexander Steffens (heftig)
49fea2520f
python: Avoid using 'is' to compare strings
This is the wrong operator to use, which only seems to work because
`os.name` and `'nt'` happen to be the same object. Python 3.8 also
produces a `SyntaxWarning` when encountering this pattern.
2019-11-11 12:41:44 +01:00
Philippe Normand
2e6bd1ca8d gst-env: Fix the gst plugin file path regex for Linux platforms
On Linux, the library file is stored in the platform triplet directory under the
lib directory (hence for example
lib/x86_64-linux-gnu/gstreamer-1.0/libgstfoo.so) so the regex needs to take this
into account.

With this change the LD_LIBRARY_PATH on Linux now contains only the directories
with gst libs, ignoring the plugins, as initially intended in
c6613d8da2.

Fixes #56
2019-11-06 09:33:46 +01:00
Philippe Normand
aded9c617f gst-env: Ensure target install filename is a list
At least in Meson 0.49, the target['install_name'] is a string, not a list, so
the heuristics declared in the is_library_target_and_not_plugin() can't apply
because Python is actually happy to iterate over a string without any warning.
2019-11-06 09:33:46 +01:00
Seungha Yang
f7ac326d5a meson: Specify encoding as utf-8 for msvc
Some projects does not have this option which causes verbose warnings
2019-11-04 20:43:18 +00:00