aboutsummaryrefslogtreecommitdiff
path: root/libmm-glib
diff options
context:
space:
mode:
Diffstat (limited to 'libmm-glib')
-rw-r--r--libmm-glib/generated/meson.build135
-rw-r--r--libmm-glib/generated/tests/meson.build26
-rw-r--r--libmm-glib/meson.build179
-rw-r--r--libmm-glib/tests/meson.build21
4 files changed, 361 insertions, 0 deletions
diff --git a/libmm-glib/generated/meson.build b/libmm-glib/generated/meson.build
new file mode 100644
index 00000000..6f85b1f5
--- /dev/null
+++ b/libmm-glib/generated/meson.build
@@ -0,0 +1,135 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2021 Iñigo Martinez <inigomartinez@gmail.com>
+
+generated_inc = include_directories('.')
+generated_build_dir = meson.current_build_dir()
+
+common_c_args = cc.get_supported_arguments([
+ '-Wno-float-equal',
+ '-Wno-shadow',
+ '-Wno-unused-function',
+])
+
+gen_sources = []
+gen_headers = []
+gen_docs = []
+
+# Enum types
+enums_types = 'mm-enums-types'
+
+gen_sources += gnome.mkenums(
+ enums_types + '.c',
+ sources: mm_enums_header,
+ c_template: build_aux_dir / enums_types + '.c.template',
+ fhead: '#include "mm-enums-types.h"\n',
+)
+
+gen_headers += gnome.mkenums(
+ enums_types + '.h',
+ sources: mm_enums_header,
+ h_template: build_aux_dir / enums_types + '.h.template',
+ fhead: '#include <ModemManager.h>\n#ifndef __MM_ENUMS_TYPES_H__\n#define __MM_ENUMS_TYPES_H__\n',
+ ftail: '#endif /* __MM_ENUMS_TYPES_H__ */\n',
+ install_header: true,
+ install_dir: mm_glib_pkgincludedir,
+)
+
+# Error types & quarks
+errors_types = 'mm-errors-types'
+
+gen_sources += gnome.mkenums(
+ enums_types + '.c',
+ sources: mm_errors_header,
+ c_template: build_aux_dir / errors_types + '.c.template',
+ fhead: '#include <ModemManager.h>\n#include "mm-errors-types.h"\n',
+)
+
+gen_headers += gnome.mkenums(
+ errors_types + '.h',
+ sources: mm_errors_header,
+ h_template: build_aux_dir / errors_types + '.h.template',
+ fhead: '#ifndef __MM_ERRORS_TYPES_H__\n#define __MM_ERRORS_TYPES_H__\n',
+ ftail: '#endif /* __MM_ERRORS_TYPES_H__ */\n',
+ install_header: true,
+ install_dir: mm_glib_pkgincludedir,
+)
+
+errors_quarks = 'mm-errors-quarks'
+
+gen_sources += gnome.mkenums(
+ errors_quarks + '.c',
+ sources: mm_errors_header,
+ c_template: build_aux_dir / errors_quarks + '.c.template',
+ fhead: '#include <ModemManager.h>\n#include "mm-errors-types.h"\n',
+)
+
+gdbus_ifaces = [
+ ['bearer', mm_ifaces_bearer, [], false, true],
+ ['call', mm_ifaces_call, [], false, false],
+ ['manager', mm_ifaces, [], false, true],
+ ['sim', mm_ifaces_sim, [], false, true],
+]
+
+annotations = [
+ ['org.freedesktop.ModemManager1.Modem.ModemCdma', 'org.gtk.GDBus.C.Name', 'ModemCdma'],
+ ['org.freedesktop.ModemManager1.Modem.Modem3gpp', 'org.gtk.GDBus.C.Name', 'Modem3gpp'],
+ ['org.freedesktop.ModemManager1.Modem.Modem3gpp.Ussd', 'org.gtk.GDBus.C.Name', 'Modem3gppUssd'],
+ ['org.freedesktop.ModemManager1.Modem.Modem3gpp.ProfileManager', 'org.gtk.GDBus.C.Name', 'Modem3gppProfileManager'],
+]
+
+gdbus_ifaces += [['modem', mm_ifaces_modem, annotations, true, true]]
+
+annotations = [['org.freedesktop.ModemManager1.Sms:Data', 'org.gtk.GDBus.C.ForceGVariant', 'True']]
+
+gdbus_ifaces += [['sms', mm_ifaces_sms, annotations, false, true]]
+
+# FIXME: to avoid the inclusion of call gdbus (seems a mistake in autotools)
+gen_gir_sources = gen_sources + gen_headers
+
+foreach gdbus_iface: gdbus_ifaces
+ gdbus_sources = gnome.gdbus_codegen(
+ 'mm-gdbus-' + gdbus_iface[0],
+ sources: gdbus_iface[1],
+ interface_prefix: 'org.freedesktop.ModemManager1.',
+ namespace: 'MmGdbus',
+ docbook: 'mm-gdbus-doc',
+ annotations: gdbus_iface[2],
+ object_manager: gdbus_iface[3],
+ autocleanup: 'objects',
+ # FIXME: due to the lack of possibility to add `docbook targets` to the `expand_content_files`.
+ build_by_default: true,
+ install_header: true,
+ install_dir: mm_glib_pkgincludedir,
+ )
+
+ gen_sources += gdbus_sources[0]
+ gen_headers += gdbus_sources[1]
+ # FIXME: the `expand_content_files` must be strings
+ gen_docs += gdbus_sources[2]
+ if gdbus_iface[4]
+ gen_gir_sources += [gdbus_sources[0], gdbus_sources[1]]
+ endif
+endforeach
+
+deps = [
+ include_dep,
+ gio_unix_dep,
+ glib_deps,
+]
+
+libmm_generated = static_library(
+ 'mm-generated',
+ sources: gen_sources + gen_headers,
+ include_directories: top_inc,
+ dependencies: deps,
+ c_args: common_c_args,
+)
+
+libmm_generated_dep = declare_dependency(
+ sources: gen_headers,
+ include_directories: generated_inc,
+ dependencies: glib_deps,
+ link_whole: libmm_generated,
+)
+
+subdir('tests')
diff --git a/libmm-glib/generated/tests/meson.build b/libmm-glib/generated/tests/meson.build
new file mode 100644
index 00000000..d63773ca
--- /dev/null
+++ b/libmm-glib/generated/tests/meson.build
@@ -0,0 +1,26 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2021 Iñigo Martinez <inigomartinez@gmail.com>
+
+# Test interface
+gdbus_sources = gnome.gdbus_codegen(
+ 'mm-gdbus-test',
+ sources: mm_ifaces_test,
+ interface_prefix: 'org.freedesktop.ModemManager1.',
+ namespace: 'MmGdbus',
+ autocleanup: 'objects',
+)
+
+libmm_test_generated = static_library(
+ 'mm-test-generated',
+ sources: gdbus_sources,
+ include_directories: top_inc,
+ dependencies: deps,
+ c_args: common_c_args,
+)
+
+libmm_test_generated_dep = declare_dependency(
+ sources: gdbus_sources[1],
+ include_directories: '.',
+ dependencies: glib_deps,
+ link_with: libmm_test_generated,
+)
diff --git a/libmm-glib/meson.build b/libmm-glib/meson.build
new file mode 100644
index 00000000..f3cf0c31
--- /dev/null
+++ b/libmm-glib/meson.build
@@ -0,0 +1,179 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2021 Iñigo Martinez <inigomartinez@gmail.com>
+
+libmm_glib_inc = include_directories('.')
+
+subdir('generated')
+
+headers = files(
+ 'libmm-glib.h',
+ 'mm-3gpp-profile.h',
+ 'mm-bearer.h',
+ 'mm-bearer-ip-config.h',
+ 'mm-bearer-properties.h',
+ 'mm-bearer-stats.h',
+ 'mm-call-audio-format.h',
+ 'mm-call.h',
+ 'mm-call-properties.h',
+ 'mm-cdma-manual-activation-properties.h',
+ 'mm-compat.h',
+ 'mm-firmware-properties.h',
+ 'mm-firmware-update-settings.h',
+ 'mm-helper-types.h',
+ 'mm-kernel-event-properties.h',
+ 'mm-location-3gpp.h',
+ 'mm-location-cdma-bs.h',
+ 'mm-location-common.h',
+ 'mm-location-gps-nmea.h',
+ 'mm-location-gps-raw.h',
+ 'mm-manager.h',
+ 'mm-modem-3gpp.h',
+ 'mm-modem-3gpp-profile-manager.h',
+ 'mm-modem-3gpp-ussd.h',
+ 'mm-modem-cdma.h',
+ 'mm-modem-firmware.h',
+ 'mm-modem.h',
+ 'mm-modem-location.h',
+ 'mm-modem-messaging.h',
+ 'mm-modem-oma.h',
+ 'mm-modem-signal.h',
+ 'mm-modem-simple.h',
+ 'mm-modem-time.h',
+ 'mm-modem-voice.h',
+ 'mm-network-timezone.h',
+ 'mm-object.h',
+ 'mm-pco.h',
+ 'mm-signal.h',
+ 'mm-sim.h',
+ 'mm-simple-connect-properties.h',
+ 'mm-simple-status.h',
+ 'mm-sim-preferred-network.h',
+ 'mm-sms.h',
+ 'mm-sms-properties.h',
+ 'mm-unlock-retries.h',
+)
+
+install_headers(
+ headers,
+ install_dir: mm_glib_pkgincludedir,
+)
+
+sources = files(
+ 'mm-3gpp-profile.c',
+ 'mm-bearer.c',
+ 'mm-bearer-ip-config.c',
+ 'mm-bearer-properties.c',
+ 'mm-bearer-stats.c',
+ 'mm-call-audio-format.c',
+ 'mm-call.c',
+ 'mm-call-properties.c',
+ 'mm-cdma-manual-activation-properties.c',
+ 'mm-common-helpers.c',
+ 'mm-compat.c',
+ 'mm-firmware-properties.c',
+ 'mm-firmware-update-settings.c',
+ 'mm-helper-types.c',
+ 'mm-kernel-event-properties.c',
+ 'mm-location-3gpp.c',
+ 'mm-location-cdma-bs.c',
+ 'mm-location-gps-nmea.c',
+ 'mm-location-gps-raw.c',
+ 'mm-manager.c',
+ 'mm-modem-3gpp.c',
+ 'mm-modem-3gpp-profile-manager.c',
+ 'mm-modem-3gpp-ussd.c',
+ 'mm-modem.c',
+ 'mm-modem-cdma.c',
+ 'mm-modem-firmware.c',
+ 'mm-modem-location.c',
+ 'mm-modem-messaging.c',
+ 'mm-modem-oma.c',
+ 'mm-modem-signal.c',
+ 'mm-modem-simple.c',
+ 'mm-modem-time.c',
+ 'mm-modem-voice.c',
+ 'mm-network-timezone.c',
+ 'mm-object.c',
+ 'mm-pco.c',
+ 'mm-signal.c',
+ 'mm-sim.c',
+ 'mm-simple-connect-properties.c',
+ 'mm-simple-status.c',
+ 'mm-sim-preferred-network.c',
+ 'mm-sms.c',
+ 'mm-sms-properties.c',
+ 'mm-unlock-retries.c',
+)
+
+deps = [include_dep]
+
+libmm_glib = shared_library(
+ 'mm-glib',
+ version: mm_glib_version,
+ sources: sources,
+ include_directories: top_inc,
+ dependencies: deps + [libmm_generated_dep],
+ c_args: '-DLIBMM_GLIB_COMPILATION',
+ install: true,
+)
+
+libmm_glib_dep = declare_dependency(
+ sources: gen_headers,
+ include_directories: [libmm_glib_inc, generated_inc],
+ dependencies: deps + [glib_deps],
+ link_with: libmm_glib,
+)
+
+pkg.generate(
+ libraries: libmm_glib,
+ version: mm_version,
+ name: 'mm-glib',
+ description: 'Library to control and monitor the ModemManager',
+ subdirs: mm_glib_name,
+ # FIXME: produced by the inhability of meson to use internal dependencies
+ requires: ['gio-2.0', 'glib-2.0', 'gobject-2.0', 'ModemManager'],
+ variables: 'exec_prefix=${prefix}',
+)
+
+if enable_gir
+ incs = [
+ 'Gio-2.0',
+ 'GLib-2.0',
+ 'GObject-2.0',
+ ]
+
+ gir_ns = 'ModemManager'
+ gir_prefix = 'Mm'
+
+ args = [
+ '-DLIBMM_GLIB_COMPILATION',
+ '--identifier-prefix=' + gir_prefix.to_upper(),
+ ]
+
+ libmm_glib_gir = gnome.generate_gir(
+ libmm_glib,
+ # FIXME: mm-gdbus-call.[ch] are not included
+ # sources: sources + headers + gen_sources + gen_headers + [mm_names_header, mm_version_header],
+ sources: sources + headers + gen_gir_sources + [mm_names_header, mm_version_header],
+ includes: incs,
+ namespace: gir_ns,
+ nsversion: mm_gir_version,
+ identifier_prefix: gir_prefix,
+ symbol_prefix: gir_prefix.to_lower(),
+ extra_args: args,
+ header: 'libmm-glib.h',
+ export_packages: gir_ns,
+ install: true,
+ )
+
+ if enable_vapi
+ libmm_glib_vapi = gnome.generate_vapi(
+ 'libmm-glib',
+ sources: libmm_glib_gir[0],
+ packages: 'gio-2.0',
+ install: true,
+ )
+ endif
+endif
+
+subdir('tests')
diff --git a/libmm-glib/tests/meson.build b/libmm-glib/tests/meson.build
new file mode 100644
index 00000000..83dd80d1
--- /dev/null
+++ b/libmm-glib/tests/meson.build
@@ -0,0 +1,21 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+# Copyright (C) 2021 Iñigo Martinez <inigomartinez@gmail.com>
+
+test_units = [
+ 'common-helpers',
+ 'pco',
+]
+
+foreach test_unit: test_units
+ test_name = 'test-' + test_unit
+
+ exe = executable(
+ test_name,
+ test_name + '.c',
+ include_directories: top_inc,
+ dependencies: libmm_glib_dep,
+ c_args: '-DLIBMM_GLIB_COMPILATION',
+ )
+
+ test(test_name, exe)
+endforeach