diff --git a/subprojects/gst-devtools/meson.build b/subprojects/gst-devtools/meson.build index 2244cea121..26205d43da 100644 --- a/subprojects/gst-devtools/meson.build +++ b/subprojects/gst-devtools/meson.build @@ -152,9 +152,11 @@ plugins_doc_dep = [] plugins = [] i18n = import('i18n') +static_build = get_option('default_library') == 'static' +libraries = [] + python_mod = import('python') python3 = python_mod.find_installation() - if not get_option('validate').disabled() subdir('validate') endif diff --git a/subprojects/gst-devtools/validate/gst/validate/meson.build b/subprojects/gst-devtools/validate/gst/validate/meson.build index 77a6428aa0..a3cd4da043 100644 --- a/subprojects/gst-devtools/validate/gst/validate/meson.build +++ b/subprojects/gst-devtools/validate/gst/validate/meson.build @@ -76,35 +76,44 @@ gstvalidatetracer = library('gstvalidatetracer', dependencies : validate_deps) plugins += gstvalidatetracer + +pkg_name = 'gst-validate-1.0' +library_def = {'lib': gstvalidate} pkgconfig.generate(gstvalidate, libraries : [gst_dep], subdirs : pkgconfig_subdirs, - name : 'gst-validate-1.0', + name : pkg_name, description : 'Gstreamer Validate', ) validate_gen_sources = [] if build_gir gst_validate_gir_extra_args = gir_init_section + [ '--c-include=gst/validate/validate.h' ] - validate_gir = gnome.generate_gir(gstvalidate, - sources : gstvalidate_sources + gstvalidate_headers + gst_validate_enums, - nsversion : '1.0', - namespace : 'GstValidate', - symbol_prefix : 'gst_validate', - identifier_prefix : 'GstValidate', - export_packages : 'gst-validate-' + apiversion, - includes : ['GObject-2.0', + gir = { + 'sources' : gstvalidate_sources + gstvalidate_headers + gst_validate_enums, + 'nsversion' : '1.0', + 'namespace' : 'GstValidate', + 'symbol_prefix' : 'gst_validate', + 'identifier_prefix' : 'GstValidate', + 'export_packages' : pkg_name, + 'includes' : ['GObject-2.0', 'GLib-2.0', 'Gio-2.0', 'GModule-2.0', 'Gst-' + apiversion, 'GstPbutils-' + apiversion], - install : true, - dependencies : validate_deps, - extra_args : gst_validate_gir_extra_args, - ) - validate_gen_sources += [validate_gir] + 'install' : true, + 'dependencies' : validate_deps, + 'extra_args' : gst_validate_gir_extra_args, + } + library_def += {'gir': [gir]} + + if not static_build + validate_gir = gnome.generate_gir(gstvalidate, kwargs: gir) + validate_gen_sources += [validate_gir] + endif endif +libraries += [[pkg_name, library_def]] validate_dep = declare_dependency(link_with : gstvalidate, include_directories : [inc_dirs], @@ -112,6 +121,6 @@ validate_dep = declare_dependency(link_with : gstvalidate, sources : validate_gen_sources ) -meson.override_dependency('gst-validate-1.0', validate_dep) +meson.override_dependency(pkg_name, validate_dep) pkgconfig.generate(gstvalidatetracer, install_dir : plugins_pkgconfig_install_dir) diff --git a/subprojects/gst-editing-services/docs/meson.build b/subprojects/gst-editing-services/docs/meson.build index c3c91efff2..e8ff054bd6 100644 --- a/subprojects/gst-editing-services/docs/meson.build +++ b/subprojects/gst-editing-services/docs/meson.build @@ -58,7 +58,7 @@ foreach extension: required_hotdoc_extensions endif endforeach -if not build_gir +if not build_gir or static_build if get_option('doc').enabled() error('Documentation enabled but introspection not built.') endif diff --git a/subprojects/gst-editing-services/ges/meson.build b/subprojects/gst-editing-services/ges/meson.build index cf835ed3e5..dab7acb874 100644 --- a/subprojects/gst-editing-services/ges/meson.build +++ b/subprojects/gst-editing-services/ges/meson.build @@ -105,7 +105,6 @@ ges_headers = files([ 'ges-audio-source.h', 'ges-video-uri-source.h', 'ges-audio-uri-source.h', - 'ges-image-source.h', 'ges-multi-file-source.h', 'ges-transition.h', 'ges-audio-transition.h', @@ -149,8 +148,6 @@ ges_headers += [configure_file(input : 'ges-version.h.in', install_dir : join_paths(get_option('includedir'), 'gstreamer-1.0/ges'), configuration : version_data)] -install_headers(ges_headers, subdir : 'gstreamer-1.0/ges') - flex = find_program('flex', required : false) if not flex.found() flex = find_program('win_flex', required : false) @@ -183,13 +180,16 @@ libges = library('ges-1.0', ges_sources, parser, ges_resources, install : true, dependencies : libges_deps) +pkg_name = 'gst-editing-services-1.0' pkgconfig.generate(libges, libraries : [gst_dep, gstbase_dep, gstpbutils_dep, gstcontroller_dep], subdirs : pkgconfig_subdirs, - name : 'gst-editing-services-1.0', + name : pkg_name, description : 'GStreamer Editing Services', ) +library_def = {'lib': libges} +pkg_name = 'gst-editing-services-1.0' ges_gen_sources = [] if build_gir ges_gir_extra_args = gir_init_section + [ '--c-include=ges/ges.h' ] @@ -201,26 +201,34 @@ if build_gir '-I' + meson.current_build_dir() + '/..', '--cflags-end'] endif - ges_gir = gnome.generate_gir(libges, - sources : ges_sources + ges_headers, - namespace : 'GES', - nsversion : apiversion, - identifier_prefix : 'GES', - symbol_prefix : 'ges', - export_packages : 'gst-editing-services-1.0', - includes : ['Gst-1.0', 'GstPbutils-1.0', 'GstVideo-1.0', 'Gio-2.0', 'GObject-2.0'], - install : true, - dependencies : libges_deps, - extra_args : ges_gir_extra_args - ) - ges_gen_sources += [ges_gir] + gir = { + 'sources' : ges_sources + ges_headers, + 'namespace' : 'GES', + 'nsversion' : apiversion, + 'identifier_prefix' : 'GES', + 'symbol_prefix' : 'ges', + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0', 'GstPbutils-1.0', 'GstVideo-1.0', 'Gio-2.0', 'GObject-2.0'], + 'install' : true, + 'dependencies' : libges_deps, + 'extra_args' : ges_gir_extra_args + } + library_def = {'gir': gir} + if not static_build + ges_gir = gnome.generate_gir(libges, kwargs: gir) + ges_gen_sources += [ges_gir] + endif endif +# GESImageSource is unused and is internal only so it gets stripped out when we statically +# link GES. We keep the header for backward compatibility reasons. +install_headers(ges_headers + files('ges-image-source.h'), subdir : 'gstreamer-1.0/ges') +libraries += [[pkg_name, library_def]] + ges_dep = declare_dependency(link_with : libges, include_directories : [configinc], sources : ges_gen_sources, dependencies : libges_deps, ) - -meson.override_dependency('gst-editing-services-1.0', ges_dep) +meson.override_dependency(pkg_name, ges_dep) diff --git a/subprojects/gst-editing-services/meson.build b/subprojects/gst-editing-services/meson.build index 975ec2d6a5..583af26afd 100644 --- a/subprojects/gst-editing-services/meson.build +++ b/subprojects/gst-editing-services/meson.build @@ -254,6 +254,9 @@ pkgconfig = import('pkgconfig') pkgconfig_subdirs = ['gstreamer-1.0'] configinc = include_directories('.') +static_build = get_option('default_library') == 'static' +libraries = [] + subdir('ges') subdir('plugins') if not get_option('tools').disabled() diff --git a/subprojects/gst-plugins-bad/docs/meson.build b/subprojects/gst-plugins-bad/docs/meson.build index d3489fb33e..1c20b5c879 100644 --- a/subprojects/gst-plugins-bad/docs/meson.build +++ b/subprojects/gst-plugins-bad/docs/meson.build @@ -61,6 +61,15 @@ foreach extension: required_hotdoc_extensions endif endforeach +if static_build + if get_option('doc').enabled() + error('Documentation enabled but not supported when building statically.') + endif + + message('Building statically, can\'t build the documentation') + subdir_done() +endif + if not build_gir if get_option('doc').enabled() error('Documentation enabled but introspection not built.') diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/adaptivedemux/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/adaptivedemux/meson.build index 11075cca70..f1c91b7be2 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/adaptivedemux/meson.build +++ b/subprojects/gst-plugins-bad/gst-libs/gst/adaptivedemux/meson.build @@ -1,6 +1,7 @@ adaptivedemux_sources = files('gstadaptivedemux.c') adaptivedemux_headers = files('gstadaptivedemux.h') +pkg_name = 'gstreamer-adaptivedemux-1.0' gstadaptivedemux = library('gstadaptivedemux-' + api_version, adaptivedemux_sources, c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API', '-DBUILDING_GST_ADAPTIVE_DEMUX'], @@ -11,7 +12,10 @@ gstadaptivedemux = library('gstadaptivedemux-' + api_version, install : true, dependencies : [gstbase_dep, gsturidownloader_dep], ) +libraries += [[pkg_name, {'lib': gstadaptivedemux}]] gstadaptivedemux_dep = declare_dependency(link_with : gstadaptivedemux, include_directories : [libsinc], dependencies : [gstbase_dep, gsturidownloader_dep]) + +meson.override_dependency(pkg_name, gstadaptivedemux_dep) \ No newline at end of file diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/audio/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/audio/meson.build index fbd33b7f99..faaa3d7d2f 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/audio/meson.build +++ b/subprojects/gst-plugins-bad/gst-libs/gst/audio/meson.build @@ -14,29 +14,37 @@ gstbadaudio = library('gstbadaudio-' + api_version, dependencies : [gstaudio_dep, gstbase_dep], ) +library_def = {'lib': gstbadaudio} +pkg_name = 'gstreamer-bad-audio-1.0' pkgconfig.generate(gstbadaudio, libraries : [gst_dep, gstbase_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-bad-audio-1.0', + name : pkg_name, description : 'Bad audio library for GStreamer elements', ) gen_sources = [] + if build_gir - audio_gir = gnome.generate_gir(gstbadaudio, - sources : badaudio_sources + badaudio_headers, - namespace : 'GstBadAudio', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-bad-audio-1.0', - includes : ['Gst-1.0', 'GstAudio-1.0', 'GstBase-1.0'], - install : true, - extra_args : gir_init_section + ['-DGST_USE_UNSTABLE_API'], - dependencies : [gstbase_dep, gstaudio_dep] - ) - gen_sources += audio_gir + gir = { + 'sources' : badaudio_sources + badaudio_headers, + 'namespace' : 'GstBadAudio', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0', 'GstAudio-1.0', 'GstBase-1.0'], + 'install' : true, + 'extra_args' : gir_init_section + ['-DGST_USE_UNSTABLE_API'], + 'dependencies' : [gstbase_dep, gstaudio_dep] + } + library_def += {'gir': [gir]} + if not static_build + audio_gir = gnome.generate_gir(gstbadaudio, kwargs: gir) + gen_sources += audio_gir + endif endif +libraries += [[pkg_name, library_def]] gstbadaudio_dep = declare_dependency(link_with : gstbadaudio, include_directories : [libsinc], diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/basecamerabinsrc/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/basecamerabinsrc/meson.build index 64a4c422c8..de77f23ba5 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/basecamerabinsrc/meson.build +++ b/subprojects/gst-plugins-bad/gst-libs/gst/basecamerabinsrc/meson.build @@ -22,24 +22,32 @@ gstbasecamerabin = library('gstbasecamerabinsrc-' + api_version, dependencies : [gstapp_dep], ) -_sources = [] -if build_gir - basecamerabin_gir = gnome.generate_gir(gstbasecamerabin, - sources : camerabin_sources + camerabin_headers, - namespace : 'GstBadBaseCameraBin', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-bad-base-camerabinsrc-1.0', - includes : ['Gst-1.0', 'GstApp-1.0'], - install : false, # Only for the documentation - extra_args : gir_init_section + ['-DGST_USE_UNSTABLE_API'], - dependencies : [gstapp_dep], - build_by_default : true, - ) - _sources += [basecamerabin_gir] +library_def = {'lib': gstbasecamerabin} +pkg_name = 'gstreamer-bad-base-camerabinsrc-1.0' +gen_sources = [] +if build_gir and not static_build + gir = { + 'sources' : camerabin_sources + camerabin_headers, + 'namespace' : 'GstBadBaseCameraBin', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0', 'GstApp-1.0'], + 'install' : false, # Only for the documentation + 'extra_args' : gir_init_section + ['-DGST_USE_UNSTABLE_API'], + 'dependencies' : [gstapp_dep], + 'build_by_default' : true, + } + library_def += {'gir': [gir]} + if not static_build + basecamerabin_gir = gnome.generate_gir(gstbasecamerabin, kwargs: gir) + gen_sources += basecamerabin_gir + endif endif gstbasecamerabin_dep = declare_dependency(link_with : gstbasecamerabin, include_directories : [libsinc], + sources: gen_sources, dependencies : [gstapp_dep]) +meson.override_dependency(pkg_name, gstbasecamerabin_dep) diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/meson.build index 194cc7ef8f..3327480400 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/meson.build +++ b/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/meson.build @@ -53,11 +53,12 @@ gstcodecparsers = library('gstcodecparsers-' + api_version, dependencies : [gstbase_dep, libm], ) +pkg_name = 'gstreamer-codecparsers-1.0' pkgconfig.generate(gstcodecparsers, libraries : [gst_dep, gstbase_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-codecparsers-1.0', + name : pkg_name, description : 'Bitstream parsers for GStreamer elements', ) @@ -65,4 +66,5 @@ gstcodecparsers_dep = declare_dependency(link_with : gstcodecparsers, include_directories : [libsinc], dependencies : [gstbase_dep]) -meson.override_dependency('gstreamer-codecparsers-1.0', gstcodecparsers_dep) +libraries += [[pkg_name, {'lib': gstcodecparsers}]] +meson.override_dependency(pkg_name, gstcodecparsers_dep) diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/codecs/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/codecs/meson.build index 9b1dadcc6d..d498adab51 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/codecs/meson.build +++ b/subprojects/gst-plugins-bad/gst-libs/gst/codecs/meson.build @@ -46,29 +46,38 @@ gstcodecs = library('gstcodecs-' + api_version, dependencies : [gstvideo_dep, gstcodecparsers_dep], ) +library_def = {'lib': gstcodecs} +pkg_name = 'gstreamer-codecs-1.0' gen_sources = [] if build_gir - codecs_gir = gnome.generate_gir(gstcodecs, - sources : codecs_sources + codecs_headers, - namespace : 'GstCodecs', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-codecs-1.0', - includes : ['Gst-1.0', 'GstVideo-1.0'], - install : true, - extra_args : gir_init_section + ['-DGST_USE_UNSTABLE_API'] + + gir = { + 'sources' : codecs_sources + codecs_headers, + 'namespace' : 'GstCodecs', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0', 'GstVideo-1.0'], + 'install' : true, + 'extra_args' : gir_init_section + ['-DGST_USE_UNSTABLE_API'] + ['--c-include=gst/codecs/gsth264decoder.h', '--c-include=gst/codecs/gsth265decoder.h', '--c-include=gst/codecs/gstvp9decoder.h', '--c-include=gst/codecs/gstvp8decoder.h', '--c-include=gst/codecs/gstmpeg2decoder.h', ], - dependencies : [gstvideo_dep, gstcodecparsers_dep] - ) + 'dependencies' : [gstvideo_dep, gstcodecparsers_dep] + } + library_def += {'gir': [gir]} + if not static_build + codecs_gir = gnome.generate_gir(gstcodecs, kwargs: gir) + gen_sources += codecs_gir + endif endif +libraries += [[pkg_name, library_def]] gstcodecs_dep = declare_dependency(link_with : gstcodecs, include_directories : [libsinc], sources: gen_sources, dependencies : [gstvideo_dep, gstcodecparsers_dep]) +meson.override_dependency(pkg_name, gstcodecs_dep) \ No newline at end of file diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/meson.build index 4a844ef757..2bdbe14da5 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/meson.build +++ b/subprojects/gst-plugins-bad/gst-libs/gst/d3d11/meson.build @@ -187,6 +187,7 @@ configure_file( configuration: d3d11_conf, ) +pkg_name = 'gstreamer-d3d11-' + api_version gstd3d11 = library('gstd3d11-' + api_version, d3d11_sources, c_args : gst_plugins_bad_args + extra_c_args + extra_comm_args, @@ -198,6 +199,9 @@ gstd3d11 = library('gstd3d11-' + api_version, dependencies : [gstbase_dep, gstvideo_dep, gmodule_dep, d3d11_lib, dxgi_lib] ) +library_def = {'lib': gstd3d11} +libraries += [[pkg_name, library_def]] + # Still non-public api, should not install headers gstd3d11_dep = declare_dependency(link_with : gstd3d11, include_directories : [libsinc], diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/insertbin/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/insertbin/meson.build index 500233dce7..f030a37268 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/insertbin/meson.build +++ b/subprojects/gst-plugins-bad/gst-libs/gst/insertbin/meson.build @@ -13,34 +13,41 @@ gstinsertbin = library('gstinsertbin-' + api_version, dependencies : [gst_dep], ) +library_def = {'lib': gstinsertbin} +pkg_name = 'gstreamer-insertbin-1.0' pkgconfig.generate(gstinsertbin, libraries : [gst_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-insertbin-1.0', + name : pkg_name, description : 'Bin to automatically and insertally link elements', ) gen_sources = [] if build_gir - insertbin_gir = gnome.generate_gir(gstinsertbin, - sources : insert_sources + insert_headers, - namespace : 'GstInsertBin', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-insertbin-1.0', - includes : ['Gst-1.0'], - install : true, - extra_args : gir_init_section + ['-DGST_USE_UNSTABLE_API'] + ['--c-include=gst/insertbin/gstinsertbin.h'], - dependencies : [gst_dep] - ) - gen_sources += insertbin_gir + gir = { + 'sources' : insert_sources + insert_headers, + 'namespace' : 'GstInsertBin', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0'], + 'install' : true, + 'extra_args' : gir_init_section + ['-DGST_USE_UNSTABLE_API'] + ['--c-include=gst/insertbin/gstinsertbin.h'], + 'dependencies' : [gst_dep] + } + library_def += {'gir': [gir]} + if not static_build + insertbin_gir = gnome.generate_gir(gstinsertbin, kwargs: gir) + gen_sources += insertbin_gir + endif endif +libraries += [[pkg_name, library_def]] gstinsertbin_dep = declare_dependency(link_with : gstinsertbin, include_directories : [libsinc], sources: gen_sources, dependencies : [gst_dep]) -meson.override_dependency('gstreamer-insertbin-1.0', gstinsertbin_dep) +meson.override_dependency(pkg_name, gstinsertbin_dep) diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/interfaces/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/interfaces/meson.build index a97bea70c1..e12f7c95bd 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/interfaces/meson.build +++ b/subprojects/gst-plugins-bad/gst-libs/gst/interfaces/meson.build @@ -13,6 +13,7 @@ photo_enums = gnome.mkenums_simple('photography-enumtypes', photoenum_c = photo_enums[0] photoenum_h = photo_enums[1] +pkg_name = 'gstreamer-photography-1.0' gstphotography = library('gstphotography-' + api_version, photography_sources, photoenum_h, photoenum_c, c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API', '-DBUILDING_GST_PHOTOGRAPHY'], @@ -28,7 +29,7 @@ pkgconfig.generate(gstphotography, libraries : [gst_dep, gstbase_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-photography-1.0', + name : pkg_name, description : 'High level API for transcoding using GStreamer', ) @@ -37,4 +38,5 @@ gstphotography_dep = declare_dependency(link_with : gstphotography, dependencies : [gst_dep], sources : [photoenum_h]) -meson.override_dependency('gstreamer-photography-1.0', gstphotography_dep) +libraries += [[pkg_name, {'lib': gstphotography}]] +meson.override_dependency(pkg_name, gstphotography_dep) diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/mpegts/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/mpegts/meson.build index 19ae87af02..332d236836 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/mpegts/meson.build +++ b/subprojects/gst-plugins-bad/gst-libs/gst/mpegts/meson.build @@ -46,34 +46,39 @@ gstmpegts = library('gstmpegts-' + api_version, dependencies : [gst_dep], ) +library_def = {'lib': gstmpegts} +pkg_name = 'gstreamer-mpegts-1.0' pkgconfig.generate(gstmpegts, libraries : [gst_dep, gstbase_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-mpegts-1.0', + name : pkg_name, description : 'GStreamer MPEG-TS support', ) if build_gir - mpegts_gir = gnome.generate_gir(gstmpegts, - sources : mpegts_sources + mpegts_headers, - namespace : 'GstMpegts', - nsversion : api_version, - identifier_prefix : 'GstMpegts', - symbol_prefix : ['gst_mpegts', 'gst'], - export_packages : 'gstreamer-mpegts-1.0', - includes : ['Gst-1.0'], - install : true, - extra_args : gir_init_section + ['-DGST_USE_UNSTABLE_API'] + ['--c-include=gst/mpegts/mpegts.h'], - dependencies : [gst_dep] - ) - gen_sources += mpegts_gir + gir = { + 'sources' : mpegts_sources + mpegts_headers, + 'namespace' : 'GstMpegts', + 'nsversion' : api_version, + 'identifier_prefix' : 'GstMpegts', + 'symbol_prefix' : ['gst_mpegts', 'gst'], + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0'], + 'install' : true, + 'extra_args' : gir_init_section + ['-DGST_USE_UNSTABLE_API'] + ['--c-include=gst/mpegts/mpegts.h'], + 'dependencies' : [gst_dep] + } + library_def += {'gir': [gir]} + if not static_build + mpegts_gir = gnome.generate_gir(gstmpegts, kwargs: gir) + gen_sources += mpegts_gir + endif endif - +libraries += [[pkg_name, library_def]] gstmpegts_dep = declare_dependency(link_with : gstmpegts, include_directories : [libsinc], dependencies : [gst_dep], sources : gen_sources) - -meson.override_dependency('gstreamer-mpegts-1.0', gstmpegts_dep) +meson.override_dependency(pkg_name, gstmpegts_dep) diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/opencv/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/opencv/meson.build index 16e0746a7a..fa3d354dda 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/opencv/meson.build +++ b/subprojects/gst-plugins-bad/gst-libs/gst/opencv/meson.build @@ -25,6 +25,7 @@ if opencv_dep.found() # /usr/include/opencv4/opencv2/flann/logger.h:83:36: error: format string is not a string literal [-Werror,-Wformat-nonliteral] gstopencv_cargs = cxx.get_supported_arguments(['-Wno-missing-include-dirs', '-Wno-format-nonliteral']) + pkg_name = 'gstreamer-opencv-1.0' gstopencv = library('gstopencv-' + api_version, opencv_sources, c_args : gst_plugins_bad_args + ['-DBUILDING_GST_OPENCV'], @@ -33,14 +34,16 @@ if opencv_dep.found() include_directories : [configinc, libsinc], version : libversion, soversion : soversion, - darwin_versions : osxversion, + darwin_versions : osxversion, install : true, dependencies : [gstbase_dep, gstvideo_dep, opencv_dep], ) + libraries += [[pkg_name, {'lib': gstopencv}]] gstopencv_dep = declare_dependency(link_with: gstopencv, include_directories : [libsinc], dependencies : [gstvideo_dep, opencv_dep]) + meson.override_dependency(pkg_name, gstopencv_dep) install_headers(opencv_headers, subdir : 'gstreamer-1.0/gst/opencv') elif get_option('opencv').enabled() diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/play/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/play/meson.build index b6467b17c0..71e50366eb 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/play/meson.build +++ b/subprojects/gst-plugins-bad/gst-libs/gst/play/meson.build @@ -3,8 +3,8 @@ gstplay_sources = files( 'gstplay-signal-adapter.c', 'gstplay-video-renderer.c', 'gstplay-media-info.c', - 'gstplay-video-overlay-video-renderer.c', 'gstplay-visualization.c', + 'gstplay-video-overlay-video-renderer.c', ) gstplay_headers = files( @@ -33,32 +33,39 @@ gstplay = library('gstplay-' + api_version, gsttag_dep, gstpbutils_dep], ) +pkg_name = 'gstreamer-play-1.0' pkgconfig.generate(gstplay, libraries : [gst_dep, gstvideo_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-play-1.0', + name : pkg_name, description : 'GStreamer Player convenience library', ) +library_def = {'lib': gstplay} gen_sources = [] if build_gir - play_gir = gnome.generate_gir(gstplay, - sources : gstplay_sources + gstplay_headers, - namespace : 'GstPlay', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-play-1.0', - includes : ['Gst-1.0', 'GstPbutils-1.0', 'GstBase-1.0', 'GstVideo-1.0', + gir = { + 'sources' : gstplay_sources + gstplay_headers, + 'namespace' : 'GstPlay', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0', 'GstPbutils-1.0', 'GstBase-1.0', 'GstVideo-1.0', 'GstAudio-1.0', 'GstTag-1.0'], - install : true, - extra_args : gir_init_section + ['-DGST_USE_UNSTABLE_API'] + ['--c-include=gst/play/play.h'], - dependencies : [gstbase_dep, gstvideo_dep, gstaudio_dep, - gsttag_dep, gstpbutils_dep] - ) - gen_sources += play_gir + 'install' : true, + 'extra_args' : gir_init_section + ['-DGST_USE_UNSTABLE_API'] + ['--c-include=gst/play/play.h'], + 'dependencies' : [gstbase_dep, gstvideo_dep, gstaudio_dep, + gsttag_dep, gstpbutils_dep] + } + library_def += {'gir': [gir]} + if not static_build + play_gir = gnome.generate_gir(gstplay, kwargs: gir) + gen_sources += play_gir + endif endif +libraries += [[pkg_name, library_def]] gstplay_dep = declare_dependency(link_with : gstplay, include_directories : [libsinc], @@ -66,4 +73,4 @@ gstplay_dep = declare_dependency(link_with : gstplay, dependencies : [gstbase_dep, gstvideo_dep, gstaudio_dep, gsttag_dep, gstpbutils_dep]) -meson.override_dependency('gstreamer-play-1.0', gstplay_dep) +meson.override_dependency(pkg_name, gstplay_dep) diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/player/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/player/meson.build index 59ea6db6f3..0aee34cb3e 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/player/meson.build +++ b/subprojects/gst-plugins-bad/gst-libs/gst/player/meson.build @@ -36,6 +36,8 @@ gstplayer = library('gstplayer-' + api_version, gsttag_dep, gstpbutils_dep], ) +library_def = {'lib': gstplayer} +pkg_name = 'gstreamer-player-1.0' pkgconfig.generate(gstplayer, libraries : [gst_dep, gstvideo_dep], variables : pkgconfig_variables, @@ -46,22 +48,27 @@ pkgconfig.generate(gstplayer, gen_sources = [] if build_gir - player_gir = gnome.generate_gir(gstplayer, - sources : gstplayer_sources + gstplayer_headers, - namespace : 'GstPlayer', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-player-1.0', - includes : ['Gst-1.0', 'GstPbutils-1.0', 'GstBase-1.0', 'GstVideo-1.0', + gir = { + 'sources' : gstplayer_sources + gstplayer_headers, + 'namespace' : 'GstPlayer', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0', 'GstPbutils-1.0', 'GstBase-1.0', 'GstVideo-1.0', 'GstAudio-1.0', 'GstTag-1.0'], - install : true, - extra_args : gir_init_section + ['-DGST_USE_UNSTABLE_API'] + ['--c-include=gst/player/player.h'], - dependencies : [gstbase_dep, gstvideo_dep, gstaudio_dep, gstplay_dep, - gsttag_dep, gstpbutils_dep] - ) - gen_sources += player_gir + 'install' : true, + 'extra_args' : gir_init_section + ['-DGST_USE_UNSTABLE_API'] + ['--c-include=gst/player/player.h'], + 'dependencies' : [gstbase_dep, gstvideo_dep, gstaudio_dep, gstplay_dep, + gsttag_dep, gstpbutils_dep] + } + library_def = {'lib': library_def['lib'], 'gir': [gir]} + if not static_build + player_gir = gnome.generate_gir(gstplayer, kwargs: gir) + gen_sources += player_gir + endif endif +libraries += [[pkg_name, library_def]] gstplayer_dep = declare_dependency(link_with : gstplayer, include_directories : [libsinc], @@ -69,4 +76,4 @@ gstplayer_dep = declare_dependency(link_with : gstplayer, dependencies : [gstbase_dep, gstvideo_dep, gstaudio_dep, gstplay_dep, gsttag_dep, gstpbutils_dep]) -meson.override_dependency('gstreamer-player-1.0', gstplayer_dep) +meson.override_dependency(pkg_name, gstplayer_dep) diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/sctp/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/sctp/meson.build index 122060bc33..2db3266884 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/sctp/meson.build +++ b/subprojects/gst-plugins-bad/gst-libs/gst/sctp/meson.build @@ -21,11 +21,13 @@ libgstsctp = library('gstsctp-' + api_version, dependencies : [gstbase_dep], ) +pkg_name = 'gstreamer-sctp-1.0' +libraries += [[pkg_name, {'lib': libgstsctp}]] pkgconfig.generate(libgstsctp, libraries : [gst_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-sctp-1.0', + name : pkg_name, description : 'SCTP helper functions', ) @@ -33,4 +35,4 @@ gstsctp_dep = declare_dependency(link_with : libgstsctp, include_directories : [libsinc], dependencies : [gstbase_dep]) -meson.override_dependency('gstreamer-sctp-1.0', gstsctp_dep) +meson.override_dependency(pkg_name, gstsctp_dep) diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/transcoder/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/transcoder/meson.build index b6c54983f2..06995d6d16 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/transcoder/meson.build +++ b/subprojects/gst-plugins-bad/gst-libs/gst/transcoder/meson.build @@ -25,35 +25,42 @@ gst_transcoder = library('gsttranscoder-' + api_version, soversion : soversion, ) +library_def = {'lib': gst_transcoder} +pkg_name = 'gstreamer-transcoder-1.0' pkgconfig.generate(gst_transcoder, libraries : [gst_dep, gstbase_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-transcoder-1.0', + name : pkg_name, description : 'High level API for transcoding using GStreamer', ) if build_gir - transcoder_gir = gnome.generate_gir(gst_transcoder, - sources : sources + headers + [gsttranscoder_h], - nsversion : api_version, - namespace : 'GstTranscoder', - identifier_prefix : 'Gst', - symbol_prefix : 'gst_', - includes : ['GObject-2.0', + gir = { + 'sources' : sources + headers + [gsttranscoder_h], + 'nsversion' : api_version, + 'namespace' : 'GstTranscoder', + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst_', + 'includes' : ['GObject-2.0', 'Gst-' + api_version, 'GstPbutils-' + api_version], - dependencies: [gst_dep, gstpbutils_dep], - install : true, - extra_args : gir_init_section - ) - transcoder_gen_sources += transcoder_gir + 'dependencies' : [gst_dep, gstpbutils_dep], + 'export_packages' : pkg_name, + 'install' : true, + 'extra_args' : gir_init_section + } + library_def += { 'gir': [gir]} + if not static_build + transcoder_gir = gnome.generate_gir(gst_transcoder, kwargs: gir) + transcoder_gen_sources += transcoder_gir + endif endif +libraries += [[pkg_name, library_def]] gst_transcoder_dep = declare_dependency(link_with: gst_transcoder, dependencies : [gst_dep, gstpbutils_dep], - include_directories : [libsinc], sources: transcoder_gen_sources, + include_directories : [libsinc] ) - -meson.override_dependency('gstreamer-transcoder-1.0', gst_transcoder_dep) +meson.override_dependency(pkg_name, gst_transcoder_dep) diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/uridownloader/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/uridownloader/meson.build index 7bea2fbcc2..52ae516f02 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/uridownloader/meson.build +++ b/subprojects/gst-plugins-bad/gst-libs/gst/uridownloader/meson.build @@ -10,6 +10,7 @@ urid_headers = [ ] install_headers(urid_headers, subdir : 'gstreamer-1.0/gst/uridownloader') +pkg_name = 'gstreamer-downloader-1.0' gsturidownloader = library('gsturidownloader-' + api_version, urid_sources, c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API', '-DBUILDING_GST_URI_DOWNLOADER'], @@ -24,3 +25,6 @@ gsturidownloader = library('gsturidownloader-' + api_version, gsturidownloader_dep = declare_dependency(link_with : gsturidownloader, include_directories : [libsinc], dependencies : [gstbase_dep]) + +libraries += [[pkg_name, {'lib': gsturidownloader}]] +meson.override_dependency(pkg_name, gsturidownloader_dep) \ No newline at end of file diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/va/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/va/meson.build index a58032fdd0..2509a941a6 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/va/meson.build +++ b/subprojects/gst-plugins-bad/gst-libs/gst/va/meson.build @@ -45,15 +45,17 @@ gstva = library('gstva-' + api_version, dependencies : [gst_dep, libva_dep, libva_drm_dep, libdrm_dep], ) +pkg_name = 'gstreamer-va-1.0' +libraries += [[pkg_name, {'lib': gstva}]] pkgconfig.generate(gstva, libraries : gst_dep, variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-va-1.0', + name : pkg_name, description : 'GStreamer VA support', ) gstva_dep = declare_dependency(link_with : gstva, include_directories : [libsinc], dependencies : [gst_dep, libva_dep, libva_drm_dep, libdrm_dep]) -meson.override_dependency('gstreamer-va-1.0', gstva_dep) +meson.override_dependency(pkg_name, gstva_dep) diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/meson.build index 00a918ccfb..f8d9a34756 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/meson.build +++ b/subprojects/gst-plugins-bad/gst-libs/gst/vulkan/meson.build @@ -322,11 +322,13 @@ gstvulkan = library('gstvulkan-' + api_version, # don't confuse gst/vulkan/xcb/xcb.h with xcb/xcb.h implicit_include_directories : false) +library_def = {'lib': gstvulkan} +pkg_name = 'gstreamer-vulkan-1.0' pkgconfig.generate(gstvulkan, libraries : [gst_dep, gstbase_dep, gstvideo_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-vulkan-1.0', + name : pkg_name, description : 'GStreamer Vulkan support', ) @@ -338,27 +340,33 @@ if build_gir extra_gir_includes += ['Vulkan-1.0'] endif - vulkan_gir = gnome.generate_gir(gstvulkan, - sources : vulkan_sources + vulkan_headers + [vulkan_enumtypes_h, vulkan_enumtypes_c], - namespace : 'GstVulkan', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-vulkan-1.0', - includes : ['Gst-1.0', 'GstBase-1.0', 'GstVideo-1.0'] + extra_gir_includes, - install : true, - extra_args : gir_init_section + ['--c-include=gst/vulkan/vulkan.h'], - dependencies : [gstvideo_dep, gst_dep, gstbase_dep] + optional_deps - ) - gen_sources += vulkan_gir + gir = { + 'sources' : vulkan_sources + vulkan_headers + [vulkan_enumtypes_h, vulkan_enumtypes_c], + 'namespace' : 'GstVulkan', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0', 'GstBase-1.0', 'GstVideo-1.0'] + extra_gir_includes, + 'install' : true, + 'extra_args' : gir_init_section + ['--c-include=gst/vulkan/vulkan.h'], + 'dependencies' : [gstvideo_dep, gst_dep, gstbase_dep] + optional_deps + } + + library_def += {'gir': [gir]} + if not static_build + vulkan_gir = gnome.generate_gir(gstvulkan, kwargs: gir) + gen_sources += vulkan_gir + endif endif +libraries += [[pkg_name, library_def]] gstvulkan_dep = declare_dependency(link_with : gstvulkan, include_directories : [libsinc], sources: gen_sources, dependencies : [gstvideo_dep, gstbase_dep, vulkan_dep] + optional_deps) -meson.override_dependency('gstreamer-vulkan-1.0', gstvulkan_dep) +meson.override_dependency(pkg_name, gstvulkan_dep) if enabled_vulkan_winsys.contains('xcb') install_headers(vulkan_xcb_headers, subdir : 'gstreamer-1.0/gst/vulkan/xcb') @@ -371,18 +379,25 @@ if enabled_vulkan_winsys.contains('xcb') ) vulkan_xcb_gir = [] if build_gir - vulkan_xcb_gir = gnome.generate_gir(gstvulkan, - sources : vulkan_xcb_sources + vulkan_xcb_headers, - namespace : 'GstVulkanXCB', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-vulkan-xcb-1.0', - includes : ['Gst-1.0', 'GstBase-1.0', 'GstVideo-1.0', vulkan_gir[0]] + extra_gir_includes, - install : true, - extra_args : gir_init_section + ['--c-include=gst/vulkan/xcb/xcb.h'], - dependencies : [gstvideo_dep, gst_dep, gstbase_dep] + optional_deps - ) + gir = { + 'sources' : vulkan_xcb_sources + vulkan_xcb_headers, + 'namespace' : 'GstVulkanXCB', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : 'gstreamer-vulkan-xcb-1.0', + 'install' : true, + 'extra_args' : gir_init_section + ['--c-include=gst/vulkan/xcb/xcb.h'], + 'dependencies' : [gstvideo_dep, gst_dep, gstbase_dep] + optional_deps + } + + if not static_build + gir += {'includes' : ['Gst-1.0', 'GstBase-1.0', 'GstVideo-1.0', vulkan_gir[0]] + extra_gir_includes} + vulkan_xcb_gir = gnome.generate_gir(gstvulkan, kwargs: gir) + endif + + gir += {'includes' :['Gst-1.0', 'GstBase-1.0', 'GstVideo-1.0', 'GstVulkan-1.0'] + extra_gir_includes} + library_def += {'gir': library_def['gir'] + [gir]} endif gstvulkanxcb_dep = declare_dependency(dependencies : [gstvulkan_dep], sources : vulkan_xcb_gir) @@ -400,20 +415,26 @@ if enabled_vulkan_winsys.contains('wayland') ) vulkan_wayland_gir = [] if build_gir - vulkan_wayland_gir = gnome.generate_gir(gstvulkan, - sources : vulkan_wayland_sources + vulkan_wayland_headers, - namespace : 'GstVulkanWayland', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-vulkan-wayland-1.0', - includes : ['Gst-1.0', 'GstBase-1.0', 'GstVideo-1.0', vulkan_gir[0]] + extra_gir_includes, - install : true, - extra_args : gir_init_section + ['--c-include=gst/vulkan/wayland/wayland.h'], - dependencies : [gstvideo_dep, gst_dep, gstbase_dep] + optional_deps - ) + gir = { + 'sources' : vulkan_wayland_sources + vulkan_wayland_headers, + 'namespace' : 'GstVulkanWayland', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : 'gstreamer-vulkan-wayland-1.0', + 'install' : true, + 'extra_args' : gir_init_section + ['--c-include=gst/vulkan/wayland/wayland.h'], + 'dependencies' : [gstvideo_dep, gst_dep, gstbase_dep] + optional_deps + } + if not static_build + gir += {'includes' : ['Gst-1.0', 'GstBase-1.0', 'GstVideo-1.0', vulkan_gir[0]] + extra_gir_includes} + vulkan_wayland_gir += gnome.generate_gir(gstvulkan, kwargs: gir) + endif + gir += {'includes' :['Gst-1.0', 'GstBase-1.0', 'GstVideo-1.0', 'GstVulkan-1.0'] + extra_gir_includes} + library_def += {'gir': library_def['gir'] + [gir]} endif gstvulkanwayland_dep = declare_dependency(dependencies : [gstvulkan_dep], sources : vulkan_wayland_gir) meson.override_dependency('gstreamer-vulkan-wayland-1.0', gstvulkanwayland_dep) endif + diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/wayland/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/wayland/meson.build index 182c9c3083..22a9793b5f 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/wayland/meson.build +++ b/subprojects/gst-plugins-bad/gst-libs/gst/wayland/meson.build @@ -18,11 +18,13 @@ if use_wayland dependencies : [gst_dep, gstvideo_dep, wl_client_dep] ) + pkg_name = 'gstreamer-wayland-1.0' + libraries += [[pkg_name, {'lib': gstwayland}]] pkgconfig.generate(gstwayland, libraries : [gst_dep, gstvideo_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-wayland-1.0', + name : pkg_name, description : 'GStreamer Wayland support', ) @@ -30,6 +32,6 @@ if use_wayland include_directories : [libsinc], dependencies : [gst_dep, gstvideo_dep]) - meson.override_dependency('gstreamer-wayland-1.0', gstwayland_dep) install_headers('wayland.h', subdir: 'gstreamer-1.0/gst/wayland') + meson.override_dependency(pkg_name, gstwayland_dep) endif diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/webrtc/meson.build b/subprojects/gst-plugins-bad/gst-libs/gst/webrtc/meson.build index c0e233f343..f81d8c7dba 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/webrtc/meson.build +++ b/subprojects/gst-plugins-bad/gst-libs/gst/webrtc/meson.build @@ -55,29 +55,36 @@ gstwebrtc = library('gstwebrtc-' + api_version, dependencies : gstwebrtc_dependencies, ) +library_def = {'lib': gstwebrtc} +pkg_name = 'gstreamer-webrtc-1.0' pkgconfig.generate(gstwebrtc, libraries : [gst_dep, gstbase_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-webrtc-1.0', + name : pkg_name, description : 'GStreamer WebRTC support', ) if build_gir - webrtc_gir = gnome.generate_gir(gstwebrtc, - sources : webrtc_sources + webrtc_headers + [gstwebrtc_h], - namespace : 'GstWebRTC', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-webrtc-1.0', - includes : ['Gst-1.0', 'GstSdp-1.0'], - install : true, - extra_args : gir_init_section + ['-DGST_USE_UNSTABLE_API'] + ['--c-include=gst/webrtc/webrtc.h'], - dependencies : [gstbase_dep, gstsdp_dep] - ) - webrtc_gen_sources += webrtc_gir + gir = { + 'sources' : webrtc_sources + webrtc_headers + [gstwebrtc_h], + 'namespace' : 'GstWebRTC', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0', 'GstSdp-1.0'], + 'install' : true, + 'extra_args' : gir_init_section + ['-DGST_USE_UNSTABLE_API'] + ['--c-include=gst/webrtc/webrtc.h'], + 'dependencies' : gstwebrtc_dependencies, + } + library_def = {'lib': library_def['lib'], 'gir': [gir]} + if not static_build + webrtc_gir = gnome.generate_gir(gstwebrtc, kwargs: gir) + webrtc_gen_sources += webrtc_gir + endif endif +libraries += [[pkg_name, library_def]] install_headers(webrtc_headers, subdir : 'gstreamer-1.0/gst/webrtc') @@ -86,4 +93,4 @@ gstwebrtc_dep = declare_dependency(link_with: gstwebrtc, sources: webrtc_gen_sources, dependencies: gstwebrtc_dependencies) -meson.override_dependency('gstreamer-webrtc-1.0', gstwebrtc_dep) +meson.override_dependency(pkg_name, gstwebrtc_dep) diff --git a/subprojects/gst-plugins-bad/meson.build b/subprojects/gst-plugins-bad/meson.build index 0129b7990b..6701d9ad8f 100644 --- a/subprojects/gst-plugins-bad/meson.build +++ b/subprojects/gst-plugins-bad/meson.build @@ -29,7 +29,9 @@ libversion = '@0@.@1@.0'.format(soversion, curversion) osxversion = curversion + 1 plugins_install_dir = join_paths(get_option('libdir'), 'gstreamer-1.0') +static_build = get_option('default_library') == 'static' plugins = [] +libraries = [] cc = meson.get_compiler('c') cxx = meson.get_compiler('cpp') diff --git a/subprojects/gst-plugins-base/docs/meson.build b/subprojects/gst-plugins-base/docs/meson.build index f15c3b0bbc..797f53d547 100644 --- a/subprojects/gst-plugins-base/docs/meson.build +++ b/subprojects/gst-plugins-base/docs/meson.build @@ -61,7 +61,7 @@ foreach extension: required_hotdoc_extensions endif endforeach -if not build_gir +if not build_gir or static_build if get_option('doc').enabled() error('Documentation enabled but introspection not built.') endif diff --git a/subprojects/gst-plugins-base/gst-libs/gst/allocators/meson.build b/subprojects/gst-plugins-base/gst-libs/gst/allocators/meson.build index a4804af71e..f6586b3b93 100644 --- a/subprojects/gst-plugins-base/gst-libs/gst/allocators/meson.build +++ b/subprojects/gst-plugins-base/gst-libs/gst/allocators/meson.build @@ -19,31 +19,38 @@ gstallocators = library('gstallocators-@0@'.format(api_version), dependencies : [gst_dep], ) +pkg_name = 'gstreamer-allocators-1.0' pkgconfig.generate(gstallocators, libraries : [gst_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-allocators-1.0', + name : pkg_name, description : 'Allocators implementation', ) +library_def = {'lib': gstallocators} allocators_gen_sources = [] if build_gir gst_gir_extra_args = gir_init_section + [ '--c-include=gst/allocators/allocators.h' ] - allocators_gir = gnome.generate_gir(gstallocators, - sources : gst_allocators_sources + gst_allocators_headers, - namespace : 'GstAllocators', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-allocators-1.0', - includes : ['Gst-1.0'], - install : true, - extra_args : gst_gir_extra_args, - dependencies : [gst_dep] - ) - allocators_gen_sources += allocators_gir + gir = { + 'sources' : gst_allocators_sources + gst_allocators_headers, + 'namespace' : 'GstAllocators', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0'], + 'install' : true, + 'extra_args' : gst_gir_extra_args, + 'dependencies' : [gst_dep] + } + library_def += {'gir': [gir]} + if not static_build + allocators_gir = gnome.generate_gir(gstallocators, kwargs: gir) + allocators_gen_sources += allocators_gir + endif endif +libraries += [[pkg_name, library_def]] allocators_dep = declare_dependency(link_with: gstallocators, include_directories : [libsinc], diff --git a/subprojects/gst-plugins-base/gst-libs/gst/app/meson.build b/subprojects/gst-plugins-base/gst-libs/gst/app/meson.build index 9fdaae4aac..6d09e39a69 100644 --- a/subprojects/gst-plugins-base/gst-libs/gst/app/meson.build +++ b/subprojects/gst-plugins-base/gst-libs/gst/app/meson.build @@ -30,35 +30,41 @@ gstapp = library('gstapp-@0@'.format(api_version), dependencies : [gst_base_dep], ) +pkg_name = 'gstreamer-app-1.0' pkgconfig.generate(gstapp, libraries : [gst_dep, gst_base_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-app-1.0', + name : pkg_name, description : 'Helper functions and base classes for application integration', ) +library_def = {'lib': gstapp} if build_gir gst_gir_extra_args = gir_init_section + [ '--c-include=gst/app/app.h' ] - app_gir = gnome.generate_gir(gstapp, - sources : app_sources + app_headers + [gstapp_c] + [gstapp_h], - namespace : 'GstApp', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-app-1.0', - includes : ['Gst-1.0', 'GstBase-1.0'], - install : true, - extra_args : gst_gir_extra_args, - dependencies : [gst_dep, gst_base_dep] - ) - - app_gen_sources += app_gir + gir = { + 'sources' : app_sources + app_headers + [gstapp_c] + [gstapp_h], + 'namespace' : 'GstApp', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0', 'GstBase-1.0'], + 'install' : true, + 'extra_args' : gst_gir_extra_args, + 'dependencies' : [gst_dep, gst_base_dep] + } + library_def += {'gir': [gir]} + if not static_build + app_gir = gnome.generate_gir(gstapp, kwargs: gir) + app_gen_sources += app_gir + endif endif +libraries += [[pkg_name, library_def]] app_dep = declare_dependency(link_with: gstapp, include_directories : [libsinc], dependencies : [gst_base_dep], sources : app_gen_sources) -meson.override_dependency('gstreamer-app-1.0', app_dep) +meson.override_dependency(pkg_name, app_dep) diff --git a/subprojects/gst-plugins-base/gst-libs/gst/audio/meson.build b/subprojects/gst-plugins-base/gst-libs/gst/audio/meson.build index 2bd3a334a8..4498afd5be 100644 --- a/subprojects/gst-plugins-base/gst-libs/gst/audio/meson.build +++ b/subprojects/gst-plugins-base/gst-libs/gst/audio/meson.build @@ -151,35 +151,41 @@ gstaudio = library('gstaudio-@0@'.format(api_version), install : true, dependencies : gstaudio_deps, ) - +pkg_name = 'gstreamer-audio-1.0' pkgconfig.generate(gstaudio, libraries : [gst_dep, gst_base_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-audio-1.0', + name : pkg_name, description : 'Audio helper functions and base classes', ) +library_def = {'lib': gstaudio} if build_gir gst_gir_extra_args = gir_init_section + [ '--c-include=gst/audio/audio.h' ] - audio_gir = gnome.generate_gir(gstaudio, - sources : audio_src + audio_headers + [gstaudio_c] + [gstaudio_h], - namespace : 'GstAudio', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-audio-1.0', - includes : ['Gst-1.0', 'GstBase-1.0', 'GLib-2.0', 'GObject-2.0', 'GModule-2.0' ], - install : true, - extra_args : gst_gir_extra_args, - dependencies : gstaudio_deps - ) - audio_gen_sources += [audio_gir] + gir = { + 'sources' : audio_src + audio_headers + [gstaudio_c] + [gstaudio_h], + 'namespace' : 'GstAudio', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0', 'GstBase-1.0', 'GLib-2.0', 'GObject-2.0', 'GModule-2.0' ], + 'install' : true, + 'extra_args' : gst_gir_extra_args, + 'dependencies' : gstaudio_deps + } + library_def = {'lib': library_def['lib'], 'gir': [gir]} + if not static_build + audio_gir = gnome.generate_gir(gstaudio, kwargs: gir) + audio_gen_sources += [audio_gir] + endif endif +libraries += [[pkg_name, library_def]] audio_dep = declare_dependency(link_with : gstaudio, include_directories : [libsinc], dependencies : gstaudio_deps, sources : audio_gen_sources) -meson.override_dependency('gstreamer-audio-1.0', audio_dep) +meson.override_dependency(pkg_name, audio_dep) diff --git a/subprojects/gst-plugins-base/gst-libs/gst/fft/meson.build b/subprojects/gst-plugins-base/gst-libs/gst/fft/meson.build index 3bdad445e4..5e738ba793 100644 --- a/subprojects/gst-plugins-base/gst-libs/gst/fft/meson.build +++ b/subprojects/gst-plugins-base/gst-libs/gst/fft/meson.build @@ -35,17 +35,18 @@ gstfft = library('gstfft-@0@'.format(api_version), install : true, dependencies : [gst_dep, libm], ) - +pkg_name = 'gstreamer-fft-1.0' pkgconfig.generate(gstfft, libraries : [gst_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-fft-1.0', + name : pkg_name, description : 'FFT implementation', ) +libraries += [[pkg_name, {'lib': gstfft}]] fft_dep = declare_dependency(link_with: gstfft, include_directories : [libsinc], dependencies : [gst_dep]) -meson.override_dependency('gstreamer-fft-1.0', fft_dep) +meson.override_dependency(pkg_name, fft_dep) diff --git a/subprojects/gst-plugins-base/gst-libs/gst/gl/meson.build b/subprojects/gst-plugins-base/gst-libs/gst/gl/meson.build index 1c807e39e1..055c0f2678 100644 --- a/subprojects/gst-plugins-base/gst-libs/gst/gl/meson.build +++ b/subprojects/gst-plugins-base/gst-libs/gst/gl/meson.build @@ -37,7 +37,7 @@ gl_sources = files([ 'gstglwindow.c', ]) -gl_priv_sources = files([]) +gl_priv_sources = [] gir_gl_headers = files([ 'gl.h', @@ -615,12 +615,12 @@ if need_win_wayland != 'no' gl_wayland_sources += files([ 'wayland/gstgldisplay_wayland.c', ]) - gl_priv_sources += files([ + gl_priv_sources += [ 'wayland/gstglwindow_wayland_egl.c', 'wayland/wayland_event_source.c', xdg_shell_header, xdg_shell_code, - ]) + ] gl_wayland_headers += files([ 'wayland/wayland.h', 'wayland/gstgldisplay_wayland.h' @@ -655,10 +655,10 @@ if need_win_x11 != 'no' gl_x11_sources += files([ 'x11/gstgldisplay_x11.c', ]) - gl_priv_sources += files([ + gl_priv_sources += [ 'x11/gstglwindow_x11.c', 'x11/xcb_event_source.c', - ]) + ] gl_x11_headers += files([ 'x11/x11.h', 'x11/gstgldisplay_x11.h', @@ -669,9 +669,9 @@ if need_win_x11 != 'no' if need_platform_glx != 'no' and glx_dep.found() and cc.has_function ('glXMakeCurrent', dependencies : glx_dep) glconf.set('GST_GL_HAVE_PLATFORM_GLX', 1) - gl_priv_sources += files([ + gl_priv_sources += [ 'x11/gstglcontext_glx.c', - ]) + ] # GLX is in the opengl library on linux gl_platform_deps += glx_dep enabled_gl_platforms += 'glx' @@ -687,9 +687,9 @@ if need_win_dispmanx != 'no' error('dispmanx requires the use of egl') endif - gl_priv_sources += files([ + gl_priv_sources += [ 'dispmanx/gstglwindow_dispmanx_egl.c' - ]) + ] glconf.set('GST_GL_HAVE_WINDOW_DISPMANX', 1) gl_winsys_deps += bcm_host_dep @@ -724,18 +724,18 @@ if host_system == 'windows' and need_win_win32 != 'no' if have_wgl or have_egl_win32 gl_includes += [compat_includes] gl_platform_deps += gdi_dep - gl_priv_sources += files([ + gl_priv_sources += [ 'win32/gstglwindow_win32.c', - ]) + ] enabled_gl_winsys += 'win32' gl_winsys_deps += gdi_dep glconf.set('GST_GL_HAVE_WINDOW_WIN32', 1) endif if have_wgl - gl_priv_sources += files([ + gl_priv_sources += [ 'wgl/gstglcontext_wgl.c', - ]) + ] enabled_gl_platforms += 'wgl' glconf.set('GST_GL_HAVE_PLATFORM_WGL', 1) endif @@ -756,9 +756,9 @@ if need_win_winrt != 'no' and host_system == 'windows' if windows_graphics_h and windows_app_dep.found() and runtimeobject_lib.found() enabled_gl_winsys += 'winrt' glconf.set10('GST_GL_HAVE_WINDOW_WINRT', 1) - gl_priv_sources += files([ + gl_priv_sources += [ 'winrt/gstglwindow_winrt_egl.cpp' - ]) + ] gl_winsys_deps += runtimeobject_lib elif need_win_winrt == 'yes' error('WinRT is enabled, but headers/libraries were not found') @@ -808,12 +808,12 @@ if host_system == 'darwin' if need_win_cocoa != 'no' cocoa_dep = dependency('appleframeworks', modules : ['Cocoa'], required : false) if cocoa_dep.found() - gl_priv_sources += files([ + gl_priv_sources += [ 'cocoa/gstglcaopengllayer.m', 'cocoa/gstglcontext_cocoa.m', 'cocoa/gstgldisplay_cocoa.m', 'cocoa/gstglwindow_cocoa.m' - ]) + ] gl_winsys_deps += cocoa_dep enabled_gl_winsys += 'cocoa' glconf.set10('GST_GL_HAVE_WINDOW_COCOA', 1) @@ -855,10 +855,10 @@ if host_system == 'ios' and need_platform_eagl != 'no' and need_win_eagl != 'no' quartzcore_dep, uikit_dep, ] - gl_priv_sources += files([ + gl_priv_sources += [ 'eagl/gstglcontext_eagl.m', 'eagl/gstglwindow_eagl.m', - ]) + ] enabled_gl_winsys += 'eagl' enabled_gl_platforms += 'eagl' glconf.set('GST_GL_HAVE_WINDOW_EAGL', 1) @@ -883,11 +883,11 @@ if need_win_gbm != 'no' gbm_libdrm_dep = dependency('libdrm', version : '>= 2.4.55', required : false) gbm_dep = dependency('gbm', required : false) if egl_dep.found() and gbm_gudev_dep.found() and gbm_libdrm_dep.found() and gbm_dep.found() - gl_priv_sources += files([ + gl_priv_sources += [ 'gbm/gstgldisplay_gbm.c', 'gbm/gstgl_gbm_utils.c', 'gbm/gstglwindow_gbm_egl.c', - ]) + ] enabled_gl_winsys += 'gbm' gl_winsys_deps += [gbm_gudev_dep, gbm_libdrm_dep, gbm_dep] glconf.set('GST_GL_HAVE_WINDOW_GBM', 1) @@ -907,10 +907,10 @@ if need_platform_egl != 'no' and need_win_viv_fb != 'no' enabled_gl_winsys += 'viv-fb' glconf.set10('GST_GL_HAVE_WINDOW_VIV_FB', 1) glconf.set10('GST_GL_HAVE_VIV_DIRECTVIV', 1) - gl_priv_sources += files([ + gl_priv_sources += [ 'viv-fb/gstgldisplay_viv_fb.c', 'viv-fb/gstglwindow_viv_fb_egl.c', - ]) + ] gl_cpp_args += ['-DEGL_API_FB'] endif endif @@ -930,9 +930,9 @@ if host_system == 'android' and need_win_android != 'no' and need_platform_egl ! if gles2_dep.found() and egl_dep.found() enabled_gl_winsys += ['android'] glconf.set10('GST_GL_HAVE_WINDOW_ANDROID', 1) - gl_priv_sources += files([ + gl_priv_sources += [ 'android/gstglwindow_android_egl.c' - ]) + ] endif endif @@ -1059,13 +1059,15 @@ if build_gstgl 'gl_apis=' + ' '.join(enabled_gl_apis), ] + library_def = {'lib': pbutils} + pkg_name = 'gstreamer-gl-1.0' pkgconfig.generate(gstgl, libraries : [gstvideo, gst_base_dep, gst_dep], variables : pkgconfig_variables + pkgconfig_gl_variables, uninstalled_variables : pkgconfig_gl_variables, subdirs : pkgconfig_subdirs, extra_cflags : ['-I${libdir}/gstreamer-1.0/include'], - name : 'gstreamer-gl-1.0', + name : pkg_name, description : 'Streaming media framework, OpenGL plugins libraries', ) @@ -1082,21 +1084,25 @@ if build_gstgl ) if build_gir - gl_gir = gnome.generate_gir(gstgl, - sources : gl_sources + [gl_enumtypes_h] + [gl_enumtypes_c] + gir_gl_headers, - namespace : 'GstGL', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-gl-1.0', - includes : ['Gst-1.0', 'GstBase-1.0', 'GstVideo-1.0'], - install : true, - extra_args : gir_init_section + ['--c-include=gst/gl/gl.h'], - dependencies : [video_dep, gst_dep, gst_base_dep] - ) - gen_sources += gl_gir + gir = { + 'sources' : gl_sources + [gl_enumtypes_h] + [gl_enumtypes_c] + gir_gl_headers, + 'namespace' : 'GstGL', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0', 'GstBase-1.0', 'GstVideo-1.0'], + 'install' : true, + 'extra_args' : gir_init_section + ['--c-include=gst/gl/gl.h'], + 'dependencies' : [video_dep, gst_dep, gst_base_dep], + } + library_def += {'gir': [gir]} + if not static_build + gl_gir = gnome.generate_gir(gstgl, kwargs: gir) + gen_sources += [gl_gir] + endif endif - + libraries += [[pkg_name, library_def]] gstgl_dep = declare_dependency(link_with : gstgl, include_directories : [libsinc, compat_includes], sources: gen_sources, @@ -1107,27 +1113,34 @@ if build_gstgl if gl_x11_headers.length() > 0 install_headers(gl_x11_headers, subdir : 'gstreamer-1.0/gst/gl/x11') + pkg_name = 'gstreamer-gl-x11-1.0' pkgconfig.generate( libraries : [gstgl], requires: ['x11-xcb'], subdirs : pkgconfig_subdirs, - name : 'gstreamer-gl-x11-1.0', + name : pkg_name, description : 'Streaming media framework, OpenGL plugins libraries (X11 specifics)', ) gl_x11_gir = [] if build_gir - gl_x11_gir = gnome.generate_gir(gstgl, - sources : gl_x11_sources + gl_x11_headers, - namespace : 'GstGLX11', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-gl-x11-1.0', - includes : ['Gst-1.0', 'GstBase-1.0', 'GstVideo-1.0', gl_gir[0]], - install : true, - extra_args : gir_init_section + ['--c-include=gst/gl/x11/x11.h'], - dependencies : [video_dep, gst_dep, gst_base_dep] - ) + gir = { + 'sources' : gl_x11_sources + gl_x11_headers, + 'namespace' : 'GstGLX11', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : 'gstreamer-gl-x11-1.0', + 'includes' : ['Gst-1.0', 'GstBase-1.0', 'GstVideo-1.0'], + 'install' : true, + 'extra_args' : gir_init_section + ['--c-include=gst/gl/x11/x11.h'], + 'dependencies' : [video_dep, gst_dep, gst_base_dep] + } + gir_dict = gir + {'includes': gir['includes'] + ['GstGL-1.0']} + libraries += [[pkg_name, {'gir': gir_dict}]] + if not static_build + gir += {'includes': gir['includes'] + [gl_gir[0]]} + gl_x11_gir = gnome.generate_gir(gstgl, kwargs: gir) + endif endif gstglx11_dep = declare_dependency(dependencies : [gstgl_dep], sources : gl_x11_gir) @@ -1136,59 +1149,72 @@ if build_gstgl if gl_wayland_headers.length() > 0 install_headers(gl_wayland_headers, subdir : 'gstreamer-1.0/gst/gl/wayland') + pkg_name = 'gstreamer-gl-wayland-1.0' pkgconfig.generate( libraries : [gstgl], requires: ['wayland-egl', 'wayland-client'], subdirs : pkgconfig_subdirs, - name : 'gstreamer-gl-wayland-1.0', + name : pkg_name, description : 'Streaming media framework, OpenGL plugins libraries (Wayland specifics)', ) gl_wayland_gir = [] if build_gir - gl_wayland_gir = gnome.generate_gir(gstgl, - sources : gl_wayland_sources + gl_wayland_headers, - namespace : 'GstGLWayland', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-gl-wayland-1.0', - includes : ['Gst-1.0', 'GstBase-1.0', 'GstVideo-1.0', gl_gir[0]], - install : true, - extra_args : gir_init_section + ['--c-include=gst/gl/wayland/wayland.h'], - dependencies : [video_dep, gst_dep, gst_base_dep] - ) + gir = { + 'sources' : gl_wayland_sources + gl_wayland_headers, + 'namespace' : 'GstGLWayland', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : 'gstreamer-gl-wayland-1.0', + 'includes' : ['Gst-1.0', 'GstBase-1.0', 'GstVideo-1.0'], + 'install' : true, + 'extra_args' : gir_init_section + ['--c-include=gst/gl/wayland/wayland.h'], + 'dependencies' : [video_dep, gst_dep, gst_base_dep] + } + + gir_dict = gir + {'includes': gir['includes'] + ['GstGL-1.0']} + libraries += [[pkg_name, {'gir': gir_dict}]] + if not static_build + gir += {'includes': gir['includes'] + [gl_gir[0]]} + gl_wayland_gir = gnome.generate_gir(gstgl, kwargs: gir) + endif endif gstglwayland_dep = declare_dependency(dependencies : [gstgl_dep], sources : gl_wayland_gir) - meson.override_dependency('gstreamer-gl-wayland-1.0', gstglwayland_dep) + meson.override_dependency(pkg_name, gstglwayland_dep) endif if gl_egl_headers.length() > 0 install_headers(gl_egl_headers, subdir : 'gstreamer-1.0/gst/gl/egl') + pkg_name = 'gstreamer-gl-egl-1.0' pkgconfig.generate( libraries : [gstgl, egl_dep], subdirs : pkgconfig_subdirs, - name : 'gstreamer-gl-egl-1.0', + name : pkg_name, description : 'Streaming media framework, OpenGL plugins libraries (EGL specifics)', ) gl_egl_gir = [] if build_gir - gl_egl_gir = gnome.generate_gir(gstgl, - sources : gl_egl_sources + gl_egl_headers, - namespace : 'GstGLEGL', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-gl-egl-1.0', - includes : ['Gst-1.0', 'GstBase-1.0', 'GstVideo-1.0', gl_gir[0]], - install : true, - extra_args : gir_init_section + ['--c-include=gst/gl/egl/egl.h'], - dependencies : [video_dep, gst_dep, gst_base_dep] - ) + gir = { + 'sources' : gl_egl_sources + gl_egl_headers, + 'namespace' : 'GstGLEGL', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0', 'GstBase-1.0', 'GstVideo-1.0'], + 'install' : true, + 'extra_args' : gir_init_section + ['--c-include=gst/gl/egl/egl.h'], + 'dependencies' : [video_dep, gst_dep, gst_base_dep] + } + if not static_build + gl_egl_gir = gnome.generate_gir(gstgl, kwargs: gir) + endif + libraries += [[pkg_name, {'gir': gir}]] endif gstglegl_dep = declare_dependency(dependencies : [gstgl_dep], sources : gl_egl_gir) - meson.override_dependency('gstreamer-gl-egl-1.0', gstglegl_dep) + meson.override_dependency(pkg_name, gstglegl_dep) endif elif get_option('gl').enabled() diff --git a/subprojects/gst-plugins-base/gst-libs/gst/pbutils/meson.build b/subprojects/gst-plugins-base/gst-libs/gst/pbutils/meson.build index 9ddf71c7a3..52feb47f01 100644 --- a/subprojects/gst-plugins-base/gst-libs/gst/pbutils/meson.build +++ b/subprojects/gst-plugins-base/gst-libs/gst/pbutils/meson.build @@ -60,33 +60,42 @@ pbutils = library('gstpbutils-@0@'.format(api_version), dependencies : gstpbutils_deps, ) +library_def = {'lib': pbutils} +pkg_name = 'gstreamer-pbutils-1.0' pkgconfig.generate(pbutils, libraries : [gst_dep, video_dep, audio_dep, gst_base_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-pbutils-1.0', + name : pkg_name, description : 'General utility functions', ) pbutils_gen_sources = [gstpbutils_h, gst_pbutils_version_h] if build_gir gst_gir_extra_args = gir_init_section + [ '--c-include=gst/pbutils/pbutils.h' ] - pbutils_gir = gnome.generate_gir(pbutils, - sources : pbutils_sources + pbutils_headers + [gstpbutils_h, gst_pbutils_version_h], - namespace : 'GstPbutils', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-pbutils-1.0', - includes : ['Gst-1.0', 'GstBase-1.0', 'GstAudio-1.0', 'GstVideo-1.0'], - install : true, - extra_args : gst_gir_extra_args, - dependencies : gstpbutils_deps - ) - pbutils_gen_sources += [pbutils_gir] + gir = { + 'sources' : pbutils_sources + pbutils_headers + [gstpbutils_h, gst_pbutils_version_h], + 'namespace' : 'GstPbutils', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0', 'GstBase-1.0', 'GstAudio-1.0', 'GstVideo-1.0'], + 'install' : true, + 'extra_args' : gst_gir_extra_args, + 'dependencies' : gstpbutils_deps + } + library_def = {'lib': library_def['lib'], 'gir': [gir]} + if not static_build + pbutils_gir = gnome.generate_gir(pbutils, kwargs: gir) + pbutils_gen_sources += [pbutils_gir] + endif endif +libraries += [[pkg_name, library_def]] pbutils_dep = declare_dependency(link_with : pbutils, include_directories : [libsinc], dependencies : gstpbutils_deps, sources : pbutils_gen_sources) + +meson.override_dependency(pkg_name, pbutils_dep) \ No newline at end of file diff --git a/subprojects/gst-plugins-base/gst-libs/gst/riff/meson.build b/subprojects/gst-plugins-base/gst-libs/gst/riff/meson.build index f39a688272..a31bbd0122 100644 --- a/subprojects/gst-plugins-base/gst-libs/gst/riff/meson.build +++ b/subprojects/gst-plugins-base/gst-libs/gst/riff/meson.build @@ -25,15 +25,17 @@ gstriff = library('gstriff-@0@'.format(api_version), dependencies : riff_deps, ) +pkg_name = 'gstreamer-riff-1.0' pkgconfig.generate(gstriff, libraries : [gst_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-riff-1.0', + name : pkg_name, description : 'RIFF helper functions', ) riff_gen_sources = [] +libraries += [[pkg_name, {'lib': gstriff}]] # *** GIR DISABLED for this library *** # This library does not respect the type naming conventions required to be @@ -59,4 +61,4 @@ riff_dep = declare_dependency(link_with: gstriff, dependencies : riff_deps, sources : riff_gen_sources ) -meson.override_dependency('gstreamer-riff-1.0', riff_dep) +meson.override_dependency(pkg_name, riff_dep) diff --git a/subprojects/gst-plugins-base/gst-libs/gst/rtp/meson.build b/subprojects/gst-plugins-base/gst-libs/gst/rtp/meson.build index 8b25c00e90..35aade4a9a 100644 --- a/subprojects/gst-plugins-base/gst-libs/gst/rtp/meson.build +++ b/subprojects/gst-plugins-base/gst-libs/gst/rtp/meson.build @@ -46,37 +46,42 @@ gst_rtp = library('gstrtp-@0@'.format(api_version), dependencies : gstrtp_deps, ) +library_def = {'lib': gst_rtp} +pkg_name = 'gstreamer-rtp-1.0' pkgconfig.generate(gst_rtp, libraries : [gst_dep, gst_base_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-rtp-1.0', + name : pkg_name, description : 'RTP base classes and helper functions', ) rtp_gen_sources = [gstrtp_enum_h] if build_gir gst_gir_extra_args = gir_init_section + [ '--c-include=gst/rtp/rtp.h' ] - rtp_gir = gnome.generate_gir(gst_rtp, - sources : rtp_sources + rtp_headers + [gstrtp_enum_c] + [gstrtp_enum_h], - namespace : 'GstRtp', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-rtp-1.0', - includes : ['Gst-1.0', 'GstBase-1.0'], - install : true, - extra_args : gst_gir_extra_args, - dependencies : gstrtp_deps - ) - - rtp_gen_sources += [rtp_gir] + gir = { + 'sources' : rtp_sources + rtp_headers + [gstrtp_enum_c] + [gstrtp_enum_h], + 'namespace' : 'GstRtp', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0', 'GstBase-1.0'], + 'install' : true, + 'extra_args' : gst_gir_extra_args, + 'dependencies' : gstrtp_deps + } + library_def = {'lib': library_def['lib'], 'gir': [gir]} + if not static_build + rtp_gir = gnome.generate_gir(gst_rtp, kwargs: gir) + rtp_gen_sources += [rtp_gir] + endif endif - +libraries += [[pkg_name, library_def]] rtp_dep = declare_dependency(link_with : gst_rtp, include_directories : [libsinc], dependencies : gstrtp_deps, sources : rtp_gen_sources) -meson.override_dependency('gstreamer-rtp-1.0', rtp_dep) +meson.override_dependency(pkg_name, rtp_dep) diff --git a/subprojects/gst-plugins-base/gst-libs/gst/rtsp/meson.build b/subprojects/gst-plugins-base/gst-libs/gst/rtsp/meson.build index cd93e99267..93fb19340d 100644 --- a/subprojects/gst-plugins-base/gst-libs/gst/rtsp/meson.build +++ b/subprojects/gst-plugins-base/gst-libs/gst/rtsp/meson.build @@ -51,35 +51,42 @@ gst_rtsp = library('gstrtsp-@0@'.format(api_version), dependencies : gstrtsp_deps, ) +library_def = {'lib': gst_rtsp} +pkg_name = 'gstreamer-rtsp-1.0' pkgconfig.generate(gst_rtsp, libraries : [gst_dep, sdp_dep, gio_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-rtsp-1.0', + name : pkg_name, description : 'RTSP base classes and helper functions', ) rtsp_gen_sources = [gstrtsp_h] if build_gir gst_gir_extra_args = gir_init_section + [ '--c-include=gst/rtsp/rtsp.h' ] - rtsp_gir = gnome.generate_gir(gst_rtsp, - sources : rtsp_sources + rtsp_headers + [gstrtsp_c] + [gstrtsp_h], - namespace : 'GstRtsp', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-rtsp-1.0', - includes : ['Gst-1.0', 'GstBase-1.0', 'GstSdp-1.0', 'Gio-2.0'], - install : true, - extra_args : gst_gir_extra_args, - dependencies : gstrtsp_deps + [sdp_dep] - ) - rtsp_gen_sources += [rtsp_gir] + gir = { + 'sources' : rtsp_sources + rtsp_headers + [gstrtsp_c] + [gstrtsp_h], + 'namespace' : 'GstRtsp', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0', 'GstBase-1.0', 'GstSdp-1.0', 'Gio-2.0'], + 'install' : true, + 'extra_args' : gst_gir_extra_args, + 'dependencies' : gstrtsp_deps + [sdp_dep] + } + library_def = {'lib': library_def['lib'], 'gir': [gir]} + if not static_build + rtsp_gir = gnome.generate_gir(gst_rtsp, kwargs: gir) + rtsp_gen_sources += [rtsp_gir] + endif endif +libraries += [[pkg_name, library_def]] rtsp_dep = declare_dependency(link_with : gst_rtsp, include_directories : [libsinc], dependencies : gstrtsp_deps, sources : rtsp_gen_sources) -meson.override_dependency('gstreamer-rtsp-1.0', rtsp_dep) +meson.override_dependency(pkg_name, rtsp_dep) diff --git a/subprojects/gst-plugins-base/gst-libs/gst/sdp/meson.build b/subprojects/gst-plugins-base/gst-libs/gst/sdp/meson.build index 1aa38ec8ce..daa78627fa 100644 --- a/subprojects/gst-plugins-base/gst-libs/gst/sdp/meson.build +++ b/subprojects/gst-plugins-base/gst-libs/gst/sdp/meson.build @@ -20,36 +20,43 @@ gstsdp = library('gstsdp-@0@'.format(api_version), dependencies : sdp_deps, ) +library_def = {'lib': gstsdp} +pkg_name = 'gstreamer-sdp-1.0' +sdp_gen_sources = [] pkgconfig.generate(gstsdp, libraries : [glib_deps], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-sdp-1.0', + name : pkg_name, description : 'SDP helper functions', ) -sdp_gen_sources = [] if build_gir gst_gir_extra_args = gir_init_section + [ '--c-include=gst/sdp/sdp.h' ] - sdp_gir = gnome.generate_gir(gstsdp, - sources : gst_sdp_sources + gst_sdp_headers, - namespace : 'GstSdp', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-sdp-1.0', - includes : ['Gst-1.0'], - install : true, - extra_args : gst_gir_extra_args, - dependencies : sdp_deps - ) + gir = { + 'sources' : gst_sdp_sources + gst_sdp_headers, + 'namespace' : 'GstSdp', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0'], + 'install' : true, + 'extra_args' : gst_gir_extra_args, + 'dependencies' : sdp_deps + } - sdp_gen_sources += [sdp_gir] + library_def = {'lib': library_def['lib'], 'gir': [gir]} + if not static_build + sdp_gir = gnome.generate_gir(gstsdp, kwargs: gir) + sdp_gen_sources += [sdp_gir] + endif endif +libraries += [[pkg_name, library_def]] sdp_dep = declare_dependency(link_with: gstsdp, include_directories : [libsinc], dependencies : sdp_deps, sources: sdp_gen_sources) -meson.override_dependency('gstreamer-sdp-1.0', sdp_dep) +meson.override_dependency(pkg_name, sdp_dep) diff --git a/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build b/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build index 1d791c7b46..bba8b5d705 100644 --- a/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build +++ b/subprojects/gst-plugins-base/gst-libs/gst/tag/meson.build @@ -91,37 +91,44 @@ gsttag = library('gsttag-@0@'.format(api_version), dependencies : tag_deps, ) +library_def = {'lib': gsttag} +pkg_name = 'gstreamer-tag-1.0' pkgconfig.generate(gsttag, libraries : [gst_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-tag-1.0', + name : pkg_name, description : 'Tag base classes and helper functions', ) if build_gir gst_gir_extra_args = gir_init_section + [ '--c-include=gst/tag/tag.h' ] - tag_gir = gnome.generate_gir(gsttag, - sources : tag_sources + tag_headers + [gsttag_h] + [gsttag_c], - namespace : 'GstTag', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-tag-1.0', - includes : ['Gst-1.0', 'GstBase-1.0'], - install : true, - extra_args : gst_gir_extra_args, - dependencies : tag_deps - ) - tag_gen_sources += [tag_gir] + gir = { + 'sources' : tag_sources + tag_headers + [gsttag_h] + [gsttag_c], + 'namespace' : 'GstTag', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0', 'GstBase-1.0'], + 'install' : true, + 'extra_args' : gst_gir_extra_args, + 'dependencies' : tag_deps, + } + library_def = {'lib': library_def['lib'], 'gir': [gir]} + if not static_build + tag_gir = gnome.generate_gir(gsttag, kwargs: gir) + tag_gen_sources += [tag_gir] + endif endif +libraries += [[pkg_name, library_def]] tag_dep = declare_dependency(link_with: gsttag, include_directories : [libsinc], dependencies : tag_deps, sources: tag_gen_sources) -meson.override_dependency('gstreamer-tag-1.0', tag_dep) +meson.override_dependency(pkg_name, tag_dep) # Little program that reads iso_639.xml and outputs tables for us as fallback # for when iso-codes are not available (and so we don't have to read the xml diff --git a/subprojects/gst-plugins-base/gst-libs/gst/video/meson.build b/subprojects/gst-plugins-base/gst-libs/gst/video/meson.build index e8bb3bee2f..036fe47ab5 100644 --- a/subprojects/gst-plugins-base/gst-libs/gst/video/meson.build +++ b/subprojects/gst-plugins-base/gst-libs/gst/video/meson.build @@ -142,34 +142,41 @@ gstvideo = library('gstvideo-@0@'.format(api_version), dependencies : gstvideo_deps, ) +library_def = {'lib': gstvideo} +pkg_name = 'gstreamer-video-1.0' pkgconfig.generate(gstvideo, libraries : [gst_dep, gst_base_dep], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-video-1.0', + name : pkg_name, description : 'Video base classes and helper functions', ) if build_gir gst_gir_extra_args = gir_init_section + [ '--c-include=gst/video/video.h' ] - video_gir = gnome.generate_gir(gstvideo, - sources : video_sources + video_headers + [gstvideo_c] + [gstvideo_h], - namespace : 'GstVideo', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-video-1.0', - includes : ['Gst-1.0', 'GstBase-1.0'], - install : true, - extra_args : gst_gir_extra_args, - dependencies : gstvideo_deps - ) - video_gen_sources += [video_gir] + gir = { + 'sources' : video_sources + video_headers + [gstvideo_c] + [gstvideo_h], + 'namespace' : 'GstVideo', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'includes' : ['Gst-1.0','GstBase-1.0'], + 'install' : true, + 'extra_args' : gst_gir_extra_args, + 'dependencies' : gstvideo_deps + } + library_def += {'gir': [gir]} + if not static_build + video_gir = gnome.generate_gir(gstvideo, kwargs: gir) + video_gen_sources += [video_gir] + endif endif +libraries += [[pkg_name, library_def]] video_dep = declare_dependency(link_with : gstvideo, include_directories : [libsinc], dependencies : gstvideo_deps, sources : video_gen_sources) -meson.override_dependency('gstreamer-video-1.0', video_dep) +meson.override_dependency(pkg_name, video_dep) diff --git a/subprojects/gst-plugins-base/meson.build b/subprojects/gst-plugins-base/meson.build index d53b97c90c..c84d0ff174 100644 --- a/subprojects/gst-plugins-base/meson.build +++ b/subprojects/gst-plugins-base/meson.build @@ -41,7 +41,7 @@ osxversion = curversion + 1 plugins_install_dir = join_paths(get_option('libdir'), 'gstreamer-1.0') static_build = get_option('default_library') == 'static' plugins = [] -libraries = {} +libraries = [] cc = meson.get_compiler('c') diff --git a/subprojects/gst-rtsp-server/docs/meson.build b/subprojects/gst-rtsp-server/docs/meson.build index a9953d854c..8060b74958 100644 --- a/subprojects/gst-rtsp-server/docs/meson.build +++ b/subprojects/gst-rtsp-server/docs/meson.build @@ -61,6 +61,15 @@ foreach extension: required_hotdoc_extensions endif endforeach +if static_build + if get_option('doc').enabled() + error('Documentation enabled but not supported when building statically.') + endif + + message('Building statically, can\'t build the documentation') + subdir_done() +endif + if not build_gir if get_option('doc').enabled() error('Documentation enabled but introspection not built.') diff --git a/subprojects/gst-rtsp-server/gst/rtsp-server/meson.build b/subprojects/gst-rtsp-server/gst/rtsp-server/meson.build index ebb90780a0..daa9c184e8 100644 --- a/subprojects/gst-rtsp-server/gst/rtsp-server/meson.build +++ b/subprojects/gst-rtsp-server/gst/rtsp-server/meson.build @@ -66,6 +66,8 @@ gst_rtsp_server = library('gstrtspserver-@0@'.format(api_version), install : true, dependencies : gst_rtsp_server_deps) +library_def = {'lib': gst_rtsp_server} +pkg_name = 'gstreamer-rtsp-server-' + api_version pkgconfig.generate(gst_rtsp_server, libraries : [gst_dep], subdirs : pkgconfig_subdirs, @@ -76,24 +78,31 @@ pkgconfig.generate(gst_rtsp_server, rtsp_server_gen_sources = [] if build_gir gst_gir_extra_args = gir_init_section + ['--c-include=gst/rtsp-server/rtsp-server.h'] - rtsp_server_gir = gnome.generate_gir(gst_rtsp_server, - sources : rtsp_server_headers + rtsp_server_sources, - namespace : 'GstRtspServer', - nsversion : api_version, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-rtsp-server-' + api_version, - install : true, - extra_args : gst_gir_extra_args, - includes : ['Gst-1.0', 'GstRtsp-1.0', 'GstNet-1.0'], - dependencies : gst_rtsp_server_deps, - ) - rtsp_server_gen_sources += [rtsp_server_gir] + gir = { + 'sources' : rtsp_server_headers + rtsp_server_sources, + 'namespace' : 'GstRtspServer', + 'nsversion' : api_version, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'install' : true, + 'extra_args' : gst_gir_extra_args, + 'includes' : ['Gst-1.0', 'GstRtsp-1.0', 'GstNet-1.0'], + 'dependencies' : gst_rtsp_server_deps, + } + # FIXME: Expose gir for use in gstreamer-full + # Disabled for now as we get `undefined reference` to many symbols + # library_def = {'gir': [gir]} + if not static_build + rtsp_server_gir = gnome.generate_gir(gst_rtsp_server, kwargs: gir) + rtsp_server_gen_sources += [rtsp_server_gir] + endif endif +libraries += [[pkg_name, library_def]] gst_rtsp_server_dep = declare_dependency(link_with : gst_rtsp_server, include_directories : rtspserver_incs, sources : rtsp_server_gen_sources, dependencies : [gstrtsp_dep, gstrtp_dep, gstsdp_dep, gstnet_dep, gstapp_dep]) -meson.override_dependency('gstreamer-rtsp-server-1.0', gst_rtsp_server_dep) +meson.override_dependency(pkg_name, gst_rtsp_server_dep) diff --git a/subprojects/gst-rtsp-server/meson.build b/subprojects/gst-rtsp-server/meson.build index da4a177ab8..c9042e8506 100644 --- a/subprojects/gst-rtsp-server/meson.build +++ b/subprojects/gst-rtsp-server/meson.build @@ -187,6 +187,8 @@ endif plugins = [] pkgconfig_subdirs = ['gstreamer-1.0'] +static_build = get_option('default_library') == 'static' +libraries = [] subdir('gst') if not get_option('tests').disabled() diff --git a/subprojects/gstreamer/docs/meson.build b/subprojects/gstreamer/docs/meson.build index e1aecb5996..148c6e08ba 100644 --- a/subprojects/gstreamer/docs/meson.build +++ b/subprojects/gstreamer/docs/meson.build @@ -65,6 +65,14 @@ foreach extension: required_hotdoc_extensions endif endforeach +if static_build + if get_option('doc').enabled() + error('Documentation enabled but not supported when building statically.') + endif + + message('Building statically, can\'t build the documentation') + subdir_done() +endif if not build_gir if get_option('doc').enabled() diff --git a/subprojects/gstreamer/gst/meson.build b/subprojects/gstreamer/gst/meson.build index 6937e08166..220ed4324e 100644 --- a/subprojects/gstreamer/gst/meson.build +++ b/subprojects/gstreamer/gst/meson.build @@ -1,4 +1,4 @@ -gst_sources = files([ +gst_sources = files( 'gst.c', 'gstobject.c', 'gstallocator.c', @@ -71,9 +71,9 @@ gst_sources = files([ 'gstutils.c', 'gstvalue.c', 'gstparse.c', -]) +) -gst_headers = files([ +gst_headers = files( 'gst.h', 'glib-compat.h', 'gstobject.h', @@ -147,12 +147,12 @@ gst_headers = files([ 'gstregistry.h', 'gstparse.h', 'math-compat.h', -]) +) install_headers(gst_headers, subdir : 'gstreamer-1.0/gst') gst_registry = get_option('registry') if gst_registry - gst_registry_sources = files(['gstregistrybinary.c']) + gst_registry_sources = files('gstregistrybinary.c') else gst_registry_sources = [] endif @@ -250,12 +250,14 @@ libgst = library('gstreamer-1.0', gst_sources, + platform_deps, ) +pkg_name = 'gstreamer-1.0' +library_def = {'lib': libgst} pkgconfig.generate(libgst, libraries : [glib_dep, gobject_dep], variables : pkgconfig_variables, uninstalled_variables: pkgconfig_uninstalled_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-1.0', + name : pkg_name, description : 'Streaming media framework', ) @@ -272,19 +274,29 @@ if build_gir endif gst_incdirs += [configinc] - gst_gir = gnome.generate_gir(libgst, - sources : gst_sources + gst_headers + gst_enums + [gst_version_h], - namespace : 'Gst', - nsversion : apiversion, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-1.0', - includes : ['GLib-2.0', 'GObject-2.0', 'GModule-2.0' ], - install : true, - extra_args : gst_gir_extra_args, - ) - gst_gen_sources += gst_gir + gir = { + 'sources' : gst_sources + gst_headers + gst_enums + [gst_version_h], + 'namespace' : 'Gst', + 'nsversion' : apiversion, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'includes' : ['GLib-2.0', 'GObject-2.0', 'GModule-2.0' ], + 'install' : true, + 'extra_args' : gst_gir_extra_args, + } + library_def += {'gir': [gir]} + # When building statically the information about the gir is going to be + # consumed by `gst-build` to generate gir files linked against + # `libgstreamer-full-1.0.so`. We do not build it here as it is currently + # broken. Once that is fixed we could build it here, even though we would keep + # creating another gir which links against gst-full. + if not static_build + gst_gir = gnome.generate_gir(libgst, kwargs: gir) + gst_gen_sources += gst_gir + endif endif +libraries += [[pkg_name, library_def]] gst_compile_args = [] if get_option('default_library') == 'static' @@ -299,4 +311,4 @@ gst_dep = declare_dependency(link_with : libgst, sources : gst_gen_sources, ) -meson.override_dependency('gstreamer-1.0', gst_dep) +meson.override_dependency(pkg_name, gst_dep) diff --git a/subprojects/gstreamer/libs/gst/base/meson.build b/subprojects/gstreamer/libs/gst/base/meson.build index 9653c2c273..a354635751 100644 --- a/subprojects/gstreamer/libs/gst/base/meson.build +++ b/subprojects/gstreamer/libs/gst/base/meson.build @@ -1,4 +1,4 @@ -gst_base_sources = files([ +gst_base_sources = files( 'gstadapter.c', 'gstaggregator.c', 'gstbaseparse.c', @@ -15,9 +15,9 @@ gst_base_sources = files([ 'gstpushsrc.c', 'gstqueuearray.c', 'gsttypefindhelper.c', -]) +) -gst_base_headers = files([ +gst_base_headers = files( 'base.h', 'base-prelude.h', 'gstadapter.h', @@ -36,7 +36,7 @@ gst_base_headers = files([ 'gstpushsrc.h', 'gstqueuearray.h', 'gsttypefindhelper.h', -]) +) gst_base = library('gstbase-@0@'.format(apiversion), gst_base_sources, @@ -49,39 +49,47 @@ gst_base = library('gstbase-@0@'.format(apiversion), dependencies : [gobject_dep, glib_dep, gst_dep], ) +library_def = {'lib': gst_base} +pkg_name = 'gstreamer-base-1.0' +gst_base_gen_sources = [] pkgconfig.generate(gst_base, libraries : [libgst], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-base-1.0', + name : pkg_name, description : 'Base classes for GStreamer elements', ) if build_gir gst_gir_extra_args = gir_init_section + [ '--c-include=gst/base/base.h' ] - gst_base_gir = gnome.generate_gir(gst_base, - sources : gst_base_sources + gst_base_headers, - namespace : 'GstBase', - nsversion : apiversion, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-base-1.0', - dependencies : [gst_dep], - include_directories : [configinc, libsinc, privinc], - includes : ['GLib-2.0', 'GObject-2.0', 'GModule-2.0', 'Gst-1.0'], - install : true, - extra_args : gst_gir_extra_args, - ) + gir = { + 'sources' : gst_base_sources + gst_base_headers, + 'namespace' : 'GstBase', + 'nsversion' : apiversion, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'dependencies' : [gst_dep], + 'include_directories' : [configinc, libsinc, privinc], + 'includes' : ['GLib-2.0', 'GObject-2.0', 'GModule-2.0', 'Gst-1.0'], + 'install' : true, + 'extra_args' : gst_gir_extra_args, + } - gst_base_gen_sources += [gst_base_gir] + library_def += {'gir': [gir]} + if not static_build + gst_base_gir = gnome.generate_gir(gst_base, kwargs: gir) + gst_base_gen_sources += [gst_base_gir] + endif endif +libraries += [[pkg_name, library_def]] gst_base_dep = declare_dependency(link_with : gst_base, include_directories : [libsinc], dependencies : [gst_dep], sources : gst_base_gen_sources) -meson.override_dependency('gstreamer-base-1.0', gst_base_dep) +meson.override_dependency(pkg_name, gst_base_dep) install_headers('base.h', 'base-prelude.h', diff --git a/subprojects/gstreamer/libs/gst/check/libcheck/meson.build b/subprojects/gstreamer/libs/gst/check/libcheck/meson.build index cc1d77d9ac..253d81878e 100644 --- a/subprojects/gstreamer/libs/gst/check/libcheck/meson.build +++ b/subprojects/gstreamer/libs/gst/check/libcheck/meson.build @@ -1,4 +1,4 @@ -libcheck_files = files([ +libcheck_files = files( 'check.c', 'check_error.c', 'check_list.c', @@ -9,7 +9,7 @@ libcheck_files = files([ 'check_run.c', 'check_str.c', 'libcompat/libcompat.c' -]) +) if not cdata.has('HAVE_ALARM') libcheck_files += ['libcompat/alarm.c'] @@ -41,11 +41,11 @@ endif # FIXME: check that timer_create, timer_settime, timer_delete are in rt_lib if not rt_lib.found() - libcheck_files += files([ + libcheck_files += files( 'libcompat/timer_create.c', 'libcompat/timer_settime.c', 'libcompat/timer_delete.c' - ]) + ) endif configure_file(input : 'check.h.in', diff --git a/subprojects/gstreamer/libs/gst/check/meson.build b/subprojects/gstreamer/libs/gst/check/meson.build index 7fd7179c6f..0984a0835e 100644 --- a/subprojects/gstreamer/libs/gst/check/meson.build +++ b/subprojects/gstreamer/libs/gst/check/meson.build @@ -1,11 +1,11 @@ -gst_check_sources = files([ +gst_check_sources = files( 'gstbufferstraw.c', 'gstcheck.c', 'gstconsistencychecker.c', 'gstharness.c', 'gsttestclock.c', -]) -gst_check_headers = files([ +) +gst_check_headers = files( 'check.h', 'check-prelude.h', 'gstbufferstraw.h', @@ -13,7 +13,7 @@ gst_check_headers = files([ 'gstconsistencychecker.h', 'gstharness.h', 'gsttestclock.h', -]) +) install_headers(gst_check_headers, subdir : 'gstreamer-1.0/gst/check/') @@ -48,6 +48,8 @@ gst_check = library('gstcheck-@0@'.format(apiversion), dependencies : [gobject_dep, glib_dep, gst_dep], ) +library_def = {'lib': gst_check} +pkg_name = 'gstreamer-check-1.0' pkgconfig.generate(gst_check, libraries : [libgst], # FIXME: Add manually libcheck's dependencies because it's an uninstalled static @@ -56,33 +58,37 @@ pkgconfig.generate(gst_check, libraries_private: [rt_lib, mathlib], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-check-1.0', + name : pkg_name, description : 'Unit testing helper library for GStreamer modules', ) gst_check_gen_sources = [] - if build_gir gst_gir_extra_args = gir_init_section + [ '--c-include=gst/check/check.h' ] - gst_check_gir = gnome.generate_gir(gst_check, - sources : gst_check_sources + gst_check_headers, - namespace : 'GstCheck', - nsversion : apiversion, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-check-1.0', - dependencies : [gst_dep], - include_directories : [configinc, libsinc, privinc], - includes : ['GLib-2.0', 'GObject-2.0', 'GModule-2.0', 'Gst-1.0'], - install : true, - extra_args : gst_gir_extra_args, - ) - gst_check_gen_sources += gst_check_gir + gir = { + 'sources' : gst_check_sources + gst_check_headers, + 'namespace' : 'GstCheck', + 'nsversion' : apiversion, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'dependencies' : [gst_dep], + 'include_directories' : [configinc, libsinc, privinc], + 'includes' : ['GLib-2.0', 'GObject-2.0', 'GModule-2.0', 'Gst-1.0'], + 'install' : true, + 'extra_args' : gst_gir_extra_args, + } + library_def += {'gir': [gir]} + if not static_build + gst_check_gir = gnome.generate_gir(gst_check, kwargs: gir) + gst_check_gen_sources += gst_check_gir + endif endif +libraries += [[pkg_name, library_def]] gst_check_dep = declare_dependency(link_with : gst_check, include_directories : [libsinc], dependencies : [gst_dep], sources : gst_check_gen_sources) -meson.override_dependency('gstreamer-check-1.0', gst_check_dep) +meson.override_dependency(pkg_name, gst_check_dep) diff --git a/subprojects/gstreamer/libs/gst/controller/meson.build b/subprojects/gstreamer/libs/gst/controller/meson.build index 841da756f4..24c8792181 100644 --- a/subprojects/gstreamer/libs/gst/controller/meson.build +++ b/subprojects/gstreamer/libs/gst/controller/meson.build @@ -1,4 +1,4 @@ -gst_controller_sources = files([ +gst_controller_sources = files( 'gstargbcontrolbinding.c', 'gstdirectcontrolbinding.c', 'gsttimedvaluecontrolsource.c', @@ -6,14 +6,14 @@ gst_controller_sources = files([ 'gstproxycontrolbinding.c', 'gsttriggercontrolsource.c', 'gstlfocontrolsource.c', -]) +) -controller_mkenum_headers = files([ +controller_mkenum_headers = files( 'gstinterpolationcontrolsource.h', 'gstlfocontrolsource.h', -]) +) -gst_controller_headers = controller_mkenum_headers + files([ +gst_controller_headers = controller_mkenum_headers + files( 'gstargbcontrolbinding.h', 'gstdirectcontrolbinding.h', 'gsttimedvaluecontrolsource.h', @@ -23,7 +23,7 @@ gst_controller_headers = controller_mkenum_headers + files([ 'gstlfocontrolsource.h', 'controller-prelude.h', 'controller.h', -]) +) install_headers(gst_controller_headers, subdir : 'gstreamer-1.0/gst/controller/') controller_enums = gnome.mkenums_simple('controller-enumtypes', @@ -48,35 +48,42 @@ gst_controller = library('gstcontroller-@0@'.format(apiversion), dependencies : [gobject_dep, glib_dep, mathlib, gst_dep], ) +library_def = {'lib': gst_controller} +pkg_name = 'gstreamer-controller-1.0' pkgconfig.generate(gst_controller, libraries : [libgst], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-controller-1.0', + name : pkg_name, description : 'Dynamic parameter control for GStreamer elements', ) if build_gir gst_gir_extra_args = gir_init_section + [ '--c-include=gst/controller/controller.h' ] - gst_controller_gir = gnome.generate_gir(gst_controller, - sources : gst_controller_sources + gst_controller_headers + [gstcontroller_h] + [gstcontroller_c], - namespace : 'GstController', - nsversion : apiversion, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-controller-1.0', - dependencies : [gst_dep], - include_directories : [configinc, libsinc, privinc], - includes : ['GLib-2.0', 'GObject-2.0', 'GModule-2.0', 'Gst-1.0'], - install : true, - extra_args : gst_gir_extra_args, - ) - gst_controller_gen_sources += [gst_controller_gir] + gir = { + 'sources' : gst_controller_sources + gst_controller_headers + [gstcontroller_h] + [gstcontroller_c], + 'namespace': 'GstController', + 'nsversion': apiversion, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'dependencies' : [gst_dep], + 'include_directories' : [configinc, libsinc, privinc], + 'includes' : ['GLib-2.0', 'GObject-2.0', 'GModule-2.0', 'Gst-1.0'], + 'install' : true, + 'extra_args' : gst_gir_extra_args, + } + library_def += {'gir': [gir]} + if not static_build + gst_controller_gir = gnome.generate_gir(gst_controller, kwargs: gir) + gst_controller_gen_sources += [gst_controller_gir] + endif endif +libraries += [[pkg_name, library_def]] gst_controller_dep = declare_dependency(link_with : gst_controller, include_directories : [libsinc], sources: gst_controller_gen_sources, dependencies : [gst_dep]) -meson.override_dependency('gstreamer-controller-1.0', gst_controller_dep) +meson.override_dependency(pkg_name, gst_controller_dep) diff --git a/subprojects/gstreamer/libs/gst/net/meson.build b/subprojects/gstreamer/libs/gst/net/meson.build index 96f77f1339..343df532dc 100644 --- a/subprojects/gstreamer/libs/gst/net/meson.build +++ b/subprojects/gstreamer/libs/gst/net/meson.build @@ -1,4 +1,4 @@ -gst_net_sources = files([ +gst_net_sources = files( 'gstnetaddressmeta.c', 'gstnetclientclock.c', 'gstnetcontrolmessagemeta.c', @@ -7,9 +7,9 @@ gst_net_sources = files([ 'gstptpclock.c', 'gstntppacket.c', 'gstnetutils.c', -]) +) -gst_net_headers = files([ +gst_net_headers = files( 'gstnet.h', 'gstnetaddressmeta.h', 'gstnetclientclock.h', @@ -20,7 +20,7 @@ gst_net_headers = files([ 'gstptpclock.h', 'net-prelude.h', 'net.h', -]) +) install_headers(gst_net_headers, subdir : 'gstreamer-1.0/gst/net/') gst_net_gen_sources = [] @@ -35,35 +35,42 @@ gst_net = library('gstnet-@0@'.format(apiversion), dependencies : [gio_dep, gst_base_dep], ) +library_def = {'lib': gst_net} +pkg_name = 'gstreamer-net-1.0' pkgconfig.generate(gst_net, libraries : [libgst], variables : pkgconfig_variables, subdirs : pkgconfig_subdirs, - name : 'gstreamer-net-1.0', + name : pkg_name, description : 'Network-enabled GStreamer plug-ins and clocking', ) if build_gir gst_gir_extra_args = gir_init_section + [ '--c-include=gst/net/net.h' ] - gst_net_gir = gnome.generate_gir(gst_net, - sources : gst_net_sources + gst_net_headers, - namespace : 'GstNet', - nsversion : apiversion, - identifier_prefix : 'Gst', - symbol_prefix : 'gst', - export_packages : 'gstreamer-net-1.0', - dependencies : [gst_base_dep], - include_directories : [configinc, libsinc], - includes : ['GLib-2.0', 'GObject-2.0', 'GModule-2.0', 'Gio-2.0', 'Gst-1.0'], - install : true, - extra_args : gst_gir_extra_args, - ) - gst_net_gen_sources += [gst_net_gir] + gir = { + 'sources' : gst_net_sources + gst_net_headers, + 'namespace' : 'GstNet', + 'nsversion' : apiversion, + 'identifier_prefix' : 'Gst', + 'symbol_prefix' : 'gst', + 'export_packages' : pkg_name, + 'dependencies' : [gst_base_dep], + 'include_directories' : [configinc, libsinc], + 'includes' : ['GLib-2.0', 'GObject-2.0', 'GModule-2.0', 'Gio-2.0', 'Gst-1.0'], + 'install' : true, + 'extra_args' : gst_gir_extra_args, + } + library_def += {'gir': [gir]} + if not static_build + gst_net_gir = gnome.generate_gir(gst_net, kwargs: gir) + gst_net_gen_sources += [gst_net_gir] + endif endif +libraries += [[pkg_name, library_def]] gst_net_dep = declare_dependency(link_with : gst_net, include_directories : [libsinc], sources: gst_net_gen_sources, dependencies : [gst_base_dep]) -meson.override_dependency('gstreamer-net-1.0', gst_net_dep) +meson.override_dependency(pkg_name, gst_net_dep) diff --git a/subprojects/gstreamer/meson.build b/subprojects/gstreamer/meson.build index 7612c6e750..3c5eae23f1 100644 --- a/subprojects/gstreamer/meson.build +++ b/subprojects/gstreamer/meson.build @@ -585,6 +585,8 @@ pkgconfig_uninstalled_variables = ['exec_prefix=${prefix}', 'helpersdir=${gstreamerdir}/libs/gst/helpers'] pkgconfig_subdirs = ['gstreamer-1.0'] +static_build = get_option('default_library') == 'static' +libraries = [] subdir('gst') subdir('libs') subdir('plugins')