diff options
Diffstat (limited to 'daemon/meson.build')
-rw-r--r-- | daemon/meson.build | 213 |
1 files changed, 213 insertions, 0 deletions
diff --git a/daemon/meson.build b/daemon/meson.build new file mode 100644 index 0000000..2e61b64 --- /dev/null +++ b/daemon/meson.build @@ -0,0 +1,213 @@ +# D-Bus interfaces +dbus_gen = gnome.gdbus_codegen('gdm-dbus-glue', + 'org.freedesktop.DBus.xml', + namespace: 'GdmDBus', + interface_prefix: 'org.freedesktop.DBus', + autocleanup: 'all', +) +display_dbus_gen = gnome.gdbus_codegen('gdm-display-glue', + 'gdm-display.xml', + namespace: 'GdmDBus', + interface_prefix: 'org.gnome.DisplayManager', + autocleanup: 'all', +) +local_display_dbus_gen = gnome.gdbus_codegen('gdm-local-display-glue', + 'gdm-local-display.xml', + namespace: 'GdmDBus', + interface_prefix: 'org.gnome.DisplayManager', + autocleanup: 'all', +) +local_display_factory_dbus_gen = gnome.gdbus_codegen('gdm-local-display-factory-glue', + 'gdm-local-display-factory.xml', + namespace: 'GdmDBus', + interface_prefix: 'org.gnome.DisplayManager', + autocleanup: 'all', +) +manager_dbus_gen = gnome.gdbus_codegen('gdm-manager-glue', + 'gdm-manager.xml', + namespace: 'GdmDBus', + interface_prefix: 'org.gnome.DisplayManager', + autocleanup: 'all', +) +session_dbus_gen = gnome.gdbus_codegen('gdm-session-glue', + 'gdm-session.xml', + namespace: 'GdmDBus', + interface_prefix: 'org.gnome.DisplayManager', + autocleanup: 'all', +) +session_worker_dbus_gen = gnome.gdbus_codegen('gdm-session-worker-glue', + 'gdm-session-worker.xml', + namespace: 'GdmDBus', + interface_prefix: 'org.gnome.DisplayManager', + autocleanup: 'all', +) + +gdm_session_enums = gnome.mkenums('gdm-session-enum-types', + h_template: 'gdm-session-enum-types.h.in', + c_template: 'gdm-session-enum-types.c.in', + sources: 'gdm-session.h', +) +gdm_session_worker_enums = gnome.mkenums('gdm-session-worker-enum-types', + h_template: 'gdm-session-worker-enum-types.h.in', + c_template: 'gdm-session-worker-enum-types.c.in', + sources: 'gdm-session-worker.h', +) + +# Daemons deps +gdm_daemon_deps = [ + libgdmcommon_dep, + accountsservice_dep, + gobject_dep, + gio_dep, + gio_unix_dep, + libpam_dep, + x_deps, + xcb_dep, +] + +if xdmcp_dep.found() and get_option('tcp-wrappers') + gdm_daemon_deps += libwrap_dep +endif + +# test-session-client +test_session_client_src = [ + 'test-session-client.c', + session_dbus_gen, + manager_dbus_gen, +] + +test_session_client = executable('test-session-client', + test_session_client_src, + dependencies: gdm_daemon_deps, + include_directories: config_h_dir, +) + +# Session worker +gdm_session_worker_src = [ + 'session-worker-main.c', + 'gdm-session.c', + 'gdm-session-settings.c', + 'gdm-session-auditor.c', + 'gdm-session-record.c', + 'gdm-session-worker.c', + 'gdm-session-worker-job.c', + 'gdm-session-worker-common.c', + 'gdm-dbus-util.c', + dbus_gen, + session_dbus_gen, + session_worker_dbus_gen, + gdm_session_enums, + gdm_session_worker_enums, +] + +gdm_session_worker_deps = [ + gdm_daemon_deps, +] + +gdm_session_worker_includes = [ + config_h_dir, +] + +if pam_extensions_supported + gdm_session_worker_src += '../pam-extensions/gdm-pam-extensions.h' + gdm_session_worker_includes += pam_extensions_inc +endif + +if libaudit_dep.found() + gdm_session_worker_deps += libaudit_dep + + gdm_session_worker_src += [ + 'gdm-session-linux-auditor.c', + ] +endif + +if have_adt + gdm_session_worker_src += 'gdm-session-solaris-auditor.c' +endif + +gdm_session_worker = executable('gdm-session-worker', + gdm_session_worker_src, + dependencies: gdm_session_worker_deps, + include_directories: gdm_session_worker_includes, + install: true, + install_dir: get_option('libexecdir'), +) + +# Wayland session +gdm_wayland_session_src = [ + 'gdm-wayland-session.c', + manager_dbus_gen, +] + +gdm_wayland_session = executable('gdm-wayland-session', + gdm_wayland_session_src, + dependencies: gdm_daemon_deps, + include_directories: gdm_session_worker_includes, + install: true, + install_dir: get_option('libexecdir'), +) + +# X session +gdm_x_session_src = [ + 'gdm-x-session.c', + manager_dbus_gen, +] + +gdm_x_session = executable('gdm-x-session', + gdm_x_session_src, + dependencies: gdm_daemon_deps, + include_directories: gdm_session_worker_includes, + install: true, + install_dir: get_option('libexecdir'), +) + +# GDM daemon +gdm_daemon_sources = files( + 'gdm-dbus-util.c', + 'gdm-display-access-file.c', + 'gdm-display-factory.c', + 'gdm-display-store.c', + 'gdm-display.c', + 'gdm-launch-environment.c', + 'gdm-legacy-display.c', + 'gdm-local-display-factory.c', + 'gdm-local-display.c', + 'gdm-manager.c', + 'gdm-server.c', + 'gdm-session-record.c', + 'gdm-session-worker-common.c', + 'gdm-session-worker-job.c', + 'gdm-session.c', + 'main.c', +) + +gdm_daemon_gen_sources = [ + display_dbus_gen, + local_display_factory_dbus_gen, + manager_dbus_gen, + local_display_dbus_gen, + session_dbus_gen, + session_worker_dbus_gen, + gdm_session_enums, +] + +if xdmcp_dep.found() + gdm_daemon_deps += xdmcp_dep + + gdm_daemon_sources = [ + gdm_daemon_sources, + files( + 'gdm-xdmcp-display-factory.c', + 'gdm-xdmcp-display.c', + 'gdm-xdmcp-chooser-display.c', + ), + ] +endif + +gdm_daemon = executable('gdm', + [ gdm_daemon_sources, gdm_daemon_gen_sources ], + dependencies: gdm_daemon_deps, + include_directories: config_h_dir, + install: true, + install_dir: get_option('sbindir') +) |