summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meson.build22
-rw-r--r--meson_options.txt1
-rw-r--r--subprojects/orc.wrap3
3 files changed, 25 insertions, 1 deletions
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