diff --git a/meson.build b/meson.build index 03e5a74643..ae5878ae4f 100644 --- a/meson.build +++ b/meson.build @@ -1,6 +1,6 @@ project('gstreamer-full', 'c', version : '1.23.0.1', - meson_version : '>= 0.63.0', + meson_version : '>= 1.1', default_options : ['buildtype=debugoptimized', # Needed due to https://github.com/mesonbuild/meson/issues/1889, # but this can cause problems in the future. Remove it diff --git a/meson_options.txt b/meson_options.txt index 8b3c316abd..274274f6a5 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -57,6 +57,7 @@ option('doc', type : 'feature', value : 'disabled', description : 'Generate API option('gtk_doc', type : 'feature', value : 'disabled', description : 'Generate API documentation with gtk-doc') option('qt5', type : 'feature', value : 'auto', description : 'Qt5 toolkit support') option('qt6', type : 'feature', value : 'auto', description : 'Qt6 toolkit support') +option('webrtc', type : 'feature', value : 'auto', description : 'WebRTC support') option('package-origin', type : 'string', value : 'Unknown package origin', yield : true, description : 'package origin URL to use in plugins') diff --git a/subprojects/gst-plugins-bad/ext/dtls/meson.build b/subprojects/gst-plugins-bad/ext/dtls/meson.build index afdd8d224b..ca07da01e4 100644 --- a/subprojects/gst-plugins-bad/ext/dtls/meson.build +++ b/subprojects/gst-plugins-bad/ext/dtls/meson.build @@ -12,8 +12,9 @@ dtls_sources = [ 'gstdtlselement.c', ] -openssl_dep = dependency('openssl', version : '>= 1.0.1', required : get_option('dtls')) -libcrypto_dep = dependency('libcrypto', required : get_option('dtls')) +dtls_option = get_option('dtls').enable_if(get_option('webrtc').enabled(), error_message: 'webrtc option is enabled') +openssl_dep = dependency('openssl', version: '>= 1.0.1', required: dtls_option) +libcrypto_dep = dependency('libcrypto', required: dtls_option) if openssl_dep.found() and libcrypto_dep.found() gstdtls = library('gstdtls', diff --git a/subprojects/gst-plugins-bad/ext/sctp/meson.build b/subprojects/gst-plugins-bad/ext/sctp/meson.build index 6b3d7f249d..2b4f88a86d 100644 --- a/subprojects/gst-plugins-bad/ext/sctp/meson.build +++ b/subprojects/gst-plugins-bad/ext/sctp/meson.build @@ -5,7 +5,8 @@ sctp_sources = [ 'sctpassociation.c' ] -if get_option('sctp').disabled() +sctp_option = get_option('sctp').enable_if(get_option('webrtc').enabled(), error_message: 'webrtc option is enabled') +if sctp_option.disabled() subdir_done() endif @@ -23,7 +24,7 @@ if not get_option('sctp-internal-usrsctp').enabled() found_system_usrsctp = sctp_dep.found() and sctp_header if get_option('sctp-internal-usrsctp').disabled() and not found_system_usrsctp - if get_option('sctp').enabled() + if sctp_option.enabled() error('sctp plugin enabled but could not find libusrsctp or usrsctp.h, and internal libusrsctp disabled') else message('Could not find libusrsctp or usrsctp.h, and internal libusrsctp disabled - not building sctp plugin') @@ -37,7 +38,7 @@ if not found_system_usrsctp subdir('usrsctp') sctp_dep = usrsctp_dep sctp_header = true - if get_option('sctp').enabled() and not sctp_dep.found() + if sctp_option.enabled() and not sctp_dep.found() error('sctp plugin enabled but could not find system libusrsctp or configure internal libusrsctp') endif endif diff --git a/subprojects/gst-plugins-bad/ext/srtp/meson.build b/subprojects/gst-plugins-bad/ext/srtp/meson.build index 908ead9661..d15d58c132 100644 --- a/subprojects/gst-plugins-bad/ext/srtp/meson.build +++ b/subprojects/gst-plugins-bad/ext/srtp/meson.build @@ -7,7 +7,8 @@ srtp_sources = [ ] srtp_cargs = [] -if get_option('srtp').disabled() +srtp_option = get_option('srtp').enable_if(get_option('webrtc').enabled(), error_message: 'webrtc option is enabled') +if srtp_option.disabled() srtp_dep = dependency('', required : false) subdir_done() endif @@ -21,7 +22,7 @@ else srtp_dep = cc.find_library('srtp', required : false) endif endif -if not srtp_dep.found() and get_option('srtp').enabled() +if not srtp_dep.found() and srtp_option.enabled() error('srtp plugin enabled but libsrtp not found') endif diff --git a/subprojects/gst-plugins-bad/meson.build b/subprojects/gst-plugins-bad/meson.build index 9852206ec4..d2833182c2 100644 --- a/subprojects/gst-plugins-bad/meson.build +++ b/subprojects/gst-plugins-bad/meson.build @@ -1,6 +1,6 @@ project('gst-plugins-bad', 'c', 'cpp', version : '1.23.0.1', - meson_version : '>= 0.62', + meson_version : '>= 1.1', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ]) diff --git a/subprojects/gst-plugins-bad/meson_options.txt b/subprojects/gst-plugins-bad/meson_options.txt index 05f5115bc7..a799b6b388 100644 --- a/subprojects/gst-plugins-bad/meson_options.txt +++ b/subprojects/gst-plugins-bad/meson_options.txt @@ -180,7 +180,7 @@ option('vulkan', type : 'feature', value : 'auto', description : 'Vulkan video s option('wasapi', type : 'feature', value : 'auto', description : 'Windows Audio Session API source/sink plugin') option('wasapi2', type : 'feature', value : 'auto', description : 'Windows Audio Session API source/sink plugin with WinRT API') option('webp', type : 'feature', value : 'auto', description : 'WebP image codec plugin') -option('webrtc', type : 'feature', value : 'auto', description : 'WebRTC audio/video network bin plugin') +option('webrtc', type : 'feature', value : 'auto', yield: true, description : 'WebRTC audio/video network bin plugin') option('webrtcdsp', type : 'feature', value : 'auto', description : 'Plugin with various audio filters provided by the WebRTC audio processing library') option('wildmidi', type : 'feature', value : 'auto', description : 'WildMidi midi soft synth plugin') option('wic', type : 'feature', value : 'auto', description : 'Windows Imaging Component plugin')