diff options
Diffstat (limited to 'src/core/meson.build')
-rw-r--r-- | src/core/meson.build | 255 |
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]], +] |