diff options
author | Dan Williams <dan@ioncontrol.co> | 2025-05-22 08:28:51 -0500 |
---|---|---|
committer | Dan Williams <dan@ioncontrol.co> | 2025-05-22 08:28:51 -0500 |
commit | 680aed6acf2167247577f33951bbbf0ebee83886 (patch) | |
tree | dc1723f45398b2a55188b1f6b639bfdc46c7dc82 | |
parent | c6d1d020f74ae3320cc67074fc04fc075d9807f9 (diff) | |
parent | c04f178ddaf7951ffafd59a61ce0ebf238af90bb (diff) |
Merge request !1044 from 'submodule'
Allow to use libqmi and libmbim as meson subprojects
https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1044
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | meson.build | 31 | ||||
-rw-r--r-- | meson_options.txt | 1 | ||||
-rw-r--r-- | subprojects/libmbim.wrap | 5 | ||||
-rw-r--r-- | subprojects/libqmi.wrap | 5 |
5 files changed, 41 insertions, 3 deletions
@@ -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 + |