diff options
Diffstat (limited to 'libmm-glib')
-rw-r--r-- | libmm-glib/generated/meson.build | 135 | ||||
-rw-r--r-- | libmm-glib/generated/tests/meson.build | 26 | ||||
-rw-r--r-- | libmm-glib/meson.build | 179 | ||||
-rw-r--r-- | libmm-glib/tests/meson.build | 21 |
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 |