Commit graph

179 commits

Author SHA1 Message Date
Xavier Claessens 412362281f gst-full: Register GIO modules when glib-networking is a subproject
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2653>
2022-09-14 20:46:20 +00:00
Xavier Claessens ef6f157205 meson: Subprjects can define both "plugins" and "gst_plugins"
If "gst_plugins" is defined we can ignore the value of legacy "plugins"
variable, subprojects could be using it for something else, which is the
case of gst-plugin-rs.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2976>
2022-09-02 15:01:45 +00:00
Thibault Saunier bc9c1e3956 meson: Namespace the plugins_doc_dep/libraries variables
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
2022-09-01 21:17:35 +00:00
Thibault Saunier b5e90fe579 meson: Rename plugins list and make them "dependency" objects
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970>
2022-09-01 21:17:35 +00:00
Xavier Claessens fe40a73973 meson: Make sure devenv uses tools linked on gst-full
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2959>
2022-08-31 13:23:56 +00:00
Nirbheek Chauhan 7a163dae4d meson: Improve certifi documentation on macOS
First, just installing certifi doesn't install the ca-cert in the
right location. The `Install Certificates.command` script also
symlinks the openssl cert.pem to the certifi ca cert file

Second, we can make it more likely that users will notice this if we
make it a warning. If we ever get a bug report about this despite
these measures, we can try to make this an error.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2707>
2022-07-18 06:25:36 +00:00
Andoni Morales Alastruey 5a6aff05ec gstreamer-sharp: fix typo in script name
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2152>
2022-04-11 17:40:15 +00:00
Matthew Waters bd5d24822a build/fuzzing: integrate fuzz targets into the build system
Currently disabled but may be enabled later.

Updates the existing fuzzing to use shared libraries as that's easier
for meson to deal with if there is a mix of static and shared libraries
on the system.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2123>
2022-04-07 08:17:35 +10:00
Stéphane Cerveau 3e07ce64aa meson: add the list of tools to summary
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2078>
2022-04-06 18:12:51 +00:00
Andoni Morales Alastruey f89dff303a gstreamer-sharp: ensure a consitent code format
Use EditorConfig and dotnet-format to ensure a consistent
code style.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/983>
2022-04-05 08:28:50 +00:00
Thibault Saunier 2952a73f40 tools: Add support for building gstreamer tools against gst-full
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1581>
2022-03-30 17:43:17 +00:00
Nirbheek Chauhan 2913ab9dbf meson: Fix warning about build_root() and source_root()
```
../meson.build:384: WARNING: Project targeting '>= 0.60.0' but tried to use feature deprecated since '0.56.0': meson.build_root. use meson.project_build_root() or meson.global_build_root() instead.
../meson.build:385: WARNING: Project targeting '>= 0.60.0' but tried to use feature deprecated since '0.56.0': meson.source_root. use meson.project_source_root() or meson.global_source_root() instead.
...
WARNING: Deprecated features used:
 * 0.56.0: {'meson.source_root', 'meson.build_root'}
 ```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1977>
2022-03-18 22:49:16 +00:00
Xavier Claessens 69863131bd Bump Meson requirement to >=0.60.0
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934>
2022-03-14 08:56:54 -04:00
Sebastian Fricke d97e480dfe meson: Adjust ninja usage restriction info for devenv
The documentation within meson highlights, that `ninja` can be used
without problems for any case except `ninja reconfigure`. The warning
however describes to the user, that `ninja` shouldn't be used at all.
Fix the warning.

