Commit graph

230 commits

Author SHA1 Message Date
Nirbheek Chauhan
9cc363311d meson: Add an option to disable gst-full
Not all static-library build configurations need to use this, and the
CPU time and RAM needed by gst-full targets is quite significant.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7315>
2024-08-13 01:01:28 +00:00
Nirbheek Chauhan
6073257bd8 meson: Fix glib-networking build on non-Linux
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7091>
2024-07-07 13:20:12 +00:00
Tim-Philipp Müller
756064b9c3 Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6261>
2024-03-05 12:58:57 +00:00
Tim-Philipp Müller
b125253cad Release 1.24.0 2024-03-04 23:59:25 +00:00
Tim-Philipp Müller
d474de8ff0 Release 1.23.90 2024-02-23 18:20:11 +00:00
Tim-Philipp Müller
88412ef100 Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6126>
2024-02-15 16:38:53 +00:00
Tim-Philipp Müller
88751d4110 Release 1.23.2 2024-02-15 15:37:17 +00:00
Tim-Philipp Müller
2111d6f015 Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6066>
2024-02-06 18:29:31 +00:00
Tim-Philipp Müller
9255e397f0 Release 1.23.1 2024-02-06 16:43:27 +00:00
Xavier Claessens
d2fb30a188 devenv: Whitelist all plugins to be able to run tests
Meson devenv already overrides GST_PLUGIN_PATH and
GST_PLUGIN_SYSTEM_PATH so only built plugins can be found. That means
unit tests are allowed to use every plugins.

This makes easier to run some unit tests under devenv instead of through
"meson test".

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5748>
2023-12-14 15:09:35 +00:00
Stéphane Cerveau
12b2dfe41b meson: fix gstreamer-full static mode on win32
Win32 was expecting the symbol gst_init_static_plugins in gstreamer-full
dynamic mode.
Add mode in gstreamer gstreamer-full options to tell if its a
gstreamer-full static or shared mode.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5098>
2023-11-27 18:12:18 +00:00
L. E. Segovia
a426e76d3e gstreamer-full: Error out when ABI plugins != built plugins
This logs an error message listing all ABI plugins which are disabled
(usually because of `-Dauto_features=disabled`). Those need to be scouted
out and enabled manually through
`-Dgst_plugins_(bad, good,base):plugin=enabled`.

See #2934

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5244>
2023-10-30 12:34:39 +00:00
Nirbheek Chauhan
ec6f7ea1ae meson: Fix warning about build_root() deprecation 2023-10-26 09:36:10 +03:00
Jordan Petridis
a7c1da6ce5 build: Do not try to build gst-python when introspection is disabled
Close #1604

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4648>
2023-10-25 06:48:42 +00:00
Nirbheek Chauhan
b0d3d7644d meson: Pass gstreamer=enabled to libnice when webrtc is enabled
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5505>
2023-10-19 06:38:46 +00:00
Nirbheek Chauhan
9f5703c366 meson: Fix typo building_full_options
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5505>
2023-10-19 06:38:45 +00:00
Nirbheek Chauhan
fd4828bafe meson: Add a top-level option to enable webrtc
There are a bunch of plugins that you need for webrtc support, and
it's not obvious at all to users which those are.

With this commit, srtp, sctp and dtls options will be auto-enabled if
the webrtc option is enabled.

Requires meson 1.1

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5505>
2023-10-19 06:38:45 +00:00
Leander Schulten
45bc34ff02 meson: Allow disabling gst-plugins-base
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5501>
2023-10-18 14:05:38 +00:00
Stéphane Cerveau
bdbf6e1c17 gst-full: register full features in a plugin
To offer the possibility to get information at plugin
level and get it from the registry, all the
full features are now registered in 'fullstaticfeatures'
meta plugin instead of NULL plugin.
In the case of gst-inspect, the features were not displayed
at plugin level because it was a NULL plugin.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5421>
2023-10-05 11:40:45 +00:00
L. E. Segovia
dd6df92702 gstreamer-full: Work around Win32 PE missing symbols from static libraries
MSVC's /WHOLEARCHIVE and GCC/Clang's -Wl,--whole-archive options are
often sold as allowing the developer to reexport symbols coming from
static dependencies. However, this is not the complete picture.

