Commit graph

284 commits

Author SHA1 Message Date
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
Seungha Yang
df0808f493 meson: Enable some msvc warnings
Enable following warnings
 - unused variable
 - unhandled enum value in switch/case

Those warnings might cause build error on CI pipeline, but not enabled
by default. For development environment, let's enable them to save
CI (and developer's time) resource.

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-build/issues/31
2019-11-04 20:43:18 +00:00
Stephan Hesse
1ee4c316c1 instead of 'examples' use 'gst-examples' as option to build the respective subproject
we want to do this because the other "examples" in plugins (tests etc) need  a lot deps (qt5 etc)
that are not needed by gst-examples itself.
2019-11-02 17:28:22 +01:00
Philippe Normand
3dc7c9de94 gst-env: Use locally built GStreamer utility programs
The host environment might not have gst-launch-1.0 and gst-inspect-1.0
installed.

Fixes #52
2019-11-02 10:56:59 +01:00
Ruben Gonzalez
a15dc0b589 Add gst-examples in gitignore 2019-10-25 16:04:52 +02:00
Mathieu Duponchelle
9dcac5fbdd subprojects: add wrap for libmicrodns
This library is used by the newly-merged mdns device provider
for discovering devices advertised over multicast dns.
2019-10-21 12:36:36 +00:00
Ruben Gonzalez
f93a39a9ee Add subprojects/gst-docs in gitignore
gst-docs in only build on Linux if hotdoc is in the PATH.

A correct gitigonore is important for modern tools like ripgrep,
fd or skim.
2019-10-20 21:21:27 +02:00
Thibault Saunier
0d54e153d3 Update ffmpeg to 4.1.4 2019-10-01 09:20:25 -03:00
Thibault Saunier
3d8662ebfe Add support for wine+mingw environments 2019-10-01 09:20:25 -03:00
Thibault Saunier
fe39bd3027 Rename 'uninstalled' to development environment
In the case of wine, the env can not be uninstalled, also developers
do not necessiraly care about the fact that it is "uninstalled", the
important thing is that it is a development environment, meaning
that they can work on GStreamer or with GStreamer in the environment.

I still keep the `uninstalled` target to avoid changing people's
habits for now.
2019-09-24 08:23:07 -03:00
Thibault Saunier
da86dcfee2 Remove msys2_setup as it is not used, not tested, not documentated 2019-09-24 08:23:07 -03:00
Nirbheek Chauhan
c6613d8da2 gst-uninstalled: Don't add plugin paths to PATH or LD_LIBRARY_PATH
We don't need to do that, and adding it causes us to exceed the PATH
length limit on Windows, which makes the terminal completely unusable.
2019-09-19 18:14:11 +05:30
Xavier Claessens
0633b417f7 Add back gtk_doc option
This is needed to disable gtk_doc in subprojects that have that option
yielding.
2019-09-18 11:27:59 -04:00
Nirbheek Chauhan
78c971df61 Update .gitignore 2019-09-16 08:51:47 +05:30
Nirbheek Chauhan
3c1b25465b Move to using GitHub binary releases
Can't update to 2.5.19 because of https://github.com/lexxmark/winflexbison/issues/48

Fixes https://gitlab.freedesktop.org/gstreamer/gst-build/issues/43
2019-09-16 08:51:06 +05:30
Tim-Philipp Müller
5291f7b2a1 subprojects: proxy-libintl: fix push-url 2019-08-14 18:51:43 +01:00
Jordan Petridis
9e7855866a
Update the flexmeson windows binary version
The old binary/url is no longer available, and the layout of the
sourceforge archvie seems to have changed to include a new
old_versions/ directory where the previous binary is
relocated.

https://sourceforge.net/projects/winflexbison/files/old_versions/

While we could use that, it seem better to invest the effort to
adapt the scipt afterwards to use the github archives instead

https://github.com/lexxmark/winflexbison/releases

So for now bump the version to get the subproject building
till we switch to github releases.
2019-07-30 07:11:10 +03:00
Yeongjin Jeong
8568e471fa uninstalled: Ensure bash prompt override even if bash script file does not exist
If automatic bash prompt override is enabled via the 'GST_BUILD_DISABLE_PS1_OVERRIDE',
We should set the bash prompt to have a visual indicator of the "gst-uninstalled" environment
even if bash script file does not exist.
2019-07-29 13:57:15 +09:00
Matthew Waters
d0acfc2bf7 add gst-examples repository to subproject list 2019-07-25 12:03:00 +10:00
Nirbheek Chauhan
5d803bda10 gst-uninstalled: Fix loading of prefix libraries on Fedora 30
On Fedora 64-bit, libdir is 'lib64'. Just add it unconditionally
everywhere because we have no reliable way of detecting which distros
or OSes will use that.
2019-07-19 21:59:03 +05:30
Nirbheek Chauhan
01eb252f67 Don't allow people to run meson inside the uninstalled env
People should not run `meson` on gst-build inside the uninstalled env.
It will cause problems because meson will detect the already-built
libraries and pkg-config files.

This is not obvious to people, and they often make this mistake.
2019-06-25 20:55:36 +05:30
Nicolas Dufresne
9c4cb201d0 uninstalled: Fix --sysroot implementation
This option was added so we could remove the sysroot path from the env
when cross-build is used over NFS. Though, the implementation wasn't complete
and went unnoticed.

This moves the sysroot path removal into the helper that prepends env so
that no more env get forgotten. This notably fixes the PATH environment.
2019-06-04 21:09:11 -04:00
Nicolas Dufresne
bb9c37dcf0 cross: Fix cross compilation meson error
The doc is not currently built in cross-compilation, but we still had
some meson code that eneded up being called and failed.
2019-06-04 15:30:43 -04:00
Niels De Graef
6bd73861ca meson: Bump minimal GLib version to 2.44
This means we can use some newer features and get rid of some
boilerplate code using the G_DECLARE_* macros.

As discussed on IRC, 2.44 is old enough by now to start depending on it.
2019-05-31 21:44:35 +00:00
Mathieu Duponchelle
dc325b42f5 uninstalled: update XDG_DATA_DIRS to point to our devhelp index
When using hotdoc, one can build the documentation for a single
subproject (eg. the GL plugins). In that case, hotdoc will look
up links in devhelp indexes available in standard locations.

To make sure this case works, we thus need to add the path to
our devhelp index to XDG_DATA_DIRS. This also means when running
devhelp from inside the environment, the devhelp books produced
by hotdoc will now show up.
2019-05-29 00:34:50 +02:00
Mathieu Duponchelle
227c35b5d3 meson: fix GstPluginsPath.json generation
The refactored code was only adding paths to plugins in projects
that build hotdoc, which is not the case of gst-python for example
2019-05-26 15:51:06 +02:00
Thibault Saunier
4c6b301fa0 uninstalled: Add libnice plugin to GST_PLUGIN_PATH 2019-05-16 16:51:49 -04:00
Thibault Saunier
2c50c067d5 meson: Add a target to regenerate doc caches for all subprojects
Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36
2019-05-16 09:32:50 -04:00
Thibault Saunier
802e18519b Avoid making a dependency between plugins and the build.ninja file
Basically meson detects that we pass file paths to run_command to regenerate the build.ninja file when those change
2019-05-15 23:23:46 -04:00
Tim-Philipp Müller
54ce8e882b meson.build: Fix typo in log message 2019-05-14 23:22:18 +01:00
Thibault Saunier
4736387c1b meson: Remove spurious subdir_done 2019-05-14 17:51:38 -04:00
Thibault Saunier
b46c29525f git-update: Make sure to download all subproject before applying manifest
Otherwise we might be missing some subprojects update
2019-05-13 11:42:42 -04:00
Thibault Saunier
fda8379411 scripts: Add a script to check that all repos are clean
This is useful to check that a build didn't result in changes in the
code/generated files

This will be used to check that the plugins documentation cache file is
properly commited, and that necessary workaround for particular case
are adopted.
2019-05-13 11:42:15 -04:00
Thibault Saunier
fbb81c6c78 Generate the GST_PLUGIN_PATH using the plugins variable in subprojects
To build the documentation, we are maintaining a 'standardise' `plugins`
variable accross all modules to list all plugins and generate
documentation for them.

This is also used to get the right plugin path when inspecting plugins
for the documentation.
2019-05-13 11:42:15 -04:00