Commit graph

245 commits

Author SHA1 Message Date
Xavier Claessens
6d79e7cc97 gst-full: Use gst_dep dependency
It is needed because that dependency object brings generated headers
too.
2020-03-16 21:54:26 -04:00
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
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
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
Guillaume Desmottes
20fc4b92b8 add gst-plugins-rs
Fix #63
2019-12-24 09:25:40 +05:30
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
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
Matthew Waters
d0acfc2bf7 add gst-examples repository to subproject list 2019-07-25 12:03:00 +10:00
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
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
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
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
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
Thibault Saunier
3d24de2f24 Build documentation with hotdoc 2019-05-13 11:42:15 -04:00
Tim-Philipp Müller
96dd9f4093 Build master again 2019-04-19 11:07:28 +01:00
Tim-Philipp Müller
5114d22911 Build 1.16.0 release 2019-04-19 02:23:51 +01:00
Tim-Philipp Müller
c0a8dd04b5 Build 1.15.90 release 2019-04-16 14:17:49 +00:00
Mathieu Duponchelle
d3029ec0d6 add libnice as a top-level subproject.
When relying on a system-wide libnice, we end up not building
the nice elements, which means we can't use them, and by extension
webrtcbin, in the uninstalled environment.

This also introduces a way to avoid checking the version of
a given subproject, and makes use of it for libnice and pygobject,
which only passed the version check by chance, as its current
major version is 3.
2019-04-05 15:27:37 +02:00
Thibault Saunier
887da9a04b Add gst-integration-testsuites as a subproject 2019-03-14 10:10:32 -03:00
Tim-Philipp Müller
406caf378d Back to development 2019-03-03 21:00:32 +00:00
Tim-Philipp Müller
a603acf512 Build 1.15.2 release 2019-03-03 20:58:38 +00:00
Tim-Philipp Müller
cb21aed7dc meson: use new 'python' module instead of deprecated 'python3' one
https://github.com/mesonbuild/meson/pull/4169
2019-02-18 16:53:07 +00:00
Tim-Philipp Müller
7ea556d034 Configure subprojects in the right order
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
2019-02-18 16:16:02 +00:00
Nirbheek Chauhan
530307ed47 New subproject win-nasm to provide nasm on Windows
This is needed for building openh264 as a subproject. Currently it's
downloaded unconditionally since the download is very small.
2019-02-05 22:43:30 +05:30
Seungha Yang
50037dd1eb Add an orc wrap file for using orc subproject
Depending on the newly added 'orc' meson option, this make possible
to use orc subproject on gst-build.
2019-01-29 11:50:03 +09:00
Tim-Philipp Müller
33a3686995 Configure gst-rtsp-server before gst-devtools
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
2019-01-24 19:51:17 +00:00
Mathieu Duponchelle
2ffe372bdd windows: unconditionally use flex / bison binaries
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.
2019-01-24 17:25:46 +01:00
Nicolas Dufresne
6bb5408f1b Revert "Updated after gst-libav got moved to gst-ffmpeg"
This reverts commit d027bf7401.
2018-11-06 06:02:34 -05:00
Nicolas Dufresne
d027bf7401 Updated after gst-libav got moved to gst-ffmpeg 2018-11-06 05:34:52 -05:00
Mathieu Duponchelle
2758a63714 pygobject: add as a subproject when python is enabled
This should make our awkward interactions with a system-wide install
of pygobject in our uninstalled setup go away.
2018-10-31 00:46:31 +01:00
Thibault Saunier
8eaf74d816 Use subproject 'required' argument
Making the whole logic much simpler, and end result more accurate
2018-10-27 17:20:33 +01:00
Mathieu Duponchelle
c42ec82de6 Add pygobject and pycairo as subprojects 2018-10-27 17:58:44 +02:00
Thibault Saunier
81b7a024c4 Add wrap file for json-glib 2018-10-23 14:17:06 +02:00
Nirbheek Chauhan
3e714d0bae meson: Fix libav checks to use feature options correctly 2018-09-03 21:22:25 +05:30
Philippe Normand
51759df370 meson: Follow-up fix for ninja uninstalled
The --gst-version was removed in c78f0ef222 so
remove it from the meson.build file as well.

