summaryrefslogtreecommitdiffstats
path: root/libgdm/meson.build
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--libgdm/meson.build104
1 files changed, 104 insertions, 0 deletions
diff --git a/libgdm/meson.build b/libgdm/meson.build
new file mode 100644
index 0000000..3f8cafb
--- /dev/null
+++ b/libgdm/meson.build
@@ -0,0 +1,104 @@
+libgdm_manager_dbus_gen = gnome.gdbus_codegen('gdm-manager-glue',
+ sources: '..' / 'daemon' / 'gdm-manager.xml',
+ namespace: 'Gdm',
+ interface_prefix: 'org.gnome.DisplayManager',
+ autocleanup: 'all',
+ annotations: [
+ [ 'org.gnome.DisplayManager.Manager', 'org.gtk.GDBus.C.Name', 'Manager' ],
+ ],
+ build_by_default: true,
+)
+libgdm_client_dbus_gen = gnome.gdbus_codegen('gdm-client-glue',
+ sources: '..' / 'daemon' / 'gdm-session.xml',
+ namespace: 'Gdm',
+ interface_prefix: 'org.gnome.DisplayManager',
+ autocleanup: 'all',
+ annotations: [
+ [ 'org.gnome.DisplayManager.UserVerifier', 'org.gtk.GDBus.C.Name', 'UserVerifier' ],
+ [ 'org.gnome.DisplayManager.Greeter', 'org.gtk.GDBus.C.Name', 'Greeter' ],
+ [ 'org.gnome.DisplayManager.RemoteGreeter', 'org.gtk.GDBus.C.Name', 'RemoteGreeter' ],
+ [ 'org.gnome.DisplayManager.Chooser', 'org.gtk.GDBus.C.Name', 'Chooser' ],
+ ],
+ build_by_default: true,
+ install_header: true,
+ install_dir: get_option('includedir') / meson.project_name()
+)
+
+libgdm_built_sources = [
+ libgdm_manager_dbus_gen,
+ libgdm_client_dbus_gen,
+]
+
+libgdm_sources = files(
+ 'gdm-client.c',
+ 'gdm-sessions.c',
+ 'gdm-user-switching.c',
+)
+
+libgdm_public_headers = [
+ 'gdm-client.h',
+ 'gdm-sessions.h',
+ 'gdm-user-switching.h',
+ # gdm-client-glue.h is automatically installed
+]
+
+install_headers(libgdm_public_headers,
+ subdir: meson.project_name(),
+)
+
+libgdm_headers = [
+ libgdm_public_headers,
+ libgdm_client_dbus_gen[1],
+ libgdm_manager_dbus_gen[1],
+]
+
+libgdm_deps = [
+ glib_dep,
+ gio_dep,
+ gio_unix_dep,
+ libsystemd_dep,
+ libgdmcommon_dep,
+]
+
+libgdm_link_flags = [
+ '-Wl,--version-script,@0@/libgdm.map'.format(meson.current_source_dir()),
+]
+
+libgdm = library('gdm',
+ libgdm_sources + libgdm_built_sources,
+ version: '1.0.0',
+ dependencies: libgdm_deps,
+ include_directories: config_h_dir,
+ link_args: libgdm_link_flags,
+ install: true,
+)
+
+libgdm_gir_includes = [
+ 'GLib-2.0',
+ 'GObject-2.0',
+ 'Gio-2.0',
+]
+
+libgdm_dep = declare_dependency(
+ link_with: libgdm,
+ dependencies: libgdm_deps,
+ include_directories: include_directories('.'),
+ sources: libgdm_built_sources,
+)
+
+libgdm_gir = gnome.generate_gir(libgdm,
+ sources: libgdm_headers + libgdm_sources,
+ namespace: 'Gdm',
+ nsversion: '1.0',
+ identifier_prefix: 'Gdm',
+ includes: libgdm_gir_includes,
+ install: true,
+)
+
+# Pkg-config file
+pkgconfig.generate(libgdm,
+ name: 'GDM Client Library',
+ description: 'Client Library for communicating with GDM daemon',
+ filebase: meson.project_name(),
+ requires: gobject_dep,
+)