Commit graph

125 commits

Author SHA1 Message Date
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