https://bugzilla.gnome.org/show_bug.cgi?id=796989
2018-08-31 11:44:17 +01:00
Thibault Saunier
e88cd3628a Mark ffmpeg as not required
As it was supposed to be.
2018-07-19 16:40:49 -04:00
Thibault Saunier
f8f510e50b Update libav dependency version check. 2018-07-13 12:16:20 -04:00
Thibault Saunier
a0bfbe1f8d Add back gst-libav
It slipped through in the previous refactoring
2018-07-13 11:45:28 -04:00
Thibault Saunier
3d47163919 Use new 'feature' option and dictionnary
Simplifying the build definition, making its options more flexible and
it is now simpler to read.

On a side not we want https://github.com/mesonbuild/meson/issues/3880
to simplify that again.

https://bugzilla.gnome.org/show_bug.cgi?id=796798
2018-07-12 12:15:30 -04:00
Tim-Philipp Müller
3942dc262b Don't build gst-python if required deps aren't available 2018-06-07 19:25:22 +01:00
Nirbheek Chauhan
85e49c19d4 Add a new subproject 'win-flex-bison-binaries'
This subproject will download and provide win32 binaries for flex
and/or bison if they aren't found at configure time on Windows.
2018-05-17 13:57:33 +05:30
Nirbheek Chauhan
f164b8d93f meson: Update option names to omit prefixes
Also, common options are now consistent across all gstreamer modules,
and are inherited automatically.
2018-05-05 20:30:29 +05:30
Tim-Philipp Müller
14bf7c9990 Bump Meson requirement to 0.46
Which matches GStreamer core's (and soon the other modules).
2018-04-25 01:06:27 +01:00
Mathieu Duponchelle
47844b2771 uname does not exist everywhere 2018-04-22 02:58:06 +02:00
Nirbheek Chauhan
8708f6a606 meson: Fix typo, lower() -> to_lower() 2018-04-21 12:59:04 +05:30
Nirbheek Chauhan
40f97fe186 Only pass -DZ_SOLO on MSVC if using MSYS2 zlib
This fixes the build when we're building our own zlib as a subproject.
2018-04-13 14:56:33 +05:30
Tim-Philipp Müller
2136763eb4 Build master 2018-03-20 01:08:23 +00:00
Tim-Philipp Müller
9051db2290 Build 1.14.0 2018-03-20 01:07:15 +00:00
Tim-Philipp Müller
dfc24cc612 Fix check for python3
Use the python3 module to find the right binary. It might not
be called 'python3', but could just be plain 'python' for example
(e.g. on windows).
2017-12-25 23:00:46 +01:00
Mathieu Duponchelle
834a66ec9a meson.build: bump up required meson to 0.42.0
In order to use meson introspect, meson conf
2017-12-18 17:05:20 +01:00
Nirbheek Chauhan
61ece08deb meson.build: Fix typo in gstreamer-sharp message
Reported by @jeandet on IRC.
2017-12-14 04:28:44 +05:30
Tim-Philipp Müller
8ff8df2112 Build with buildtype debugoptimized by default
https://bugzilla.gnome.org/show_bug.cgi?id=790989
2017-12-06 10:58:23 +00:00
Sreerenj Balachandran
ccedfe7472 meson.build: blacklist only libva 0.99.0
This is the same fix we used in gstreaemr-vaapi to blacklist
the notoroious libva version 0.99.0

Intel's MSDK uses libva 0.99.0, meanwhile open source libva bumped
its API version to 1.0.0. Thus we have to blacklist only the MSDK's
libva (0.99.0)

https://bugzilla.gnome.org/show_bug.cgi?id=789744
2017-11-01 10:32:55 -07:00
Tim-Philipp Müller
1f847ffbf4 Fix checking for libxml2, it's not required 2017-10-07 15:42:59 +01:00
Thibault Saunier
6bb7528a48 Make the cs compiler optional 2017-09-06 15:34:27 -03:00
Thibault Saunier
f7c192a440 Add csharp/gstreamer-sharp support 2017-09-06 13:48:10 -03:00
Tim-Philipp Müller
5b801e2f0e Don't try to build ges if required dep isn't found
We shouldn't error out all of gst-build by default
if one of ges's required deps is not there.
2017-08-03 23:45:52 +01:00
Tim-Philipp Müller
4b29870a5d Bump meson version requirement to >= 0.40.1
Which matches that of GStreamer core.
2017-05-26 14:05:12 +01:00
Thibault Saunier
e69935afac Back to development 2017-05-04 14:13:50 -03:00
Thibault Saunier
b318a1ff26 Release 1.12.0 2017-05-04 14:12:24 -03:00
Scott D Phillips
4db18a66b4 require libva < 0.99.0 for gstreamer-vaapi
Version 0.99.0 of libva isn't currently supported by gstreamer-vaapi.

