Files
ModemManager/src/meson.build
T
Dan Williams ec5104c9a8 Move log parent and connection property binding to helper
Continues removing usage of MMBaseModem in a bunch of files
by splitting out bits of its usage to separate interfaces.

Signed-off-by: Dan Williams <dan@ioncontrol.co>
2025-05-08 20:08:06 -05:00

437 lines
9.3 KiB
Meson

# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2021 Iñigo Martinez <inigomartinez@gmail.com>
# helpers library
src_inc = include_directories('.')
kerneldevice_inc = include_directories('kerneldevice')
plugins_inc = include_directories('plugins')
headers = files(
'mm-modem-helpers.h',
'mm-sms-part.h',
)
enums_types = 'mm-helper-enums-types'
enums_sources = []
enums_sources += custom_target(
enums_types + '.c',
input: headers,
output: enums_types + '.c',
command: [
python,
mm_mkenums,
'--fhead', '#include "mm-helper-enums-types.h"\n',
'--template', files(templates_dir / enums_types + '.c.template'),
'@INPUT@'],
capture: true,
)
enums_sources += custom_target(
enums_types + '.h',
input: headers,
output: enums_types + '.h',
command: [
python,
mm_mkenums,
'--fhead', '#include "mm-sms-part.h"\n#include "mm-modem-helpers.h"\n#ifndef __MM_HELPER_ENUMS_TYPES_H__\n#define __MM_HELPER_ENUMS_TYPES_H__\n',
'--template', files(templates_dir / enums_types + '.h.template'),
'--ftail', '#endif /* __MM_HELPER_ENUMS_TYPES_H__ */\n',
'@INPUT@'],
capture: true,
)
sources = files(
'mm-cbm-part.c',
'mm-charsets.c',
'mm-error-helpers.c',
'mm-log.c',
'mm-log-object.c',
'mm-modem-helpers.c',
'mm-sms-part-3gpp.c',
'mm-sms-part.c',
'mm-sms-part-cdma.c',
)
incs = [
top_inc,
# FIXME: only necessary if qmi is enabled?
kerneldevice_inc,
]
deps = [libmm_glib_dep]
private_deps = []
if enable_qmi
sources += files('mm-modem-helpers-qmi.c')
deps += qmi_glib_dep
endif
if enable_mbim
sources += files('mm-modem-helpers-mbim.c')
deps += mbim_glib_dep
endif
if enable_systemd_journal
private_deps += libsystemd_dep
endif
libhelpers = static_library(
'helpers',
sources: sources + enums_sources,
include_directories: incs,
dependencies: deps + private_deps,
)
libhelpers_dep = declare_dependency(
sources: enums_sources[1],
include_directories: ['.', kerneldevice_inc],
dependencies: deps,
link_with: libhelpers,
)
# kerneldevice library
sources = files(
'kerneldevice/mm-kernel-device.c',
'kerneldevice/mm-kernel-device-generic.c',
'kerneldevice/mm-kernel-device-generic-rules.c',
'kerneldevice/mm-kernel-device-helpers.c',
)
deps = [libhelpers_dep]
if enable_qrtr
sources += files('kerneldevice/mm-kernel-device-qrtr.c')
deps += qrtr_glib_dep
endif
if enable_udev
sources += files('kerneldevice/mm-kernel-device-udev.c')
deps += gudev_dep
endif
libkerneldevice = static_library(
'kerneldevice',
sources: sources,
include_directories: top_inc,
dependencies: deps,
c_args: '-DUDEVRULESDIR="@0@"'.format(udev_rulesdir),
)
libkerneldevice_dep = declare_dependency(
dependencies: deps,
link_with: libkerneldevice,
)
# ports library
headers = files(
'mm-iface-port-at.h',
'mm-port.h',
'mm-port-serial-at.h',
)
sources = files(
'mm-iface-port-at.c',
'mm-netlink.c',
'mm-port.c',
'mm-port-net.c',
'mm-port-serial-at.c',
'mm-port-serial.c',
'mm-port-serial-gps.c',
'mm-port-serial-qcdm.c',
'mm-serial-parsers.c',
)
deps = [libkerneldevice_dep]
private_deps = [gio_unix_dep]
if enable_qmi
headers += files('mm-port-qmi.h')
sources += files('mm-port-qmi.c')
endif
if enable_mbim
sources += files('mm-port-mbim.c')
endif
enums_types = 'mm-port-enums-types'
port_enums_sources = []
port_enums_sources += custom_target(
enums_types + '.c',
input: headers,
output: enums_types + '.c',
command: [
python,
mm_mkenums,
'--fhead', '#include "mm-port-enums-types.h"\n',
'--template', files(templates_dir / enums_types + '.c.template'),
'@INPUT@'],
capture: true,
)
port_enums_sources += custom_target(
enums_types + '.h',
input: headers,
output: enums_types + '.h',
command: [
python,
mm_mkenums,
'--fhead', '#include "config.h"\n#include "mm-port.h"\n#include "mm-port-serial-at.h"\n#if defined WITH_QMI\n#include "mm-port-qmi.h"\n#endif\n#ifndef __MM_PORT_ENUMS_TYPES_H__\n#define __MM_PORT_ENUMS_TYPES_H__\n',
'--template', files(templates_dir / enums_types + '.h.template'),
'--ftail', '#endif /* __MM_PORT_ENUMS_TYPES_H__ */\n',
'@INPUT@'],
capture: true,
)
libport = static_library(
'port',
sources: sources + port_enums_sources,
include_directories: top_inc,
dependencies: deps + private_deps,
)
libport_dep = declare_dependency(
sources: port_enums_sources[1],
include_directories: '.',
dependencies: deps,
link_with: libport,
)
# auth provider library
sources = files(
'mm-auth-provider.c',
'mm-context.c',
)
incs = [
top_inc,
kerneldevice_inc,
]
deps = [libmm_glib_dep, libhelpers_dep]
if enable_polkit
deps += polkit_gobject_dep
endif
private_deps = []
libauth = static_library(
'auth',
sources: sources,
include_directories: incs,
dependencies: deps,
c_args: '-DPLUGINDIR="@0@"'.format(mm_prefix / mm_pkglibdir),
)
libauth_dep = declare_dependency(
include_directories: ['.', kerneldevice_inc],
dependencies: deps,
link_with: libauth,
)
# Daemon enums, required by plugins
headers = files(
'mm-base-bearer.h',
'mm-iface-op-lock.h',
'mm-filter.h',
'mm-port-probe.h',
)
enums_types = 'mm-daemon-enums-types'
daemon_enums_sources = []
daemon_enums_sources += custom_target(
enums_types + '.c',
input: headers,
output: enums_types + '.c',
command: [
python,
mm_mkenums,
'--fhead', '#include "mm-daemon-enums-types.h"\n',
'--template', files(templates_dir / enums_types + '.c.template'),
'@INPUT@'],
capture: true,
)
daemon_enums_sources += custom_target(
enums_types + '.h',
input: headers,
output: enums_types + '.h',
command: [
python,
mm_mkenums,
'--fhead', '#include "mm-filter.h"\n#include "mm-base-bearer.h"\n#include "mm-port-probe.h"\n#ifndef __MM_DAEMON_ENUMS_TYPES_H__\n#define __MM_DAEMON_ENUMS_TYPES_H__\n',
'--template', files(templates_dir / enums_types + '.h.template'),
'--ftail', '#endif /* __MM_DAEMON_ENUMS_TYPES_H__ */\n',
'@INPUT@'],
capture: true,
)
daemon_enums_types_dep = declare_dependency(
sources: daemon_enums_sources[1],
include_directories: '.',
)
# Additional vendor plugins
subdir('plugins')
# ModemManager daemon
sources = files(
'main.c',
'mm-auth-provider.c',
'mm-base-bearer.c',
'mm-base-call.c',
'mm-base-cbm.c',
'mm-base-manager.c',
'mm-base-modem-at.c',
'mm-base-modem.c',
'mm-base-sim.c',
'mm-base-sms.c',
'mm-bind.c',
'mm-bearer-list.c',
'mm-broadband-bearer.c',
'mm-broadband-modem.c',
'mm-call-list.c',
'mm-cbm-list.c',
'mm-context.c',
'mm-device.c',
'mm-dispatcher.c',
'mm-dispatcher-connection.c',
'mm-dispatcher-fcc-unlock.c',
'mm-dispatcher-modem-setup.c',
'mm-filter.c',
'mm-iface-modem-3gpp.c',
'mm-iface-modem-3gpp-profile-manager.c',
'mm-iface-modem-3gpp-ussd.c',
'mm-iface-modem.c',
'mm-iface-modem-cdma.c',
'mm-iface-modem-cell-broadcast.c',
'mm-iface-modem-firmware.c',
'mm-iface-modem-location.c',
'mm-iface-modem-messaging.c',
'mm-iface-modem-oma.c',
'mm-iface-modem-sar.c',
'mm-iface-modem-signal.c',
'mm-iface-modem-simple.c',
'mm-iface-modem-time.c',
'mm-iface-modem-voice.c',
'mm-iface-op-lock.c',
'mm-log-helpers.c',
'mm-plugin.c',
'mm-plugin-manager.c',
'mm-port-probe.c',
'mm-port-probe-at.c',
'mm-private-boxed-types.c',
'mm-sms-list.c',
'mm-sleep-context.c',
)
sources += daemon_enums_sources
deps = [
gmodule_dep,
libport_dep,
libqcdm_dep,
libauth_dep,
]
if enable_tests
deps += [libmm_test_generated_dep]
endif
c_args = [
'-DMM_COMPILATION',
'-DPLUGINDIR="@0@"'.format(mm_prefix / mm_pkglibdir),
'-DMODEMSETUPDIRPACKAGE="@0@"'.format(mm_prefix / mm_pkglibdir / 'modem-setup.d'),
'-DMODEMSETUPDIRUSER="@0@"'.format(mm_prefix / mm_pkgsysconfdir / 'modem-setup.d'),
'-DFCCUNLOCKDIRPACKAGE="@0@"'.format(mm_prefix / mm_pkglibdir / 'fcc-unlock.d'),
'-DFCCUNLOCKDIRUSER="@0@"'.format(mm_prefix / mm_pkgsysconfdir / 'fcc-unlock.d'),
'-DCONNECTIONDIRPACKAGE="@0@"'.format(mm_prefix / mm_pkglibdir / 'connection.d'),
'-DCONNECTIONDIRUSER="@0@"'.format(mm_prefix / mm_pkgsysconfdir / 'connection.d'),
]
if enable_qrtr
sources += files('mm-qrtr-bus-watcher.c')
endif
# Additional suspend/resume support via systemd
if enable_systemd_suspend_resume
sources += files('mm-sleep-monitor-systemd.c')
deps += [
gio_unix_dep,
libsystemd_dep,
]
endif
#suspend/resume support via powerd
if enable_powerd_suspend_resume
sources += files('mm-sleep-monitor-powerd.c')
endif
if enable_polkit
deps += polkit_gobject_dep
endif
# Additional QMI support in ModemManager
if enable_qmi
sources += files(
'mm-bearer-qmi.c',
'mm-broadband-modem-qmi.c',
'mm-call-qmi.c',
'mm-shared-qmi.c',
'mm-sim-qmi.c',
'mm-sms-qmi.c',
)
endif
# Additional MBIM support in ModemManager
if enable_mbim
sources += files(
'mm-bearer-mbim.c',
'mm-broadband-modem-mbim.c',
'mm-sim-mbim.c',
'mm-sms-mbim.c',
)
endif
executable(
'ModemManager',
sources: [sources, builtin_sources],
include_directories: [ top_inc, plugins_inc ],
dependencies: deps,
c_args: c_args,
link_whole: builtin_plugins,
install: true,
install_dir: mm_sbindir,
)
pkg.generate(
version: mm_version,
name: mm_name,
description: 'Common headers provided by ModemManager',
subdirs: mm_name,
variables: 'exec_prefix=${prefix}',
)
# generic udev rules
install_data(
'80-mm-candidate.rules',
install_dir: udev_rulesdir,
)
if enable_tests
subdir('tests')
endif