Fixes: 01eb252f67 Don't allow people to run meson inside the uninstalled env
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1743>
2022-03-01 11:33:10 +00:00
Sebastian Fricke 0b6bbce012 Remove the uninstalled term
Remove the symbolic link `gst-uninstalled` which points to `gst-env`.
The `uninstalled` is the old name and the project should stick to a
single name for the procedure.
Remove the term from all the files, exceptions are variables from
dependencies like `uninstalled_variables` from pkgconfig and
`meson-uninstalled`.
Adjust mentions of the script in the documentation and README.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1743>
2022-03-01 11:33:10 +00:00
Sebastian Fricke 0c8ff1a837 Revert "Allow running gst-uninstalled when gst-build is a subproject"
This reverts commit 879126a31c.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1743>
2022-03-01 11:33:10 +00:00
Xavier Claessens 968a26e6f6 devenv: Prepend to GST_PLUGIN_PATH
Use may have their own GST_PLUGIN_PATH, or a custom user subproject
could have their own plugins too. This is also what gst-env.py does.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1768>
2022-02-25 20:35:26 +00:00
Tim-Philipp Müller 701ed92d27 Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1635>
2022-02-04 22:59:41 +00:00
Tim-Philipp Müller f0b045a69b Release 1.20.0 2022-02-03 20:03:15 +00:00
Stéphane Cerveau fb1c062626 gstreamer-full: warn if version-script not available
Instead of error out, warn user that the platform does not support
the version script.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1191>
2022-01-31 11:04:26 +00:00
Tim-Philipp Müller 31b5243e1d Release 1.19.90 2022-01-28 14:28:42 +00:00
Nirbheek Chauhan 1be6d6ccf5 meson: Add explicit check: kwarg to all run_command() calls
This is required since Meson 0.61.0, and causes a warning to be
emitted otherwise:

2c079d855e
https://github.com/mesonbuild/meson/issues/9300

This exposed a bunch of places where we had broken run_command()
calls, unnecessary run_command() calls, and places where check: true
should be used.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1507>
2022-01-09 18:12:47 +05:30
Thibault Saunier ccf64e369e meson: Allow using GStreamer plugins from custom_subprojects
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1490>
2022-01-03 16:27:04 -03:00
Thibault Saunier 6dec642d35 subprojects: Lower minimal pygobject version
It works just fine with PyGObject3.8, this min requirement was added in
547570cd79 without any justification for
such a high requirement while 3.8 is the min requirement for
`gst-python`.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1419>
2021-12-14 15:44:58 +00:00
Seungha Yang edbd307df9 meson: Disable symlink to gst modules
Symlink to directory usually makes IDE be confused,
and also any git command to the symlink would not work.
Disable the symlink since we don't see any advantage of the use case
at the moment.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/949>
2021-11-19 22:13:10 +00:00
Tim-Philipp Müller a7b376011b Back to development 2021-11-03 19:31:23 +00:00
Tim-Philipp Müller f513c289b0 Release 1.19.3 2021-11-03 15:43:43 +00:00
Xavier Claessens 1ec04817eb Allow Strawberry Perl on Windows with Meson >= 0.60.0
Meson now explicitly blacklists pkg-config.bat from Strawberry Perl and
thus building GStreamer on Windows has been fixed.

This allows for instance to build GStreamer on GitHub Action Windows
runners that have Strawberry Perl by default.

It is also useful when needing to build OpenSSL on the same Windows
machine because it requires Perl.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1263>
2021-10-31 20:07:39 +00:00
Xavier Claessens 99749956f0 Rename toplevel project to gstreamer-full
This generates better tarball names when doing "meson dist" on the top
level project. It is also consistent with that project providing
gstreamer-full library.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1230>
2021-10-22 12:38:46 -04:00
Tim-Philipp Müller c5bc0bd7c4 meson: fix use of deprecated meson api meson.has_exe_wrapper()
Use meson.can_run_host_binaries() instead.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
2021-10-20 11:20:44 +00:00
Tim-Philipp Müller 8dfab0b08c meson: update for meson.build_root() and .build_source() deprecation
-> use meson.project_build_root() or .global_build_root() instead.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
2021-10-20 11:20:44 +00:00
Xavier Claessens 14115b714f Add initial meson devenv support
There is still a few things missing compared to gst-env.py, but it is
functional.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1162>
2021-10-19 16:18:43 +00:00
Tim-Philipp Müller 0a25f22f1b meson: bump meson requirement to >= 0.59
For monorepo build and ugly/bad, for advanced feature
option API like get_option('xyz').required(..) which
we use in combination with the 'gpl' option.