While it is true in both ELF and MachO, which merge the symbol tables
into one [1], in PE this is not the case when the end binary is a DLL.
For this case, projects like FFmpeg extract the symbol table from the
static version and then construct a module definition file to mark
them as exported [2].

The approach in this platform is to, for the Windows and Cygwin cases,
reexport the libraries that are intended to be link_whole'd for
downstream consumption. Alternatively, the libraries in exposed_libs
need to be dumpbin'd individually and then a .def has to be constructed
for the whole [3].

[1]: https://stackoverflow.com/a/61544818
[2]:
3057ce797f/configure (L5726)
[3]:
ec0137734c

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5194>
2023-08-22 16:39:53 +00:00
L. E. Segovia
18a3dfa4a1 gstreamer-full: Properly export gst_init_static_plugins for Win32 PE
Currently, GStreamer relies throughout on ELF (and MachO)'s symbol
table preserving the function address, instead of marking it as
exportable, either through visibility:default or __declspec(dllexport).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5194>
2023-08-22 16:39:52 +00:00
Tim-Philipp Müller
4abe4b2d2a meson: check gitlint version
We use 'regex-style-search' which requires at least 0.18.

F38 still ships with 0.15 it seems.

https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5049#note_2004507

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5056>
2023-08-12 15:18:25 +00:00
Andoni Morales Alastruey
2ae4aa2384 win: add new win-pkgconfig subproject
This subprojects provides the pkg-config.exe binary on Windows
required by g-ir-scanner to build introspection GIR's

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1584>
2023-07-21 06:37:45 +00:00
Nirbheek Chauhan
8813982430 meson: Bump required version to 0.63 for diff_files support
Fixes a warning.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5060>
2023-07-20 11:00:35 +00:00
Nirbheek Chauhan
b7e2b24945 meson: Force pcre2 to be provided by a subproject on macOS
Newer macOS provides /usr/lib/pkgconfig/libpcre2-8.pc which is broken
because it says headers are in /usr/include but that directory doesn't
exist. It can only be used to find the library, which only exists on
newer macOS at /usr/lib/libpcre2-8.dylib, so it's also unusable.

So, force usage of the subproject for glib.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5060>
2023-07-20 11:00:35 +00:00
Olivier Crête
48c43e5b7f gst-omx: Retire the whole package
The OpenMAX standard is long dead and even the Raspberry Pi OS
no longer supports it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4976>
2023-07-16 19:10:03 +00:00
Stéphane Cerveau
9b277d68c5 gstreamer-full: add GST_STATIC_COMPILATION for Windows
In the case of a gstreamer-full target type to static,
the GST_STATIC_COMPILATION is necessary on Windows to avoid
a different mangling from the external project using the
gstreamer-full libraries (ie dllimport).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4128>
2023-05-31 15:17:11 +00:00
Stéphane Cerveau
8a28136627 gstreamer-full: helpers built as tools
gst-plugin-scanner and gst-completion-helper
are now built part of the helpers as tools.

Add libraries to the summary to know
what library will be built and can be exposed
by gstreamer-full

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4128>
2023-05-31 15:17:11 +00:00
Stéphane Cerveau
dd17beb681 gstreamer-full: add full static support
Allow a project to use gstreamer-full as a static library
and link to create a binary without dependencies.

Introduce the option 'gst-full-target-type' to
select the build type, dynamic(default) or static.

In gstreamer-full/static build configuration gstreamer (gst.c)
needs the symbol gst_init_static_plugins which is defined
in gstreamer-full.
All the tests and examples are linking with gstreamer but the
symbol gst_init_static_plugins is only defined in the gstreamer-full
library. gstreamer-full can not be built first as it needs to know what plugins
will be built.

One option would be to build all the examples and tests after
gstreamer-full as the tools.

Disable tools build in subprojects too as it will be built at the end of
build process.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4128>
2023-05-31 15:17:11 +00:00
Nirbheek Chauhan
beb21f9254 meson: Add a new option to control the source for build-tools
Similar to orc, allow distros to force bison, flex, nasm, etc, to be
provided by the system.

