Commit graph

185 commits

Author SHA1 Message Date
Nirbheek Chauhan
c99e3b312a meson: Don't use add_global_arguments when a subproject
This is the correct fix for https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/236

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/259>
2021-08-30 17:23:05 +05:30
Nirbheek Chauhan
06869815fd Revert "Meson: Avoid using add_global_arguments() when gst-build is a subproject"
This reverts commit ebcca1e5ea.

/utf-8 is needed to deal with subprojects that we do not control.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/259>
2021-08-30 17:21:44 +05:30
Nirbheek Chauhan
afd11f3383 New subproject macos-bison-binary to provide bison on macOS
The version of bison that ships with macOS is too old, so we need to
provide our own version of it.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-build/-/issues/174

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/257>
2021-08-28 23:44:52 +05:30
Olivier Crete
879126a31c Allow running gst-uninstalled when gst-build is a subproject
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/222>
2021-08-27 12:44:25 +00:00
Xavier Claessens
ebcca1e5ea Meson: Avoid using add_global_arguments() when gst-build is a subproject
Meson only allows the main project to use it. We already set that flag
in all GStreamer modules just like warning flags.

Fixes: #152
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/236>
2021-08-12 14:17:30 +00:00
Tim-Philipp Müller
723478b6be Back to development 2021-06-01 15:34:41 +01:00
Tim-Philipp Müller
3804f23e3f Release 1.19.1 2021-06-01 00:17:06 +01:00
Stéphane Cerveau
cb74a24fbd gstreamer-full: error about introspection
The introspection feature is not supported yet
in static build.
Needs
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/167/diffs

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/242>
2021-05-04 11:41:46 +02:00
Stéphane Cerveau
b6f61768d3 gst-full: add 'gst-full-' features options
These options allow to select a set of features from a given
plugin with the following syntax:

-Dgst-full-plugins=plugin1;plugin10
-Dgst-full-elements=plugin2:element1,element2
-Dgst-full-typefind-functions=plugins3:func
-Dgst-full-device-providers=plugin4,dp1
-Dgst-full-dynamic-types=plugin5:dt1

By default all the enabled plugin are registered and
gst-full-plugins will allow to include only a set of plugin

If a feature(element, typefind etc.) is selected from a plugin,
the plugin is removed from the plugins list.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199>
2020-12-11 12:50:16 +00:00
Stéphane Cerveau
52e7b2a8e0 gst-full: fix static build on Windows host
Static build needs a version script which is
not available on Windows.
Need to implement use of def file.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/226>
2020-11-23 17:32:08 +01:00
Nirbheek Chauhan
81c3c9175b meson: Do not add MSVC warnings flags globally
These get added to *all* subprojects, including ones we do not
maintain such as ffmpeg which then emits thousands of warnings that
completely overwhelm the compile output.

We will add these in each gstreamer subproject separately.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/223>
2020-11-04 18:41:36 +05:30
Stéphane Cerveau
94260955ba gst-full: add warning for gst_init_static_plugins
As some compiler might not supported -Wl,--undefined
add a warning to the meson configure stage.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/211>
2020-10-28 14:15:52 +00:00
Stéphane Cerveau
a4f711e9e5 gst-full: add linker flag to keep gst_init_static_plugins
In a fully static link where an app link with gstreamer-full
the gst_init_static_plugins can be discarded because
no one references it.
Indeed the symbol is looked up by gst_init to call if it exists
and so it is not clearly referenced.

In order to avoid this issue, we use the linker flag
--undefined=gst_init_static_plugins to keep
the symbol.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/207>
2020-10-21 15:44:59 +02:00
Stéphane Cerveau
f82527519c gst-full: use '-Wl,-Bsymbolic-functions' to reduce footprint
As most of the gst/glib modules, use this linker flag
to reduce footprint.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/204>
2020-10-14 16:05:13 +02:00
Stéphane Cerveau
751aacd8fc Revert "gstreamer-full: Fix link with x264"
This reverts commit e236d4f71a.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/204>
2020-10-14 16:05:13 +02:00
Stéphane Cerveau
bda7145460 gstreamer-full: add unit test
This test allows to test gstreamer-full behaviour

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/203>
2020-10-12 10:27:55 +02:00
Xavier Claessens
b25e471eaf gstfull: Also include 'sources' from dependencies
It contains generated headers like mkenums.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/203>
2020-10-12 10:27:55 +02:00
Xavier Claessens
8a9d21ce18 gst-full: Add missing include directories to use it in subprojects
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/203>
2020-10-12 10:27:55 +02:00
Stéphane Cerveau
b4256c219d gst-full: declare dependency
Declare the gstreamer-full dependency which can be used
later by 3rd party applications.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/203>
2020-10-12 10:27:55 +02:00
Stéphane Cerveau
30ea94f40c meson: move custom_subproject definition for gst-full
In order to let any subproject to use gstreamer-full
declare the subprojects after gstreamer-full definition.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/203>
2020-10-12 10:27:55 +02:00
Guillaume Desmottes
89faf739c9 meson: add gst-full-version-script option
Can be used to control the exact symbols exported, or not, in
libgstreamer-full.

