diff --git a/meson.build b/meson.build index 47567e6e4b..5922429121 100644 --- a/meson.build +++ b/meson.build @@ -119,7 +119,19 @@ elif build_system == 'darwin' subproject('macos-bison-binary') endif -orc_subproject = subproject('orc', required: get_option('orc')) +orc_option = get_option('orc') +# There is a check below to keep this in sync with subprojects/gst-plugins-base/meson.build +orc_req = '>= 0.4.24' +orc_source_option = get_option('orc-source') +orc_subproject = disabler() +if orc_option.allowed() + if orc_source_option == 'subproject' + orc_subproject = subproject('orc', required: orc_option) + else + dependency('orc-0.4', version: orc_req, required: orc_option, + allow_fallback: orc_source_option == 'auto') + endif +endif foreach custom_subproj: get_option('custom_subprojects').split(',') if custom_subproj != '' @@ -157,6 +169,14 @@ foreach sp : subprojects subproj = subproject(project_name, required: is_required, default_options: default_options) endif + if project_name == 'gst-plugins-base' + gst_base_orc_req = subproj.get_variable('orc_req', '') + if gst_base_orc_req != orc_req + error('orc_req is "@0@" but it should be "@1@" from subprojects/gst-plugins-base/meson.build' + .format(orc_req, gst_base_orc_req)) + endif + endif + if subproj.found() plugins = subproj.get_variable('gst_plugins', []) legacy_plugins = subproj.get_variable('plugins', []) diff --git a/meson_options.txt b/meson_options.txt index 1896d25450..49c20a0705 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -38,6 +38,7 @@ option('gst-full-device-providers', type : 'string', value : '', description : '''List of device providers to expose in gstreamer-full's ABI with the syntax plugin1:dp1;plugin2:dp1:dp2. By default '' will export all device provider of the enabled plugin.''') option('gst-full-dynamic-types', type : 'string', value : '', description : '''List of dynamic types to expose in gstreamer-full's ABI with the syntax plugin:dt1,dt2. By default '' will export all device provider of the enabled plugin.''') +option('orc-source', type: 'combo', choices: ['system', 'subproject', 'auto'], value: 'subproject') # License-related feature options option('gpl', type: 'feature', value: 'disabled', diff --git a/subprojects/orc.wrap b/subprojects/orc.wrap index c7170e54ab..036c82b108 100644 --- a/subprojects/orc.wrap +++ b/subprojects/orc.wrap @@ -3,3 +3,6 @@ directory=orc url=https://gitlab.freedesktop.org/gstreamer/orc.git push-url=git@gitlab.freedesktop.org:gstreamer/orc.git revision=8ef6d657ccc1e98476ebc5d101c6729e6b916f78 + +[provide] +orc-0.4 = orc_dep