https://bugzilla.gnome.org/show_bug.cgi?id=781866
2017-05-02 17:37:01 +02:00
Thibault Saunier
c071855c48 Allow disabling introspection from toplevel gst-build
https://bugzilla.gnome.org/show_bug.cgi?id=781148
2017-04-11 12:05:20 -03:00
Mathieu Duponchelle
12b1289519 uninstalled: use build and source root 2017-04-06 00:25:49 +02:00
Mathieu Duponchelle
95d525f43a Enable custom subprojects option 2017-03-08 00:36:03 +01:00
Scott D Phillips
a6ae14b612 add gstreamer-vaapi as a possible subproject
https://bugzilla.gnome.org/show_bug.cgi?id=778407
2017-02-09 16:15:31 -03:00
Matthew Waters
45d7f5f337 add gst-omx as a possible subproject 2017-01-18 16:25:52 +11:00
Tim-Philipp Müller
14de71cd96 Bump version 2017-01-13 13:07:47 +00:00
Thibault Saunier
2b74d4d86d Work around issue using msys2 provided zlib
https://bugzilla.gnome.org/show_bug.cgi?id=775281
2016-12-13 12:58:31 -03:00
Tim-Philipp Müller
8ebcfad265 Require latest meson release (0.36)
We'll start depending on it in other modules soon.
2016-11-14 19:09:20 +00:00
Tim-Philipp Müller
90021b82af Update version to match git master
Use the 1.10 branch if you want to track 1.10.
2016-11-09 09:37:56 +00:00
Thibault Saunier
c843f48740 Add 'update' and git-update targets to update git repos 2016-11-08 15:16:57 -03:00
Scott D Phillips
95a0651b2c Include libav dependency in FFmpeg check
The FFmpeg-origin check can't work if it isn't provided the
dependency library.

https://bugzilla.gnome.org/show_bug.cgi?id=773911
2016-11-03 21:51:01 -03:00
Tim-Philipp Müller
33e0791294 Skip gst-devtools if json-glib-1.0 is missing
We shouldn't fail hard because of a gst-devtools dependency,
so if json-glib-1.0 is not found, just skip the module and
build the rest.
2016-10-27 20:11:45 +01:00
Tim-Philipp Müller
0b560fb187 Add gst-rtsp-server 2016-10-27 00:30:32 +01:00
Tim-Philipp Müller
9a8ab306b7 Fix build if we can't find system ffmpeg / libavfilter dev packages
It would unconditionally add gst-libav to subprojects even
if the dep was not found.
2016-10-27 00:05:51 +01:00
Tim-Philipp Müller
73f692ddf9 Bump version to match gst git master 2016-10-27 00:05:39 +01:00
Tim-Philipp Müller
233bdf98e8 Require meson 0.35.1
Otherwise gst-devtools will fail to configure with
UnboundLocalError: local variable 'variable' referenced before assignment
2016-10-27 00:02:01 +01:00
Thibault Saunier
3875f0c705 Add options to disable some modules 2016-10-26 17:03:18 -03:00
Thibault Saunier
85880a3a22 Create symlinks to built subprojects 2016-10-21 05:31:13 -03:00
Thibault Saunier
b844b7229a Do not gst-python by default 2016-10-20 17:47:07 -03:00
Thibault Saunier
be5e8af9e2 Fix run_target usage 2016-09-14 10:36:28 -03:00
Thibault Saunier
bf1aa16608 Add [gst-]python support 2016-09-09 08:30:01 -03:00
Thibault Saunier
080780c720 Build gst-libav if libav is on the system 2016-09-09 08:30:01 -03:00
Saunier Thibault
de987e8c61 Initial commit 2016-08-25 15:26:28 -03:00