This is useful when building a tailored libgstreamer-full aimed
to be run with some specific binaries. By using such version script
one can reduce the size of the generated lib by letting the linker
garbage collect all the unused APIs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/195>
2020-10-06 12:54:19 +00:00
Stéphane Cerveau
c96dcd2698 meson: make good and base optional
Be able to disable the base/good build on demand
By default its always enabled.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/178>
2020-10-06 09:48:20 +02:00
Xavier Claessens
4dc93ef130 gst-full: Remove gstinitstaticplugins.h
That header is not needed any more because gst_init() now calls
gst_init_static_plugins() automatically when available.

This is an API break compared to 1.18, but release notes made it clear
it was an experimental feature.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/191>
2020-10-05 17:17:46 -04:00
Nirbheek Chauhan
debe544d3f windows: Detect Strawberry Perl and error out early
This is going to fail during the compile phase because Strawberry Perl
ships with its own pkg-config and pkgconfig files for zlib/libffi with
unusable values.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-build/-/issues/41

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/197>
2020-10-01 23:11:24 +05:30
Tim-Philipp Müller
be984e88db Back to development 2020-09-08 16:59:25 +01:00
Tim-Philipp Müller
32d3a2544d Release 1.18.0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/186>
2020-09-08 09:59:40 +01:00
Tim-Philipp Müller
dd2bf7996c Release 1.17.90 2020-08-20 16:17:01 +01:00
Nirbheek Chauhan
237f5cc4ee Add glib-networking as a subproject when glib is a subproject
We need gio modules for tls when building gstwebrtcbin, gstsoup, etc.

Control it via a new 'tls' option, since it requires either gnutls or
openssl.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/180>
2020-08-03 18:52:20 +00:00
Stéphane Cerveau
e236d4f71a gstreamer-full: Fix link with x264
If a static build is requested and x264 plugin has been enabled
the full link fails with:

/usr/bin/ld: subprojects/x264/libx264.a(cabac-a.o): relocation
R_X86_64_PC32 against symbol `x264_cabac_range_lps' can not be used when
making a shared object; recompile with -fPIC

Fixes #108

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/169>
2020-07-22 12:40:00 +02:00
Tim-Philipp Müller
80976dea2c Fix up update-orc-dist target for the case where there are no orc targets
See https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/168#note_561914

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/173>
2020-07-08 11:29:40 +01:00
Tim-Philipp Müller
02995c8417 meson: clean up workaround for older meson versions that's no longer needed
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/172>
2020-07-07 18:48:49 +00:00
Tim-Philipp Müller
ebf79cf723 Add update-orc-dist target
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/168>
2020-07-04 15:01:08 +01:00
Tim-Philipp Müller
45a09d4a81 Back to development 2020-07-03 02:04:31 +01:00
Tim-Philipp Müller
1016bf239c Release 1.17.2 2020-07-03 00:37:52 +01:00
Mathieu Duponchelle
4a3ceaa498 meson: pass doc option as required argument to gst-docs subproject
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/166>
2020-06-24 14:37:28 +02:00
Tim-Philipp Müller
075ed8610f Back to development 2020-06-20 01:05:03 +01:00
Tim-Philipp Müller
7dc67a389d Release 1.17.1 2020-06-19 19:28:22 +01:00
Tim-Philipp Müller
398576dfdb meson: bump meson requirement to 0.52 to align with effective requirement
Latest libnice requires 0.52, so it probably makes sense to
update the meson requirement in gst-build for that, so we
have good out-of-the-box developer experience for people,
with webrtc working out of the box.

Might also make it easier to backport things later.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/164>
2020-06-18 15:41:18 +01:00
Thibault Saunier
a7b7ca5a59 Notify that gst-rts-server has plugin
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/151>
2020-05-27 09:59:16 -04:00
Matthew Waters
b9d39e2f7f build: allow for changing subprojects with docs enabled
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-build/-/issues/60
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/142>
2020-04-23 13:48:22 +10:00
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