aboutsummaryrefslogtreecommitdiff
path: root/src/meson.build
diff options
context:
space:
mode:
authorAleksander Morgado <aleksandermj@chromium.org>2022-12-08 14:37:56 +0000
committerAleksander Morgado <aleksander@aleksander.es>2023-01-03 13:56:25 +0000
commit1c4da332ee6e0d948f85a63f74cb27e89075c011 (patch)
tree03a01bf796b4d435cd233c89ed3d05c562ed3fd1 /src/meson.build
parent1dd70be4c834ba025ff16b343aa4032a8c64fb71 (diff)
build: new option to build plugins within the daemon binary
Instead of creating libmm-plugin* and libmm-shared* libraries that are dlopen()-ed on runtime, allow incorporating all plugins into the daemon binary itself. This makes the startup of the daemon much faster and also avoids issues with builds that require linker namespace isolation. Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/674
Diffstat (limited to 'src/meson.build')
-rw-r--r--src/meson.build26
1 files changed, 11 insertions, 15 deletions
diff --git a/src/meson.build b/src/meson.build
index 3a7228b8..3b6f7a71 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -4,6 +4,7 @@
# helpers library
src_inc = include_directories('.')
kerneldevice_inc = include_directories('kerneldevice')
+plugins_inc = include_directories('plugins')
headers = files(
'mm-modem-helpers.h',
@@ -177,6 +178,9 @@ libport_dep = declare_dependency(
link_with: libport,
)
+# Additional vendor plugins
+subdir('plugins')
+
# ModemManager daemon
headers = files(
'mm-base-bearer.h',
@@ -229,15 +233,14 @@ sources = files(
enums_types = 'mm-daemon-enums-types'
-daemon_enums_sources = []
-daemon_enums_sources += gnome.mkenums(
+sources += gnome.mkenums(
enums_types + '.c',
sources: headers,
c_template: build_aux_dir / enums_types + '.c.template',
fhead: '#include "mm-daemon-enums-types.h"',
)
-daemon_enums_sources += gnome.mkenums(
+sources += gnome.mkenums(
enums_types + '.h',
sources: headers,
h_template: build_aux_dir / enums_types + '.h.template',
@@ -309,20 +312,13 @@ if enable_mbim
)
endif
-# Daemon related variables before processing plugins
-daemon_sources = sources + daemon_enums_sources
-daemon_deps = deps
-daemon_c_args = c_args
-
-# Additional vendor plugins
-subdir('plugins')
-
executable(
'ModemManager',
- sources: daemon_sources,
- include_directories: top_inc,
- dependencies: daemon_deps,
- c_args: daemon_c_args,
+ 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,
)