For rest of modules for consistency (people will likely
use newer features based on the top-level requirement).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084>
2021-10-18 18:03:19 +01:00
Nirbheek Chauhan 40fb39502e meson: Define cpp_std in the top-level project()
Due to a bug, meson ignores ${lang}_std settings in default_options
for subprojects: https://github.com/mesonbuild/meson/issues/1889

This causes build failures when a subproject requires c++11 or c++14,
etc. Compilers that support those cpp_stds are very common, and all
the toolchains that we support include c++ compilers, so we can
add cpp_std=c++14 to the top-level.

This fixes the webrtc-audio-processing build on Linux, and harfbuzz on
macOS.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1133>
2021-10-17 09:36:09 +00:00
Thibault Saunier 08eac09c12 meson: Fix warning building GstGLEGL
We forgot to add the `GstGL` gir as a dependency which was properly
done for GstGLWayland and GstGLX11.

And document why we use a list for `all_libraries`

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1168>
2021-10-16 01:24:45 +00:00
Thibault Saunier e436bf66e1 meson: Add info about 'gstreamer-full'
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093>
2021-10-15 19:28:29 -03:00
Thibault Saunier 8b7b068d53 meson: Streamline the way we detect when to build documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093>
2021-10-15 19:28:29 -03:00
Thibault Saunier 4210ac43ec Use new libraries subprojects variables to statically link then
And also build the girs against `gstreamer-full` when possible. Also
making `gst_init_static_plugins` available from the bindings.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093>
2021-10-15 19:27:30 -03:00
Thibault Saunier 1babccfe50 python: Fix using overrides when not building PyGObject
Since 547570cd79 we do not always build
PyGObject and our development environment is broken when trying to use
GStreamer python when built against system PyGObject with the following
error importing Gst in there:

```
12345678** (gst-plugin-scanner:710617): CRITICAL **: 11:45:02.343: can't find gi.repository.Gst
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/gi/repository/__init__.py", line 23, in <module>
    from ..importer import DynamicImporter
  File "/usr/lib64/python3.9/site-packages/gi/importer.py", line 33, in <module>
    from .overrides import load_overrides
ImportError: cannot import name 'load_overrides' from 'gi.overrides' (/var/home/thiblahute/devel/gstreamer/gstreamer/subprojects/gst-editing-services/bindings/python/gi/overrides/__init__.py)
Factory Details:
```

The approach to fixing it is to implement override `gi` in
`gst-python/gi/` which we add to `PYTHONPATH`) and in there reset the
`gi` module to the right place and we get overrides from paths from
`_GI_OVERRIDES_PATH` we set in `gst-env.py` which points to all the
overrides that will be installed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1155>
2021-10-15 20:51:41 +00:00
Bastien Nocera 547570cd79 build: Disable pygobject submodule if system version exists
If pygobject is available on the system, its version is new enough,
don't build the older pygobject and rely on that system one.

This fixes totem not being able to use libpeas' Python support.

** (totem:544972): WARNING **: 12:04:05.407: Error initializing Python Plugin Loader: PyGObject initialization failed
ImportError: could not import gobject (version mismatch, 3.40.1 is required, found 3.38.1)

Closes: #806
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1135>
2021-10-13 14:17:13 +00:00
Tim-Philipp Müller f1a169f39d Back to development
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/925>
2021-09-26 01:07:02 +01:00
Tim-Philipp Müller d1d8223d52 meson: fix up version
(Sync with other subprojects, we'll go back to dev in a separate commit).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/924>
2021-09-26 00:02:33 +01:00
Nicolas Dufresne 3037fde5eb Move commit gst-indent hook to the root
This renable at meson setup time the installation of the gst-indent
commit hook. The hooks were kept from gst-devtools as this set supports
both C checks and Python checks.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/904>
2021-09-24 17:47:01 -03:00
Thibault Saunier fba2402ac3 Remove git-update and git-worktree as they do not make sense anymore
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/891>
2021-09-24 16:21:18 -03:00
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