summaryrefslogtreecommitdiffstats
path: root/src/core/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/meson.build')
-rw-r--r--src/core/meson.build255
1 files changed, 255 insertions, 0 deletions
diff --git a/src/core/meson.build b/src/core/meson.build
new file mode 100644
index 0000000..6fc9089
--- /dev/null
+++ b/src/core/meson.build
@@ -0,0 +1,255 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+libcore_sources = files(
+ 'apparmor-setup.c',
+ 'apparmor-setup.h',
+ 'audit-fd.c',
+ 'audit-fd.h',
+ 'automount.c',
+ 'automount.h',
+ 'bpf-devices.c',
+ 'bpf-devices.h',
+ 'bpf-firewall.c',
+ 'bpf-firewall.h',
+ 'bpf-foreign.c',
+ 'bpf-foreign.h',
+ 'bpf-lsm.c',
+ 'bpf-lsm.h',
+ 'bpf-socket-bind.c',
+ 'bpf-socket-bind.h',
+ 'cgroup.c',
+ 'cgroup.h',
+ 'core-varlink.c',
+ 'core-varlink.h',
+ 'dbus-automount.c',
+ 'dbus-automount.h',
+ 'dbus-cgroup.c',
+ 'dbus-cgroup.h',
+ 'dbus-device.c',
+ 'dbus-device.h',
+ 'dbus-execute.c',
+ 'dbus-execute.h',
+ 'dbus-job.c',
+ 'dbus-job.h',
+ 'dbus-kill.c',
+ 'dbus-kill.h',
+ 'dbus-manager.c',
+ 'dbus-manager.h',
+ 'dbus-mount.c',
+ 'dbus-mount.h',
+ 'dbus-path.c',
+ 'dbus-path.h',
+ 'dbus-scope.c',
+ 'dbus-scope.h',
+ 'dbus-service.c',
+ 'dbus-service.h',
+ 'dbus-slice.c',
+ 'dbus-slice.h',
+ 'dbus-socket.c',
+ 'dbus-socket.h',
+ 'dbus-swap.c',
+ 'dbus-swap.h',
+ 'dbus-target.c',
+ 'dbus-target.h',
+ 'dbus-timer.c',
+ 'dbus-timer.h',
+ 'dbus-unit.c',
+ 'dbus-unit.h',
+ 'dbus-util.c',
+ 'dbus-util.h',
+ 'dbus.c',
+ 'dbus.h',
+ 'device.c',
+ 'device.h',
+ 'dynamic-user.c',
+ 'dynamic-user.h',
+ 'efi-random.c',
+ 'efi-random.h',
+ 'emergency-action.c',
+ 'emergency-action.h',
+ 'execute.c',
+ 'execute.h',
+ 'generator-setup.c',
+ 'generator-setup.h',
+ 'ima-setup.c',
+ 'ima-setup.h',
+ 'import-creds.c',
+ 'import-creds.h',
+ 'job.c',
+ 'job.h',
+ 'kill.c',
+ 'kill.h',
+ 'kmod-setup.c',
+ 'kmod-setup.h',
+ 'load-dropin.c',
+ 'load-dropin.h',
+ 'load-fragment.c',
+ 'load-fragment.h',
+ 'manager-dump.c',
+ 'manager-dump.h',
+ 'manager-serialize.c',
+ 'manager-serialize.h',
+ 'manager.c',
+ 'manager.h',
+ 'mount.c',
+ 'mount.h',
+ 'namespace.c',
+ 'namespace.h',
+ 'path.c',
+ 'path.h',
+ 'restrict-ifaces.c',
+ 'restrict-ifaces.h',
+ 'scope.c',
+ 'scope.h',
+ 'selinux-access.c',
+ 'selinux-access.h',
+ 'selinux-setup.c',
+ 'selinux-setup.h',
+ 'service.c',
+ 'service.h',
+ 'show-status.c',
+ 'show-status.h',
+ 'slice.c',
+ 'slice.h',
+ 'smack-setup.c',
+ 'smack-setup.h',
+ 'socket.c',
+ 'socket.h',
+ 'swap.c',
+ 'swap.h',
+ 'target.c',
+ 'target.h',
+ 'timer.c',
+ 'timer.h',
+ 'transaction.c',
+ 'transaction.h',
+ 'unit-dependency-atom.c',
+ 'unit-dependency-atom.h',
+ 'unit-printf.c',
+ 'unit-printf.h',
+ 'unit-serialize.c',
+ 'unit-serialize.h',
+ 'unit.c',
+ 'unit.h',
+)
+
+if conf.get('BPF_FRAMEWORK') == 1
+ libcore_sources += files(
+ 'bpf-util.c',
+ 'bpf-util.h',
+ )
+endif
+
+subdir('bpf')
+
+subdir('bpf/socket_bind')
+if conf.get('BPF_FRAMEWORK') == 1
+ libcore_sources += [socket_bind_skel_h]
+ subdir('bpf/restrict_fs')
+ libcore_sources += [restrict_fs_skel_h]
+endif
+
+subdir('bpf/restrict_ifaces')
+if conf.get('BPF_FRAMEWORK') == 1
+ libcore_sources += [restrict_ifaces_skel_h]
+endif
+
+load_fragment_gperf_gperf = custom_target(
+ 'load-fragment-gperf.gperf',
+ input : 'load-fragment-gperf.gperf.in',
+ output: 'load-fragment-gperf.gperf',
+ command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'])
+
+load_fragment_gperf_c = custom_target(
+ 'load-fragment-gperf.c',
+ input : load_fragment_gperf_gperf,
+ output : 'load-fragment-gperf.c',
+ command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@'])
+
+awkscript = 'load-fragment-gperf-nulstr.awk'
+load_fragment_gperf_nulstr_c = custom_target(
+ 'load-fragment-gperf-nulstr.c',
+ input : [awkscript, load_fragment_gperf_gperf],
+ output : 'load-fragment-gperf-nulstr.c',
+ command : [awk, '-f', '@INPUT0@', '@INPUT1@'],
+ capture : true)
+
+libcore_name = 'systemd-core-@0@'.format(shared_lib_tag)
+
+libcore = shared_library(
+ libcore_name,
+ libcore_sources,
+ load_fragment_gperf_c,
+ load_fragment_gperf_nulstr_c,
+ include_directories : includes,
+ c_args : ['-fvisibility=default'],
+ link_args : ['-shared',
+ '-Wl,--version-script=' + libshared_sym_path],
+ link_with : libshared,
+ dependencies : [versiondep,
+ threads,
+ libdl,
+ librt,
+ libseccomp,
+ libpam,
+ libaudit,
+ libkmod,
+ libapparmor,
+ libselinux,
+ libmount,
+ libblkid,
+ libacl],
+ install : true,
+ install_dir : rootpkglibdir)
+
+core_includes = [includes, include_directories('.')]
+
+systemd_sources = files(
+ 'main.c',
+ 'main.h',
+ 'crash-handler.c',
+ 'crash-handler.h',
+)
+
+in_files = [['system.conf', pkgsysconfdir],
+ ['user.conf', pkgsysconfdir],
+ ['systemd.pc', pkgconfigdatadir],
+ ['org.freedesktop.systemd1.policy', polkitpolicydir]]
+
+foreach item : in_files
+ file = item[0]
+ dir = item[1]
+
+ custom_target(
+ file,
+ input : file + '.in',
+ output: file,
+ command : [jinja2_cmdline, '@INPUT@', '@OUTPUT@'],
+ install : (dir == pkgsysconfdir) ? install_sysconfdir_samples : (dir != 'no'),
+ install_dir : dir)
+endforeach
+
+install_data('org.freedesktop.systemd1.conf',
+ install_dir : dbuspolicydir)
+install_data('org.freedesktop.systemd1.service',
+ install_dir : dbussystemservicedir)
+
+meson.add_install_script('sh', '-c', mkdir_p.format(systemshutdowndir))
+meson.add_install_script('sh', '-c', mkdir_p.format(systemsleepdir))
+meson.add_install_script('sh', '-c', mkdir_p.format(systemgeneratordir))
+meson.add_install_script('sh', '-c', mkdir_p.format(usergeneratordir))
+
+if install_sysconfdir
+ meson.add_install_script('sh', '-c', mkdir_p.format(pkgsysconfdir / 'system'))
+ meson.add_install_script('sh', '-c', mkdir_p.format(pkgsysconfdir / 'user'))
+ meson.add_install_script('sh', '-c', mkdir_p.format(sysconfdir / 'xdg/systemd'))
+endif
+
+############################################################
+
+fuzzers += [
+ [files('fuzz-unit-file.c'),
+ [libcore,
+ libshared],
+ [libmount]],
+]