aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--meson.build31
-rw-r--r--meson_options.txt1
-rw-r--r--subprojects/libmbim.wrap5
-rw-r--r--subprojects/libqmi.wrap5
5 files changed, 41 insertions, 3 deletions
diff --git a/.gitignore b/.gitignore
index c5dd58fe..b457b25c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,5 @@
tags
/.vscode
/cscope.out
+subprojects/libmbim
+subprojects/libqmi
diff --git a/meson.build b/meson.build
index fa8b13a9..fd094f7c 100644
--- a/meson.build
+++ b/meson.build
@@ -259,14 +259,34 @@ config_h.set('WITH_BUILTIN_PLUGINS', enable_builtin_plugins)
# MBIM support (enabled by default)
enable_mbim = get_option('mbim')
if enable_mbim
- mbim_glib_dep = dependency('mbim-glib', version: '>= 1.32.0')
+ mbim_glib_dep = dependency('mbim-glib', version: '>= 1.32.0',
+ required: not get_option('subproject-fallback'))
+ if not mbim_glib_dep.found() and get_option('subproject-fallback')
+ mbim_glib_proj = subproject('libmbim',
+ default_options: ['man=false',
+ 'introspection=false',
+ 'bash_completion=false',
+ ])
+ mbim_glib_dep = mbim_glib_proj.get_variable('libmbim_glib_dep')
+ endif
endif
config_h.set('WITH_MBIM', enable_mbim)
# QMI support (enabled by default)
enable_qmi = get_option('qmi')
if enable_qmi
- qmi_glib_dep = dependency('qmi-glib', version: '>= 1.36.0')
+ qmi_glib_dep = dependency('qmi-glib', version: '>= 1.36.0',
+ required: not get_option('subproject-fallback'))
+
+ if not qmi_glib_dep.found() and get_option('subproject-fallback')
+ qmi_glib_proj = subproject('libqmi',
+ default_options: ['man=false',
+ 'mbim_qmux=false',
+ 'introspection=false',
+ 'bash_completion=false',
+ ])
+ qmi_glib_dep = qmi_glib_proj.get_variable('libqmi_glib_dep')
+ endif
endif
config_h.set('WITH_QMI', enable_qmi)
@@ -274,7 +294,12 @@ config_h.set('WITH_QMI', enable_qmi)
enable_qrtr = get_option('qrtr')
if enable_qrtr
assert(enable_qmi, 'QRTR support requires QMI enabled')
- assert(qmi_glib_dep.get_pkgconfig_variable('qmi_qrtr_supported').to_int().is_odd(), 'Couldn\'t find QRTR support in qmi-glib.')
+ if qmi_glib_dep.type_name() == 'internal'
+ qmi_qrtr_supported = qmi_glib_proj.get_variable('enable_qrtr')
+ else
+ qmi_qrtr_supported = qmi_glib_dep.get_pkgconfig_variable('qmi_qrtr_supported')
+ endif
+ assert(qmi_qrtr_supported.to_int().is_odd(), 'Couldn\'t find QRTR support in qmi-glib.')
qrtr_glib_dep = dependency('qrtr-glib', version: '>= 1.0.0')
endif
config_h.set('WITH_QRTR', enable_qrtr)
diff --git a/meson_options.txt b/meson_options.txt
index c0609fe8..6fbc0666 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -6,6 +6,7 @@ option('udevdir', type: 'string', value: '', description: 'udev base directory')
option('examples', type: 'boolean', value: true, description: 'install examples')
option('tests', type: 'boolean', value: true, description: 'enable tests')
+option('subproject-fallback', type: 'boolean', value: false, description: 'allow to use subprojects')
option('dbus_policy_dir', type: 'string', value: '', description: 'd-bus system policy directory')
diff --git a/subprojects/libmbim.wrap b/subprojects/libmbim.wrap
new file mode 100644
index 00000000..522bf8ed
--- /dev/null
+++ b/subprojects/libmbim.wrap
@@ -0,0 +1,5 @@
+[wrap-git]
+directory=libmbim
+url=https://gitlab.freedesktop.org/mobile-broadband/libmbim.git
+revision=main
+
diff --git a/subprojects/libqmi.wrap b/subprojects/libqmi.wrap
new file mode 100644
index 00000000..2511ce47
--- /dev/null
+++ b/subprojects/libqmi.wrap
@@ -0,0 +1,5 @@
+[wrap-git]
+directory=libqmi
+url=https://gitlab.freedesktop.org/mobile-broadband/libqmi.git
+revision=main
+