Needed by the Homebrew folks:
https://github.com/Homebrew/homebrew-core/pull/125996#discussion_r1166410216

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4428>
2023-04-28 15:21:10 +05:30
Thibault Saunier
b14e675a27 gir: Checkout all .gir files and check that they are updated on the CI
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3010>
2023-04-22 09:32:32 -04:00
Thibault Saunier
5586511446 ci: Add a job to verify commit messages on MRs
This uses [gitlint] and is based on their linting rules with some minor
config so it matches our style pretty well.

[gitlint]: https://jorisroovers.com/gitlint/#configuration

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3980>
2023-02-24 00:22:19 +00:00
Nirbheek Chauhan
77b8547586 meson: Allow sysdeps to be forced as fallback subprojects
The original code was too complicated; likely created before the
provide section existed for wraps:

https://mesonbuild.com/Wrap-dependency-system-manual.html#provide-section

Now you can do --force-fallback-for=pygobject and it'll actually work.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3804>
2023-02-06 09:26:02 +00:00
Tim-Philipp Müller
41c69372b5 Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3775>
2023-01-23 23:04:53 +00:00
Tim-Philipp Müller
f13c65d977 Release 1.22.0 2023-01-23 19:41:07 +00:00
Tim-Philipp Müller
a9ec35b1ca Release 1.21.90 2023-01-13 19:08:48 +00:00
Stéphane Cerveau
ce50cb7413 gstreamer-full: use the basename of plugin_path to avoid the ':' detection
The absolute path on windows contains ':' which prevents
gstinitstaticplugins.py to work properly. Use the basename whic is good
enough for the script to make the list of plugins

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3526>
2022-12-05 13:15:50 +00:00
Tim-Philipp Müller
1f65d7cc5c Back to development 2022-12-05 02:29:08 +00:00
Tim-Philipp Müller
fd6a3948c6 Release 1.21.3 2022-12-05 01:28:21 +00:00
Tim-Philipp Müller
9eb081ea0a meson: Generate ChangeLog files for release tarballs on dist
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3521>
2022-12-04 18:16:25 +00:00
Xavier Claessens
ef73db4210 meson: Add toplevel "gst-doc" alias target
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3442>
2022-12-02 15:41:32 +00:00
Tim-Philipp Müller
db450689db Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3358>
2022-11-08 02:08:08 +00:00
Tim-Philipp Müller
3e29ac35c4 Release 1.21.2 2022-11-07 23:54:03 +00:00
Tim-Philipp Müller
99bbb1ef35 Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3115>
2022-10-04 03:57:31 +01:00
Tim-Philipp Müller
9820e58be6 Release 1.21.1 2022-10-04 01:18:20 +01:00
Nirbheek Chauhan
032ff74e5a meson: Do not modify default value of -Dtools for subprojects
See: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1136
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2166>
2022-09-27 20:38:55 +00:00
Nirbheek Chauhan
139c332911 meson: Remove some dead code
We no longer create any symlinks.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2166>
2022-09-27 20:38:55 +00:00
Nirbheek Chauhan
6caa8524dd meson: Add a new option to control the source for orc
Previously we were unconditionally cloning the orc subproject because
we want the developer environment to use the latest orc. However, some
people want to use the system orc instead, or want to auto-detect
which to use, with the system orc getting preference. This requires
adding a new option to select that. See discussion at:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2556

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1282

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3062>
2022-09-22 22:31:21 +00:00
Nirbheek Chauhan
a0e6278dba meson: Use implicit builtin dirs in pkgconfig generation
Starting with Meson 0.62, meson automatically populates the variables
list in the pkgconfig file if you reference builtin directories in the
pkgconfig file (whether via a custom pkgconfig variable or elsewhere).
We need this, because ${prefix}/libexec is a hard-coded value which is
incorrect on, for example, Debian.

Bump requirement to 0.62, and remove version compares that retained
support for older Meson versions.

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1245

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3061>
2022-09-21 21:08:11 +05:30
Xavier Claessens
5f0493d33a meson: Set install_tag on some targets
Trying to follow recommendation from Meson documentation:
https://mesonbuild.com/Installing.html#installation-tags

Move tools into 'bin' or 'bin-devel' categories to keep only libs and
plugins in the default 'runtime' category. This simplifies distribution
of GStreamer application skipping parts that are not needed, similarly
to what Cerbero does by hardcoding huge list of files.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3017>
2022-09-20 10:08:15 +00:00