modules = [] # nss, pam, and other plugins
executables = []
executables_by_name = {}
+objects_by_name = {}
fuzzer_exes = []
generated_sources = [version_h, vmlinux_h_dependency]
kwargs = {}
foreach key, val : dict
if key in ['name', 'dbus', 'public', 'conditions',
- 'type', 'suite', 'timeout', 'parallel']
+ 'type', 'suite', 'timeout', 'parallel',
+ 'objects', 'extract']
continue
endif
kwargs += { key : [ kwargs.get(key, []), val ]}
endforeach
+ foreach val : dict.get('objects', [])
+ obj = objects_by_name[val]
+ kwargs += {
+ 'objects' : obj['objects'],
+ 'include_directories' : [
+ kwargs.get('include_directories', []),
+ obj['include_directories'],
+ ],
+ }
+ endforeach
+
if is_test
kwargs += { 'install_dir' : kwargs.get('install_dir') / dict.get('type', '') }
foreach key, val : test_additional_kwargs
executables_by_name += { name : exe }
+ if dict.has_key('extract')
+ objects_by_name += {
+ name : {
+ 'objects' : exe.extract_objects(dict['extract']),
+ 'include_directories' : fs.parent(dict['extract'][0]),
+ }
+ }
+ endif
+
if dict.get('build_by_default', true)
if dict.get('dbus', false)
dbus_programs += exe
conf.get('HAVE_DMI') == 1],
[files('70-power-switch.rules'),
- enable_logind],
+ conf.get('ENABLE_LOGIND') == 1]
]
all_rules = []
['64-btrfs.rules'],
['99-systemd.rules'],
- ['70-uaccess.rules', enable_logind and conf.get('HAVE_ACL') == 1],
- ['71-seat.rules', enable_logind],
- ['73-seat-late.rules', enable_logind],
+ ['70-uaccess.rules', conf.get('ENABLE_LOGIND') == 1 and conf.get('HAVE_ACL') == 1],
+ ['71-seat.rules', conf.get('ENABLE_LOGIND') == 1],
+ ['73-seat-late.rules', conf.get('ENABLE_LOGIND') == 1],
['90-vconsole.rules', conf.get('ENABLE_VCONSOLE') == 1],
]
'analyze-unit-files.c',
'analyze-unit-paths.c',
'analyze-verify.c',
- 'analyze-verify-util.c',
'analyze.c',
)
+systemd_analyze_extract_sources = files(
+ 'analyze-verify-util.c'
+)
executables += [
executable_template + {
'name' : 'systemd-analyze',
'public' : conf.get('ENABLE_ANALYZE') == 1,
- 'sources' : systemd_analyze_sources,
+ 'sources' : [systemd_analyze_sources, systemd_analyze_extract_sources],
+ 'extract' : systemd_analyze_extract_sources,
'include_directories' : core_includes,
'link_with' : [
libcore,
'install' : conf.get('ENABLE_ANALYZE') == 1,
},
core_test_template + {
- 'sources' : files(
- 'test-verify.c',
- 'analyze-verify-util.c',
- ),
+ 'sources' : files('test-verify.c'),
+ 'objects' : ['systemd-analyze'],
},
]
# SPDX-License-Identifier: LGPL-2.1-or-later
busctl_sources = files(
- 'busctl-introspect.c',
'busctl.c',
)
+busctl_extract_sources = files(
+ 'busctl-introspect.c',
+)
executables += [
executable_template + {
'name' : 'busctl',
'public' : true,
- 'sources' : busctl_sources,
+ 'sources' : [busctl_sources, busctl_extract_sources],
+ 'extract' : busctl_extract_sources,
},
test_template + {
- 'sources' : files(
- 'test-busctl-introspect.c',
- 'busctl-introspect.c',
- )
+ 'sources' : files('test-busctl-introspect.c'),
+ 'objects' : ['busctl'],
},
]
# SPDX-License-Identifier: LGPL-2.1-or-later
+if conf.get('ENABLE_COREDUMP') != 1
+ subdir_done()
+endif
+
systemd_coredump_sources = files(
'coredump.c',
+)
+systemd_coredump_extract_sources = files(
'coredump-vacuum.c',
)
executables += [
libexec_template + {
'name' : 'systemd-coredump',
- 'conditions' : ['ENABLE_COREDUMP'],
- 'sources' : systemd_coredump_sources,
+ 'sources' : [systemd_coredump_sources, systemd_coredump_extract_sources],
+ 'extract' : systemd_coredump_extract_sources,
'link_with' : [libshared],
'dependencies' : common_dependencies + [libacl],
},
executable_template + {
'name' : 'coredumpctl',
'public' : true,
- 'conditions' : ['ENABLE_COREDUMP'],
'sources' : files('coredumpctl.c'),
'link_with' : [libshared],
'dependencies' : common_dependencies,
},
test_template + {
- 'sources' : files(
- 'test-coredump-vacuum.c',
- 'coredump-vacuum.c',
- ),
+ 'sources' : files('test-coredump-vacuum.c'),
+ 'objects' : ['systemd-coredump'],
'type' : 'manual',
},
]
-if conf.get('ENABLE_COREDUMP') == 1 and install_sysconfdir_samples
+if install_sysconfdir_samples
install_data('coredump.conf',
install_dir : pkgconfigfiledir)
endif
subdir_done()
endif
-systemd_homework_sources = files(
+systemd_homed_sources = files(
+ 'homed-bus.c',
+ 'homed-conf.c',
+ 'homed-home-bus.c',
+ 'homed-home.c',
+ 'homed-manager-bus.c',
+ 'homed-manager.c',
+ 'homed-operation.c',
+ 'homed-varlink.c',
+ 'homed.c',
+ 'user-record-sign.c',
+)
+systemd_homed_extract_sources = files(
'home-util.c',
+ 'user-record-password-quality.c',
+ 'user-record-util.c',
+)
+
+systemd_homework_sources = files(
'homework-blob.c',
'homework-cifs.c',
'homework-directory.c',
'homework-password-cache.c',
'homework-quota.c',
'homework.c',
- 'user-record-util.c',
)
if conf.get('HAVE_P11KIT') == 1
systemd_homework_sources += files('homework-fido2.c')
endif
-systemd_homed_sources = files(
- 'home-util.c',
- 'homed-bus.c',
- 'homed-conf.c',
- 'homed-home-bus.c',
- 'homed-home.c',
- 'homed-manager-bus.c',
- 'homed-manager.c',
- 'homed-operation.c',
- 'homed-varlink.c',
- 'homed.c',
- 'user-record-password-quality.c',
- 'user-record-sign.c',
- 'user-record-util.c',
-)
-
homed_gperf_c = custom_target(
'homed_gperf.c',
input : 'homed-gperf.gperf',
systemd_homed_sources += [homed_gperf_c]
homectl_sources = files(
- 'home-util.c',
'homectl-fido2.c',
'homectl-pkcs11.c',
'homectl-recovery-key.c',
'homectl.c',
- 'user-record-password-quality.c',
- 'user-record-util.c',
)
pam_systemd_home_sources = files(
)
executables += [
+ libexec_template + {
+ 'name' : 'systemd-homed',
+ 'dbus' : true,
+ 'sources' : [systemd_homed_sources, systemd_homed_extract_sources],
+ 'include_directories' : includes +
+ include_directories('.'),
+ 'extract' : systemd_homed_extract_sources,
+ 'dependencies' : [
+ libcrypt,
+ libm,
+ libopenssl,
+ threads,
+ ],
+ },
libexec_template + {
'name' : 'systemd-homework',
'sources' : systemd_homework_sources,
+ 'objects' : ['systemd-homed'],
'link_with' : [
libshared,
libshared_fdisk
threads,
],
},
- libexec_template + {
- 'name' : 'systemd-homed',
- 'dbus' : true,
- 'sources' : systemd_homed_sources,
- 'include_directories' : includes +
- include_directories('.'),
- 'dependencies' : [
- libcrypt,
- libm,
- libopenssl,
- threads,
- ],
- },
executable_template + {
'name' : 'homectl',
'public' : true,
'sources' : homectl_sources,
+ 'objects' : ['systemd-homed'],
'dependencies' : [
libcrypt,
libdl,
systemd_importd_sources = files(
'importd.c',
)
+systemd_importd_extract_sources = files(
+ 'import-common.c',
+ 'import-compress.c',
+ 'qcow2-util.c',
+)
systemd_pull_sources = files(
'pull.c',
'export-raw.c',
)
-importd_common_sources = files(
- 'import-common.c',
- 'import-compress.c',
- 'qcow2-util.c',
-)
-
-lib_import_common = static_library(
- 'import-common',
- sources : importd_common_sources,
- include_directories : includes,
- dependencies : [
- libbzip2,
- libxz,
- libz,
- libzstd,
- userspace,
- ],
- build_by_default : false)
-
-common_libs = [
- lib_import_common,
- libshared,
-]
-
common_deps = [
libbzip2,
libcurl,
libexec_template + {
'name' : 'systemd-importd',
'dbus' : true,
- 'conditions' : ['ENABLE_IMPORTD'],
- 'sources' : systemd_importd_sources,
- 'dependencies' : threads,
+ 'sources' : [systemd_importd_sources, systemd_importd_extract_sources],
+ 'extract' : systemd_importd_extract_sources,
+ 'dependencies' : [common_deps, threads],
},
libexec_template + {
'name' : 'systemd-pull',
'public' : true,
- 'conditions' : ['ENABLE_IMPORTD'],
'sources' : systemd_pull_sources,
- 'link_with' : common_libs,
+ 'objects' : ['systemd-importd'],
'dependencies' : common_deps + [
libopenssl,
],
libexec_template + {
'name' : 'systemd-import',
'public' : true,
- 'conditions' : ['ENABLE_IMPORTD'],
'sources' : systemd_import_sources,
- 'link_with' : common_libs,
+ 'objects' : ['systemd-importd'],
'dependencies' : common_deps,
},
libexec_template + {
'name' : 'systemd-import-fs',
'public' : true,
- 'conditions' : ['ENABLE_IMPORTD'],
'sources' : systemd_import_fs_sources,
- 'link_with' : common_libs,
+ 'objects' : ['systemd-importd'],
+ 'dependencies' : common_deps,
},
libexec_template + {
'name' : 'systemd-export',
'public' : true,
- 'conditions' : ['ENABLE_IMPORTD'],
'sources' : systemd_export_sources,
- 'link_with' : common_libs,
+ 'objects' : ['systemd-importd'],
'dependencies' : common_deps,
},
executable_template + {
'name' : 'importctl',
'public' : true,
- 'conditions' : ['ENABLE_IMPORTD'],
'sources' : files('importctl.c'),
},
generator_template + {
'name' : 'systemd-import-generator',
'sources' : files('import-generator.c'),
- 'conditions' : ['ENABLE_IMPORTD'],
},
test_template + {
- 'sources' : files(
- 'test-qcow2.c',
- 'qcow2-util.c',
- ),
- 'dependencies' : libz,
+ 'sources' : files('test-qcow2.c'),
+ 'objects' : ['systemd-importd'],
+ 'dependencies' : common_deps,
'conditions' : ['HAVE_ZLIB'],
'type' : 'manual',
},
# SPDX-License-Identifier: LGPL-2.1-or-later
+if conf.get('ENABLE_REMOTE') != 1
+ subdir_done()
+endif
+
systemd_journal_upload_sources = files(
'journal-compression-util.c',
- 'journal-header-util.c',
'journal-upload-journal.c',
'journal-upload.c',
)
+systemd_journal_upload_extract_sources = files(
+ 'journal-header-util.c',
+)
-libsystemd_journal_remote_sources = files(
+systemd_journal_remote_sources = files('journal-remote-main.c')
+systemd_journal_remote_extract_sources = files(
'journal-compression-util.c',
'journal-remote-parse.c',
'journal-remote-write.c',
)
if conf.get('HAVE_MICROHTTPD') == 1
- libsystemd_journal_remote_sources += files(
+ systemd_journal_remote_extract_sources += files(
'microhttpd-util.c',
)
endif
-libsystemd_journal_remote = static_library(
- 'systemd-journal-remote',
- libsystemd_journal_remote_sources,
- include_directories : includes,
- dependencies : [libgnutls,
- liblz4_cflags,
- libmicrohttpd,
- libxz_cflags,
- threads,
- userspace],
- build_by_default : false)
-
-systemd_journal_remote_sources = files('journal-remote-main.c')
-
systemd_journal_gatewayd_sources = files(
'journal-gatewayd.c',
'microhttpd-util.c',
libexec_template + {
'name' : 'systemd-journal-upload',
'public' : true,
- 'conditions' : [
- 'ENABLE_REMOTE',
- 'HAVE_LIBCURL',
- ],
- 'sources' : systemd_journal_upload_sources,
+ 'conditions' : ['HAVE_LIBCURL'],
+ 'sources' : [systemd_journal_upload_sources, systemd_journal_upload_extract_sources],
+ 'extract' : systemd_journal_upload_extract_sources,
'dependencies' : common_deps + [libcurl],
},
libexec_template + {
'name' : 'systemd-journal-remote',
'public' : true,
- 'conditions' : [
- 'ENABLE_REMOTE',
- 'HAVE_MICROHTTPD',
- ],
- 'sources' : systemd_journal_remote_sources,
- 'link_with' : [
- libshared,
- libsystemd_journal_remote,
- ],
+ 'conditions' : ['HAVE_MICROHTTPD'],
+ 'sources' : [systemd_journal_remote_sources, systemd_journal_remote_extract_sources],
+ 'extract' : systemd_journal_remote_extract_sources,
'dependencies' : common_deps + [libmicrohttpd],
},
libexec_template + {
'name' : 'systemd-journal-gatewayd',
'public' : true,
- 'conditions' : [
- 'ENABLE_REMOTE',
- 'HAVE_MICROHTTPD',
- ],
+ 'conditions' : ['HAVE_MICROHTTPD'],
'sources' : systemd_journal_gatewayd_sources,
'dependencies' : common_deps + [libmicrohttpd],
},
+ test_template + {
+ 'sources' : files('test-journal-header-util.c'),
+ 'objects' : ['systemd-journal-upload'],
+ },
fuzz_template + {
'sources' : files('fuzz-journal-remote.c'),
- 'link_with' : [
- libshared,
- libsystemd_journal_remote,
- ],
- },
-]
-
-executables += [
- test_template + {
- 'sources' : files('test-journal-header-util.c', 'journal-header-util.c'),
+ 'objects' : ['systemd-journal-remote'],
+ 'dependencies' : common_deps + [libmicrohttpd],
},
]
in_files = [
- ['journal-upload.conf',
- conf.get('ENABLE_REMOTE') == 1 and conf.get('HAVE_LIBCURL') == 1 and install_sysconfdir_samples],
- ['journal-remote.conf',
- conf.get('ENABLE_REMOTE') == 1 and conf.get('HAVE_MICROHTTPD') == 1 and install_sysconfdir_samples]]
+ ['journal-upload.conf', conf.get('HAVE_LIBCURL') == 1 and install_sysconfdir_samples],
+ ['journal-remote.conf', conf.get('HAVE_MICROHTTPD') == 1 and install_sysconfdir_samples]]
foreach tuple : in_files
file = tuple[0]
install_dir : pkgconfigfiledir)
endforeach
-if conf.get('ENABLE_REMOTE') == 1 and conf.get('HAVE_MICROHTTPD') == 1
+if conf.get('HAVE_MICROHTTPD') == 1
install_data('browse.html',
install_dir : pkgdatadir / 'gatewayd')
# SPDX-License-Identifier: LGPL-2.1-or-later
-sources = files(
+systemd_journald_sources = files(
+ 'journald.c',
+)
+systemd_journald_extract_sources = files(
'journald-audit.c',
'journald-client.c',
'journald-console.c',
'journald-syslog.c',
'journald-varlink.c',
'journald-wall.c',
+ # Build fuzz-journald.c as part of systemd-journald so we only compile it once instead of once per
+ # fuzz test.
+ 'fuzz-journald.c',
)
journald_gperf_c = custom_target(
command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
generated_sources += journald_gperf_c
-sources += journald_gperf_c
-
-libjournal_core = static_library(
- 'journal-core',
- sources,
- include_directories : includes,
- dependencies: [threads,
- userspace],
- build_by_default : false)
+systemd_journald_extract_sources += journald_gperf_c
journalctl_sources = files(
'journalctl.c',
endif
journal_test_template = test_template + {
- 'link_with' : [
- libjournal_core,
- libshared,
- ],
+ 'objects' : ['systemd-journald'],
}
journal_fuzz_template = fuzz_template + {
- 'link_with' : [
- libjournal_core,
- libshared,
- ],
+ 'objects' : ['systemd-journald'],
'dependencies' : libselinux,
}
executables += [
libexec_template + {
'name' : 'systemd-journald',
- 'sources' : files('journald.c'),
- 'link_with' : [
- libjournal_core,
- libshared,
- ],
+ 'sources' : [systemd_journald_sources, systemd_journald_extract_sources],
+ 'include_directories' : [libexec_template['include_directories'], include_directories('.')],
+ 'extract' : systemd_journald_extract_sources,
'dependencies' : [
liblz4_cflags,
libselinux,
'public' : true,
'conditions' : ['HAVE_QRENCODE'],
'sources' : files('bsod.c'),
- 'link_with' : libshared,
'dependencies' : libqrencode,
},
executable_template + {
'name' : 'systemd-cat',
'public' : true,
'sources' : files('cat.c'),
- 'link_with' : [
- libjournal_core,
- libshared,
- ],
- 'dependencies' : threads,
+ 'objects' : ['systemd-journald'],
+ 'dependencies' : [libselinux, threads],
},
executable_template + {
'name' : 'journalctl',
libxz_cflags,
],
},
- test_template + {
- 'sources' : files(
- 'test-journald-rate-limit.c',
- 'journald-rate-limit.c',
- ),
+ journal_test_template + {
+ 'sources' : files('test-journald-rate-limit.c'),
+ 'dependencies' : [
+ liblz4_cflags,
+ libselinux,
+ libxz_cflags,
+ ],
},
journal_test_template + {
'sources' : files('test-journald-syslog.c'),
],
},
journal_fuzz_template + {
- 'sources' : files(
- 'fuzz-journald-audit.c',
- 'fuzz-journald.c',
- ),
+ 'sources' : files('fuzz-journald-audit.c'),
},
journal_fuzz_template + {
- 'sources' : files(
- 'fuzz-journald-kmsg.c',
- 'fuzz-journald.c',
- ),
+ 'sources' : files('fuzz-journald-kmsg.c'),
},
journal_fuzz_template + {
- 'sources' : files(
- 'fuzz-journald-native.c',
- 'fuzz-journald.c',
- ),
+ 'sources' : files('fuzz-journald-native.c'),
},
journal_fuzz_template + {
- 'sources' : files(
- 'fuzz-journald-native-fd.c',
- 'fuzz-journald.c',
- ),
+ 'sources' : files('fuzz-journald-native-fd.c'),
},
journal_fuzz_template + {
- 'sources' : files(
- 'fuzz-journald-stream.c',
- 'fuzz-journald.c',
- ),
+ 'sources' : files('fuzz-journald-stream.c'),
},
journal_fuzz_template + {
- 'sources' : files(
- 'fuzz-journald-syslog.c',
- 'fuzz-journald.c',
- ),
+ 'sources' : files('fuzz-journald-syslog.c'),
},
]
# SPDX-License-Identifier: LGPL-2.1-or-later
+if conf.get('ENABLE_LOCALED') != 1
+ subdir_done()
+endif
+
systemd_localed_sources = files(
+ 'localed.c'
+)
+systemd_localed_extract_sources = files(
'localed-util.c',
- 'localed.c',
'xkbcommon-util.c',
)
libexec_template + {
'name' : 'systemd-localed',
'dbus' : true,
- 'conditions' : ['ENABLE_LOCALED'],
- 'sources' : systemd_localed_sources,
+ 'sources' : [systemd_localed_sources, systemd_localed_extract_sources],
+ 'extract' : systemd_localed_extract_sources,
'dependencies' : libxkbcommon_deps,
},
executable_template + {
'name' : 'localectl',
'public' : true,
- 'conditions' : ['ENABLE_LOCALED'],
'sources' : files('localectl.c'),
},
test_template + {
- 'sources' : files(
- 'test-localed-util.c',
- 'localed-util.c',
- 'xkbcommon-util.c',
- ),
+ 'sources' : files('test-localed-util.c'),
+ 'objects' : ['systemd-localed'],
'dependencies' : libxkbcommon_deps,
},
]
kbd_model_map = meson.current_source_dir() / 'kbd-model-map'
language_fallback_map = meson.current_source_dir() / 'language-fallback-map'
-if conf.get('ENABLE_LOCALED') == 1
- install_data('org.freedesktop.locale1.conf',
- install_dir : dbuspolicydir)
- install_data('org.freedesktop.locale1.service',
- install_dir : dbussystemservicedir)
- install_data('org.freedesktop.locale1.policy',
- install_dir : polkitpolicydir)
- install_data('kbd-model-map',
- 'language-fallback-map',
- install_dir : pkgdatadir)
-endif
+install_data('org.freedesktop.locale1.conf',
+ install_dir : dbuspolicydir)
+install_data('org.freedesktop.locale1.service',
+ install_dir : dbussystemservicedir)
+install_data('org.freedesktop.locale1.policy',
+ install_dir : polkitpolicydir)
+install_data('kbd-model-map',
+ 'language-fallback-map',
+ install_dir : pkgdatadir)
# SPDX-License-Identifier: LGPL-2.1-or-later
+if conf.get('ENABLE_LOGIND') != 1
+ subdir_done()
+endif
+
systemd_logind_sources = files(
'logind.c',
)
-
-logind_gperf_c = custom_target(
- 'logind_gperf.c',
- input : 'logind-gperf.gperf',
- output : 'logind-gperf.c',
- command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
-
-generated_sources += logind_gperf_c
-
-liblogind_core_sources = files(
+systemd_logind_extract_sources = files(
'logind-action.c',
'logind-brightness.c',
'logind-button.c',
'logind-wall.c',
)
-liblogind_core_sources += [logind_gperf_c]
+logind_gperf_c = custom_target(
+ 'logind_gperf.c',
+ input : 'logind-gperf.gperf',
+ output : 'logind-gperf.c',
+ command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
-liblogind_core = static_library(
- 'logind-core',
- liblogind_core_sources,
- include_directories : includes,
- dependencies : [libacl,
- userspace],
- build_by_default : false)
+generated_sources += logind_gperf_c
+systemd_logind_extract_sources += [logind_gperf_c]
loginctl_sources = files(
'loginctl.c',
libexec_template + {
'name' : 'systemd-logind',
'dbus' : true,
- 'conditions' : ['ENABLE_LOGIND'],
- 'sources' : systemd_logind_sources,
- 'link_with' : [
- liblogind_core,
- libshared,
- ],
+ 'sources' : [systemd_logind_sources, systemd_logind_extract_sources],
+ 'include_directories' : [libexec_template['include_directories'], include_directories('.')],
+ 'extract' : systemd_logind_extract_sources,
'dependencies' : [
libacl,
threads,
executable_template + {
'name' : 'loginctl',
'public' : true,
- 'conditions' : ['ENABLE_LOGIND'],
'sources' : loginctl_sources,
'dependencies' : [
liblz4_cflags,
executable_template + {
'name' : 'systemd-inhibit',
'public' : true,
- 'conditions' : ['ENABLE_LOGIND'],
'sources' : files('inhibit.c'),
},
libexec_template + {
'name' : 'systemd-user-runtime-dir',
- 'conditions' : ['ENABLE_LOGIND'],
'sources' : files('user-runtime-dir.c'),
},
test_template + {
},
test_template + {
'sources' : files('test-login-tables.c'),
- 'link_with' : [
- liblogind_core,
- libshared,
- ],
+ 'objects' : ['systemd-logind'],
'dependencies' : threads,
},
test_template + {
modules += [
pam_template + {
'name' : 'pam_systemd',
- 'conditions' : [
- 'ENABLE_LOGIND',
- 'HAVE_PAM',
- ],
+ 'conditions' : ['HAVE_PAM'],
'sources' : files('pam_systemd.c'),
'version-script' : meson.current_source_dir() / 'pam_systemd.sym',
},
pam_template + {
'name' : 'pam_systemd_loadkey',
- 'conditions' : [
- 'HAVE_PAM',
- ],
+ 'conditions' : ['HAVE_PAM'],
'sources' : files('pam_systemd_loadkey.c'),
'version-script' : meson.current_source_dir() / 'pam_systemd_loadkey.sym',
},
]
-enable_logind = conf.get('ENABLE_LOGIND') == 1
-
custom_target(
'logind.conf',
input : 'logind.conf.in',
output : 'logind.conf',
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
- install : enable_logind and install_sysconfdir_samples and pkgsysconfdir != 'no',
+ install : install_sysconfdir_samples and pkgsysconfdir != 'no',
install_dir : pkgconfigfiledir)
custom_target(
input : 'systemd-user.in',
output : 'systemd-user',
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
- install : enable_logind and pamconfdir != 'no',
+ install : pamconfdir != 'no',
install_dir : pamconfdir)
-if enable_logind
- install_data('org.freedesktop.login1.conf',
- install_dir : dbuspolicydir)
- install_data('org.freedesktop.login1.service',
- install_dir : dbussystemservicedir)
- install_data('org.freedesktop.login1.policy',
- install_dir : polkitpolicydir)
- install_data('10-systemd-logind-root-ignore-inhibitors.rules.example',
- install_dir : polkitrulesdir)
-endif
+install_data('org.freedesktop.login1.conf',
+ install_dir : dbuspolicydir)
+install_data('org.freedesktop.login1.service',
+ install_dir : dbussystemservicedir)
+install_data('org.freedesktop.login1.policy',
+ install_dir : polkitpolicydir)
+install_data('10-systemd-logind-root-ignore-inhibitors.rules.example',
+ install_dir : polkitrulesdir)
# SPDX-License-Identifier: LGPL-2.1-or-later
-libmachine_core_sources = files(
+if conf.get('ENABLE_MACHINED') != 1
+ subdir_done()
+endif
+
+systemd_machined_sources = files(
+ 'machined.c'
+)
+systemd_machined_extract_sources = files(
'image.c',
'image-dbus.c',
'image-varlink.c',
'operation.c',
)
-libmachine_core = static_library(
- 'machine-core',
- libmachine_core_sources,
- include_directories : includes,
- dependencies : [threads,
- userspace],
- build_by_default : false)
-
executables += [
libexec_template + {
'name' : 'systemd-machined',
'dbus' : true,
- 'conditions' : ['ENABLE_MACHINED'],
- 'sources' : files('machined.c'),
- 'link_with' : [
- libmachine_core,
- libshared,
- ],
+ 'sources' : [systemd_machined_sources, systemd_machined_extract_sources],
+ 'extract' : systemd_machined_extract_sources,
},
executable_template + {
'name' : 'machinectl',
'public' : true,
- 'conditions' : ['ENABLE_MACHINED'],
'sources' : files('machinectl.c'),
'dependencies' : [
liblz4_cflags,
},
test_template + {
'sources' : files('test-machine-tables.c'),
- 'link_with': [
- libmachine_core,
- libshared
- ],
+ 'objects' : ['systemd-machined'],
'dependencies': threads,
},
]
-if conf.get('ENABLE_MACHINED') == 1
- install_data('org.freedesktop.machine1.conf',
- install_dir : dbuspolicydir)
- install_data('org.freedesktop.machine1.service',
- install_dir : dbussystemservicedir)
- install_data('org.freedesktop.machine1.policy',
- install_dir : polkitpolicydir)
-endif
+install_data('org.freedesktop.machine1.conf',
+ install_dir : dbuspolicydir)
+install_data('org.freedesktop.machine1.service',
+ install_dir : dbussystemservicedir)
+install_data('org.freedesktop.machine1.policy',
+ install_dir : polkitpolicydir)
subdir('bpf/sysctl_monitor')
-sources = files(
+systemd_networkd_sources = files(
+ 'networkd.c'
+)
+systemd_networkd_extract_sources = files(
'netdev/bareudp.c',
'netdev/batadv.c',
'netdev/bond.c',
'tc/teql.c',
)
-systemd_networkd_sources = files('networkd.c')
-
systemd_networkd_wait_online_sources = files(
'wait-online/dns-configuration.c',
'wait-online/link.c',
'networkctl-util.c',
)
-network_generator_sources = files(
- 'generator/main.c',
- 'generator/network-generator.c',
-)
-
networkd_network_gperf_gperf = files('networkd-network-gperf.gperf')
networkd_netdev_gperf_gperf = files('netdev/netdev-gperf.gperf')
if conf.get('HAVE_VMLINUX_H') == 1
- sources += sysctl_monitor_skel_h
+ systemd_networkd_extract_sources += sysctl_monitor_skel_h
endif
networkd_gperf_c = custom_target(
command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
generated_sources += [networkd_gperf_c, networkd_network_gperf_c, netdev_gperf_c]
-sources += [networkd_gperf_c, networkd_network_gperf_c, netdev_gperf_c]
+systemd_networkd_extract_sources += [networkd_gperf_c, networkd_network_gperf_c, netdev_gperf_c]
if get_option('link-networkd-shared')
networkd_link_with = [libshared]
network_includes = [libsystemd_network_includes, include_directories(['.', 'netdev', 'tc'])]
-libnetworkd_core = static_library(
- 'networkd-core',
- sources,
- include_directories : network_includes,
- dependencies : userspace,
- link_with : networkd_link_with,
- build_by_default : false)
-
network_test_template = test_template + {
+ 'conditions' : ['ENABLE_NETWORKD'],
'link_with' : [
- libnetworkd_core,
+ networkd_link_with,
libsystemd_network,
],
+ 'objects' : ['systemd-networkd'],
'include_directories' : network_includes,
}
network_fuzz_template = fuzz_template + {
+ 'conditions' : ['ENABLE_NETWORKD'],
'link_with' : [
- libnetworkd_core,
+ networkd_link_with,
libsystemd_network,
],
+ 'objects' : ['systemd-networkd'],
'dependencies' : threads,
'include_directories' : network_includes,
}
'name' : 'systemd-networkd',
'dbus' : true,
'conditions' : ['ENABLE_NETWORKD'],
- 'sources' : systemd_networkd_sources,
+ 'sources' : [systemd_networkd_sources, systemd_networkd_extract_sources],
+ 'extract' : systemd_networkd_extract_sources,
'include_directories' : network_includes,
'link_with' : [
- libnetworkd_core,
libsystemd_network,
networkd_link_with,
],
},
libexec_template + {
'name' : 'systemd-network-generator',
- 'sources' : network_generator_sources,
+ 'sources' : files('generator/network-generator.c', 'generator/main.c'),
+ 'extract' : files('generator/network-generator.c'),
'link_with' : networkd_link_with,
},
test_template + {
- 'sources' : files(
- 'generator/test-network-generator.c',
- 'generator/network-generator.c',
- ),
+ 'sources' : files('generator/test-network-generator.c'),
+ 'objects' : ['systemd-network-generator'],
'suite' : 'network',
},
network_test_template + {
# SPDX-License-Identifier: LGPL-2.1-or-later
-libnspawn_core_sources = files(
+if conf.get('ENABLE_NSPAWN') != 1
+ subdir_done()
+endif
+
+nspawn_sources = files(
+ 'nspawn.c',
'nspawn-bind-user.c',
'nspawn-cgroup.c',
- 'nspawn-expose-ports.c',
- 'nspawn-mount.c',
'nspawn-network.c',
- 'nspawn-oci.c',
'nspawn-register.c',
'nspawn-seccomp.c',
- 'nspawn-settings.c',
'nspawn-setuid.c',
'nspawn-stub-pid1.c',
)
+nspawn_extract_sources = files(
+ 'nspawn-expose-ports.c',
+ 'nspawn-mount.c',
+ 'nspawn-network.c',
+ 'nspawn-oci.c',
+ 'nspawn-settings.c',
+)
nspawn_gperf_c = custom_target(
'nspawn-gperf.c',
command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
generated_sources += nspawn_gperf_c
-libnspawn_core_sources += nspawn_gperf_c
-
-libnspawn_core = static_library(
- 'nspawn-core',
- libnspawn_core_sources,
- include_directories : includes,
- dependencies : [libacl,
- libseccomp,
- libselinux,
- userspace],
- build_by_default : false)
-
-nspawn_libs = [
- libnspawn_core,
- libshared,
-]
+nspawn_extract_sources += nspawn_gperf_c
nspawn_common_template = {
- 'link_with' : nspawn_libs,
'dependencies' : libseccomp,
+ 'objects' : ['systemd-nspawn'],
}
nspawn_test_template = test_template + nspawn_common_template
nspawn_fuzz_template = fuzz_template + nspawn_common_template
executable_template + {
'name' : 'systemd-nspawn',
'public' : true,
- 'conditions' : ['ENABLE_NSPAWN'],
- 'sources' : files('nspawn.c'),
- 'link_with' : nspawn_libs,
+ 'sources' : [nspawn_sources, nspawn_extract_sources],
+ 'include_directories' : [
+ executable_template['include_directories'],
+ include_directories('.')
+ ],
+ 'extract' : nspawn_extract_sources,
'dependencies' : [
libblkid,
libseccomp,
+ libselinux,
],
},
nspawn_test_template + {
subdir('bpf/userns_restrict')
-systemd_nsresourcework_sources = files(
- 'nsresourcework.c',
- 'userns-restrict.c',
- 'userns-registry.c',
-)
-
systemd_nsresourced_sources = files(
'nsresourced-manager.c',
'nsresourced.c',
+)
+systemd_nsresourced_extract_sources = files(
'userns-restrict.c',
'userns-registry.c',
)
-
-userns_restrict_include = include_directories('.')
+systemd_nsresourcework_sources = files(
+ 'nsresourcework.c'
+)
+test_userns_restrict_sources = files(
+ 'test-userns-restrict.c'
+)
if conf.get('HAVE_VMLINUX_H') == 1
- systemd_nsresourcework_sources += userns_restrict_skel_h
systemd_nsresourced_sources += userns_restrict_skel_h
-
- executables += [
- test_template + {
- 'sources' : files('test-userns-restrict.c', 'userns-restrict.c') + userns_restrict_skel_h,
- 'conditions' : ['HAVE_VMLINUX_H'],
- 'include_directories' : [ includes, userns_restrict_include ],
- },
- ]
+ systemd_nsresourcework_sources += userns_restrict_skel_h
+ test_userns_restrict_sources += userns_restrict_skel_h
endif
executables += [
libexec_template + {
- 'name' : 'systemd-nsresourcework',
- 'sources' : systemd_nsresourcework_sources,
+ 'name' : 'systemd-nsresourced',
+ 'sources' : [systemd_nsresourced_sources, systemd_nsresourced_extract_sources],
+ 'include_directories' : [libexec_template['include_directories'], include_directories('.')],
+ 'extract' : systemd_nsresourced_extract_sources,
'dependencies' : threads,
- 'include_directories' : [ includes, userns_restrict_include ],
},
libexec_template + {
- 'name' : 'systemd-nsresourced',
- 'sources' : systemd_nsresourced_sources,
+ 'name' : 'systemd-nsresourcework',
+ 'sources' : systemd_nsresourcework_sources,
'dependencies' : threads,
- 'include_directories' : [ includes, userns_restrict_include ],
+ 'objects' : ['systemd-nsresourced'],
+ },
+ test_template + {
+ 'sources' : test_userns_restrict_sources,
+ 'conditions' : ['HAVE_VMLINUX_H'],
+ 'objects' : ['systemd-nsresourced'],
},
]
# SPDX-License-Identifier: LGPL-2.1-or-later
+if conf.get('ENABLE_OOMD') != 1
+ subdir_done()
+endif
+
systemd_oomd_sources = files(
'oomd.c',
'oomd-conf.c',
'oomd-manager.c',
'oomd-manager-bus.c',
+)
+systemd_oomd_extract_sources = files(
'oomd-util.c',
)
libexec_template + {
'name' : 'systemd-oomd',
'dbus' : true,
- 'conditions' : ['ENABLE_OOMD'],
- 'sources' : systemd_oomd_sources,
+ 'sources' : [systemd_oomd_sources, systemd_oomd_extract_sources],
+ 'extract' : systemd_oomd_extract_sources,
'dependencies' : libatomic,
},
executable_template + {
'name' : 'oomctl',
'public' : true,
- 'conditions' : ['ENABLE_OOMD'],
'sources' : files('oomctl.c'),
},
test_template + {
- 'sources' : files(
- 'test-oomd-util.c',
- 'oomd-util.c',
- ),
+ 'sources' : files('test-oomd-util.c'),
+ 'objects' : ['systemd-oomd'],
'dependencies' : libatomic,
},
]
-if conf.get('ENABLE_OOMD') == 1
- install_data('org.freedesktop.oom1.conf',
- install_dir : dbuspolicydir)
+install_data('org.freedesktop.oom1.conf',
+ install_dir : dbuspolicydir)
- install_data('org.freedesktop.oom1.service',
- install_dir : dbussystemservicedir)
+install_data('org.freedesktop.oom1.service',
+ install_dir : dbussystemservicedir)
- if install_sysconfdir_samples
- install_data('oomd.conf',
- install_dir : pkgconfigfiledir)
- endif
+if install_sysconfdir_samples
+ install_data('oomd.conf',
+ install_dir : pkgconfigfiledir)
endif
# SPDX-License-Identifier: LGPL-2.1-or-later
+if conf.get('ENABLE_RESOLVE') != 1
+ subdir_done()
+endif
+
systemd_resolved_sources = files(
+ 'resolved.c',
+)
+systemd_resolved_extract_sources = files(
'dns-type.c',
'resolved-bus.c',
'resolved-conf.c',
command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
generated_sources += [dns_type_from_name_h, dns_type_to_name_h, resolved_gperf_c, resolved_dnssd_gperf_c]
-systemd_resolved_sources += [dns_type_from_name_h, dns_type_to_name_h, resolved_gperf_c, resolved_dnssd_gperf_c]
+systemd_resolved_extract_sources += [dns_type_from_name_h, dns_type_to_name_h, resolved_gperf_c, resolved_dnssd_gperf_c]
if conf.get('ENABLE_DNS_OVER_TLS') == 1
- systemd_resolved_sources += files(
+ systemd_resolved_extract_sources += files(
'resolved-dnstls.c',
)
endif
-resolved_core = static_library(
- 'systemd-resolved-core',
- systemd_resolved_sources,
- include_directories : includes,
- dependencies : userspace,
- build_by_default : false)
-
resolve_common_template = {
- 'link_with' : [
- libshared,
- resolved_core,
- ],
'dependencies' : [
libopenssl,
libm,
],
}
-resolve_test_template = test_template + resolve_common_template
-resolve_fuzz_template = fuzz_template + resolve_common_template
+resolve_test_template = test_template + resolve_common_template + {'objects' : ['systemd-resolved']}
+resolve_fuzz_template = fuzz_template + resolve_common_template + {'objects' : ['systemd-resolved']}
executables += [
libexec_template + resolve_common_template + {
'name' : 'systemd-resolved',
'dbus' : true,
- 'conditions' : ['ENABLE_RESOLVE'],
- 'sources' : files('resolved.c'),
+ 'sources' : [systemd_resolved_sources, systemd_resolved_extract_sources],
+ 'include_directories' : [libexec_template['include_directories'], include_directories('.')],
+ 'extract' : systemd_resolved_extract_sources,
},
executable_template + resolve_common_template + {
'name' : 'resolvectl',
'public' : true,
- 'conditions' : ['ENABLE_RESOLVE'],
'sources' : files(
'resolvconf-compat.c',
'resolvectl.c',
'dependencies' : resolve_common_template['dependencies'] + [
libidn,
],
+ 'objects' : ['systemd-resolved'],
},
resolve_test_template + {
'sources' : files('test-resolve-tables.c'),
'sources' : files('test-dns-answer.c'),
},
resolve_test_template + {
- 'sources' : files(
- 'test-dns-cache.c',
- 'resolved-dns-cache.c'
- ),
+ 'sources' : files('test-dns-cache.c'),
},
resolve_test_template + {
'sources' : files('test-dns-packet.c'),
'sources' : files('test-dns-question.c'),
},
resolve_test_template + {
- 'sources' : files(
- 'test-resolved-etc-hosts.c',
- 'resolved-etc-hosts.c',
- ),
+ 'sources' : files('test-resolved-etc-hosts.c'),
},
resolve_test_template + {
'sources' : files('test-resolved-packet.c'),
'sources' : files('fuzz-dns-packet.c'),
},
resolve_fuzz_template + {
- 'sources' : files(
- 'fuzz-etc-hosts.c',
- 'resolved-etc-hosts.c',
- ),
+ 'sources' : files('fuzz-etc-hosts.c'),
},
resolve_fuzz_template + {
'sources' : files('fuzz-resource-record.c'),
},
]
-if conf.get('ENABLE_RESOLVE') == 1
- install_data('org.freedesktop.resolve1.conf',
- install_dir : dbuspolicydir)
- install_data('org.freedesktop.resolve1.service',
- install_dir : dbussystemservicedir)
- install_data('org.freedesktop.resolve1.policy',
- install_dir : polkitpolicydir)
- install_data('resolv.conf',
- install_dir : libexecdir)
-
- install_symlink('resolvconf',
- pointing_to : sbin_to_bin + 'resolvectl',
- install_dir : sbindir)
-
- # symlink for backwards compatibility after rename
- install_symlink('systemd-resolve',
- pointing_to : 'resolvectl',
- install_dir : bindir)
-endif
+install_data('org.freedesktop.resolve1.conf',
+ install_dir : dbuspolicydir)
+install_data('org.freedesktop.resolve1.service',
+ install_dir : dbussystemservicedir)
+install_data('org.freedesktop.resolve1.policy',
+ install_dir : polkitpolicydir)
+install_data('resolv.conf',
+ install_dir : libexecdir)
+
+install_symlink('resolvconf',
+ pointing_to : sbin_to_bin + 'resolvectl',
+ install_dir : sbindir)
+
+# symlink for backwards compatibility after rename
+install_symlink('systemd-resolve',
+ pointing_to : 'resolvectl',
+ install_dir : bindir)
custom_target(
'resolved.conf',
input : 'resolved.conf.in',
output : 'resolved.conf',
command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
- install : conf.get('ENABLE_RESOLVE') == 1 and install_sysconfdir_samples,
+ install : install_sysconfdir_samples,
install_dir : pkgconfigfiledir)
'detach-dm.c',
'detach-loopback.c',
'detach-md.c',
- 'detach-swap.c',
'shutdown.c',
+)
+systemd_shutdown_extract_sources = files(
+ 'detach-swap.c',
'umount.c',
)
executables += [
libexec_template + {
'name' : 'systemd-shutdown',
- 'sources' : systemd_shutdown_sources,
+ 'sources' : [systemd_shutdown_sources, systemd_shutdown_extract_sources],
+ 'extract' : systemd_shutdown_extract_sources,
'dependencies' : libmount,
},
libexec_template + {
'name' : 'systemd-shutdown.standalone',
- 'sources' : systemd_shutdown_sources,
+ 'sources' : [systemd_shutdown_sources, systemd_shutdown_extract_sources],
'c_args' : '-DSTANDALONE',
'link_with' : [
libbasic_static,
'install' : have_standalone_binaries,
},
test_template + {
- 'sources' : files(
- 'test-umount.c',
- 'detach-swap.c',
- 'umount.c',
- ),
+ 'sources' : files('test-umount.c'),
+ 'objects' : ['systemd-shutdown'],
'dependencies' : libmount,
},
]
# SPDX-License-Identifier: LGPL-2.1-or-later
+sleep_sources = files(
+ 'sleep.c',
+)
+sleep_extract_sources = files(
+ 'battery-capacity.c',
+)
+
executables += [
libexec_template + {
'name' : 'systemd-sleep',
- 'sources' : files(
- 'sleep.c',
- 'battery-capacity.c',
- ),
+ 'sources' : [sleep_sources, sleep_extract_sources],
+ 'include_directories' : [libexec_template['include_directories'], include_directories('.')],
+ 'extract' : sleep_extract_sources,
},
test_template + {
- 'sources' : files(
- 'test-battery-capacity.c',
- 'battery-capacity.c',
- ),
+ 'sources' : files('test-battery-capacity.c'),
+ 'objects' : ['systemd-sleep'],
},
]
# SPDX-License-Identifier: LGPL-2.1-or-later
-sources = files(
- 'timesyncd-conf.c',
- 'timesyncd-manager.c',
- 'timesyncd-server.c',
-)
+if conf.get('ENABLE_TIMESYNCD') != 1
+ subdir_done()
+endif
-systemd_timesyncd_sources = files(
+timesyncd_sources = files(
'timesyncd.c',
'timesyncd-bus.c',
)
+timesyncd_extract_sources = files(
+ 'timesyncd-conf.c',
+ 'timesyncd-manager.c',
+ 'timesyncd-server.c',
+)
timesyncd_gperf_c = custom_target(
'timesyncd-gperf.c',
command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
generated_sources += timesyncd_gperf_c
-sources += timesyncd_gperf_c
+timesyncd_extract_sources += timesyncd_gperf_c
if get_option('link-timesyncd-shared')
timesyncd_link_with = [libshared]
libshared_static]
endif
-libtimesyncd_core = static_library(
- 'timesyncd-core',
- sources,
- include_directories : includes,
- dependencies : userspace,
- link_with : timesyncd_link_with,
- build_by_default : false)
-
executables += [
libexec_template + {
'name' : 'systemd-timesyncd',
- 'conditions' : ['ENABLE_TIMESYNCD'],
- 'sources' : systemd_timesyncd_sources,
- 'link_with' : libtimesyncd_core,
+ 'sources' : [timesyncd_sources, timesyncd_extract_sources],
+ 'include_directories' : [libexec_template['include_directories'], include_directories('.')],
+ 'extract' : timesyncd_extract_sources,
+ 'link_with' : timesyncd_link_with,
'dependencies' : [
libm,
threads,
},
libexec_template + {
'name' : 'systemd-time-wait-sync',
- 'conditions' : ['ENABLE_TIMESYNCD'],
'sources' : files('wait-sync.c'),
- 'link_with' : libtimesyncd_core,
+ 'objects' : ['systemd-timesyncd'],
+ 'dependencies' : libm,
},
test_template + {
'sources' : files('test-timesync.c'),
- 'link_with' : [
- libshared,
- libtimesyncd_core,
- ],
+ 'objects' : ['systemd-timesyncd'],
'dependencies' : libm,
},
]
install : conf.get('ENABLE_TIMESYNCD') == 1 and install_sysconfdir_samples,
install_dir : pkgconfigfiledir)
-if conf.get('ENABLE_TIMESYNCD') == 1
- install_data('org.freedesktop.timesync1.conf',
- install_dir : dbuspolicydir)
- install_data('org.freedesktop.timesync1.service',
- install_dir : dbussystemservicedir)
- install_data('80-systemd-timesync.list',
- install_dir : ntpservicelistdir)
- install_data('org.freedesktop.timesync1.policy',
- install_dir : polkitpolicydir)
-endif
+install_data('org.freedesktop.timesync1.conf',
+ install_dir : dbuspolicydir)
+install_data('org.freedesktop.timesync1.service',
+ install_dir : dbussystemservicedir)
+install_data('80-systemd-timesync.list',
+ install_dir : ntpservicelistdir)
+install_data('org.freedesktop.timesync1.policy',
+ install_dir : polkitpolicydir)
# SPDX-License-Identifier: LGPL-2.1-or-later
+if conf.get('ENABLE_TMPFILES') != 1
+ subdir_done()
+endif
+
systemd_tmpfiles_sources = files(
'tmpfiles.c',
+)
+systemd_tmpfiles_extract_sources = files(
'offline-passwd.c',
)
executable_template + {
'name' : 'systemd-tmpfiles',
'public' : true,
- 'conditions' : ['ENABLE_TMPFILES'],
- 'sources' : systemd_tmpfiles_sources,
+ 'sources' : [systemd_tmpfiles_sources, systemd_tmpfiles_extract_sources],
+ 'extract' : systemd_tmpfiles_extract_sources,
'dependencies' : libacl,
},
executable_template + {
'name' : 'systemd-tmpfiles.standalone',
'public' : have_standalone_binaries,
- 'conditions' : ['ENABLE_TMPFILES'],
- 'sources' : systemd_tmpfiles_sources,
+ 'sources' : [systemd_tmpfiles_sources, systemd_tmpfiles_extract_sources],
'c_args' : '-DSTANDALONE',
'link_with' : [
libbasic_static,
'install' : have_standalone_binaries,
},
test_template + {
- 'sources' : files(
- 'test-offline-passwd.c',
- 'offline-passwd.c',
- ),
+ 'sources' : files('test-offline-passwd.c'),
+ 'objects' : ['systemd-tmpfiles'],
},
]
'udevadm.c',
'udevd.c',
)
-
-libudevd_core_sources = files(
+udevadm_extract_sources = files(
'net/link-config.c',
'udev-builtin.c',
'udev-builtin-btrfs.c',
)
if conf.get('HAVE_KMOD') == 1
- libudevd_core_sources += files('udev-builtin-kmod.c')
+ udevadm_extract_sources += files('udev-builtin-kmod.c')
endif
if conf.get('HAVE_BLKID') == 1
- libudevd_core_sources += files('udev-builtin-blkid.c')
+ udevadm_extract_sources += files('udev-builtin-blkid.c')
endif
if conf.get('HAVE_ACL') == 1
- libudevd_core_sources += files('udev-builtin-uaccess.c')
+ udevadm_extract_sources += files('udev-builtin-uaccess.c')
endif
############################################################
output : 'link-config-gperf.c',
command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
+udevadm_extract_sources += link_config_gperf_c
generated_sources += link_config_gperf_c
############################################################
############################################################
-libudevd_core = static_library(
- 'udev-core',
- libudevd_core_sources,
- link_config_gperf_c,
- keyboard_keys_from_name_h,
- include_directories : includes + include_directories('net'),
- link_with : udev_link_with,
- dependencies : [libblkid,
- libkmod_cflags,
- userspace],
- build_by_default : false)
-
udev_dependencies = [
libacl,
libblkid,
}
udev_common_template = {
- 'link_with' : [
- libshared,
- libudevd_core,
- ],
+ 'objects' : ['udevadm'],
'dependencies' : [
libacl,
+ libblkid,
threads,
],
}
executable_template + {
'name' : 'udevadm',
'public' : true,
- 'sources' : udevadm_sources,
- 'link_with' : [libudevd_core],
+ 'sources' : [
+ udevadm_sources,
+ udevadm_extract_sources,
+ keyboard_keys_from_name_h,
+ ],
+ 'include_directories' : [
+ libexec_template['include_directories'],
+ include_directories('.', 'net'),
+ ],
'dependencies' : udev_dependencies,
'install_rpath' : udev_rpath,
'install_tag' : 'udev',
+ 'extract' : udevadm_extract_sources,
},
udev_plugin_template + {
'name' : 'ata_id',
'fido_id/fido_id.c',
'fido_id/fido_id_desc.c',
),
+ 'extract' : files('fido_id/fido_id_desc.c'),
},
udev_plugin_template + {
'name' : 'iocost',
executables += udev_binaries_dict
executables += [
test_template + {
- 'sources' : files(
- 'fido_id/test-fido-id-desc.c',
- 'fido_id/fido_id_desc.c',
- ),
+ 'sources' : files('fido_id/test-fido-id-desc.c'),
+ 'objects' : ['fido_id'],
'suite' : 'udev',
},
udev_test_template + {
'sources' : files('net/test-link-config-tables.c'),
- 'include_directories' : includes + include_directories('.'),
'suite' : 'udev',
},
udev_test_template + {
'sources' : files('test-udev-spawn.c'),
},
fuzz_template + {
- 'sources' : files(
- 'fido_id/fuzz-fido-id-desc.c',
- 'fido_id/fido_id_desc.c',
- ),
+ 'sources' : files('fido_id/fuzz-fido-id-desc.c'),
+ 'objects' : ['fido_id'],
},
udev_fuzz_template + {
'sources' : files('net/fuzz-link-parser.c'),
- 'include_directories' : includes + include_directories('.'),
},
udev_fuzz_template + {
'sources' : files('fuzz-udev-rule-parse-value.c'),
subdir_done()
endif
-libvmspawn_core_sources = files(
+vmspawn_sources = files(
+ 'vmspawn.c',
'vmspawn-settings.c',
- 'vmspawn-util.c',
'vmspawn-scope.c',
'vmspawn-mount.c',
'vmspawn-register.c',
)
-
-libvmspawn_core = static_library(
- 'vmspawn-core',
- libvmspawn_core_sources,
- include_directories : includes,
- dependencies : [userspace],
- build_by_default : false)
-
-vmspawn_libs = [
- libvmspawn_core,
- libshared,
-]
-
-vmspawn_test_template = test_template + {
- 'link_with' : [vmspawn_libs],
-}
+vmspawn_extract_sources = files(
+ 'vmspawn-util.c',
+)
executables += [
executable_template + {
'name' : 'systemd-vmspawn',
'public' : true,
- 'sources' : files('vmspawn.c'),
- 'link_with' : vmspawn_libs,
+ 'sources' : [vmspawn_sources, vmspawn_extract_sources],
+ 'extract' : vmspawn_extract_sources,
'dependencies' : [libblkid]
},
- vmspawn_test_template + {
+ test_template + {
'sources' : files('test-vmspawn-util.c'),
+ 'objects' : ['systemd-vmspawn'],
},
]
# SPDX-License-Identifier: LGPL-2.1-or-later
+if conf.get('ENABLE_XDG_AUTOSTART') != 1
+ subdir_done()
+endif
+
systemd_xdg_autostart_generator_sources = files(
'xdg-autostart-generator.c',
+)
+systemd_xdg_autostart_generator_extract_sources = files(
'xdg-autostart-service.c',
)
executables += [
executable_template + {
'name' : 'systemd-xdg-autostart-generator',
- 'conditions' : ['ENABLE_XDG_AUTOSTART'],
- 'sources' : systemd_xdg_autostart_generator_sources,
+ 'sources' : [
+ systemd_xdg_autostart_generator_sources,
+ systemd_xdg_autostart_generator_extract_sources,
+ ],
+ 'extract' : systemd_xdg_autostart_generator_extract_sources,
'install_dir' : usergeneratordir,
},
libexec_template + {
'name' : 'systemd-xdg-autostart-condition',
- 'conditions' : ['ENABLE_XDG_AUTOSTART'],
'sources' : files('xdg-autostart-condition.c'),
},
test_template + {
- 'sources' : files(
- 'test-xdg-autostart.c',
- 'xdg-autostart-service.c',
- ),
+ 'sources' : files('test-xdg-autostart.c'),
+ 'objects' : ['systemd-xdg-autostart-generator'],
},
fuzz_template + {
- 'sources' : files(
- 'fuzz-xdg-desktop.c',
- 'xdg-autostart-service.c',
- ),
+ 'sources' : files('fuzz-xdg-desktop.c'),
+ 'objects' : ['systemd-xdg-autostart-generator'],
},
]
if [ -z "$FUZZING_ENGINE" ]; then
meson_args+=("-Dllvm-fuzz=true")
else
- meson_args+=("-Doss-fuzz=true" "--auto-features=disabled")
+ meson_args+=("-Doss-fuzz=true" "--auto-features=disabled" "-Dnspawn=enabled" "-Dresolve=true")
apt-get update
apt-get install -y gperf m4 gettext python3-pip \