[gnome-keyring/wip/nielsdg/meson] wip



commit 7029630f94705551d8e6065c4ff95967b44cd8d5
Author: Niels De Graef <nielsdegraef gmail com>
Date:   Sat Jul 22 11:02:27 2017 +0200

    wip

 daemon/control/meson.build   |  34 ++++++++++
 daemon/dbus/meson.build      | 149 +++++++++++++++++++++++++++++++++++++++++++
 daemon/login/meson.build     |  22 +++++++
 daemon/meson.build           |  89 ++++++++++++++++++++++++++
 daemon/ssh-agent/meson.build |  46 +++++++++++++
 egg/meson.build              |  75 ++++++++++++++++++++++
 meson.build                  |  79 +++++++++++++++++++++++
 meson_options.txt            |  17 +++++
 pam/meson.build              |  14 ++++
 pkcs11/gkm/meson.build       |  97 ++++++++++++++++++++++++++++
 pkcs11/meson.build           |   1 +
 po/meson.build               |   3 +
 schema/meson.build           |   8 +++
 tool/meson.build             |  18 ++++++
 14 files changed, 652 insertions(+)
---
diff --git a/daemon/control/meson.build b/daemon/control/meson.build
new file mode 100644
index 00000000..82c637dd
--- /dev/null
+++ b/daemon/control/meson.build
@@ -0,0 +1,34 @@
+libgkd_control_sources = files(
+  'gkd-control-server.c',
+  'gkd-control-client.c',
+)
+
+libgkd_control_deps = [
+  glib_dep,
+  libegg_dep,
+]
+
+libgkd_control = static_library('gkd-control',
+  libgkd_control_sources,
+  dependencies: libgkd_control_deps,
+  include_directories: config_h_inc,
+)
+
+libgkd_control_dep = declare_dependency(
+  link_with: libgkd_control,
+)
+
+# Tests
+libgkd_control_tests = [
+  'frob-control-change',
+  'frob-control-init',
+  'frob-control-unlock',
+  'frob-control-quit',
+]
+
+foreach test_name : libgkd_control_tests
+  test_bin = executable(test_name,
+    '@0@.c'.format(test_name),
+    dependencies: [ libgkd_control_dep, libgkd_control_deps ],
+  )
+endforeach
diff --git a/daemon/dbus/meson.build b/daemon/dbus/meson.build
new file mode 100644
index 00000000..e6f9dc29
--- /dev/null
+++ b/daemon/dbus/meson.build
@@ -0,0 +1,149 @@
+libgkd_dbus_secrets_gen = gnome.gdbus_codegen('gkd-secrets-generated',
+  sources: 'org.freedesktop.Secrets.xml',
+  interface_prefix: 'org.freedesktop.Secrets.',
+  namespace: 'Gkd',
+  annotations: [
+    [ 'org.freedesktop.Secret.Service',    'org.gtk.GDBus.C.Name', 'ExportedService'    ],
+    [ 'org.freedesktop.Secret.Collection', 'org.gtk.GDBus.C.Name', 'ExportedCollection' ],
+    [ 'org.freedesktop.Secret.Item',       'org.gtk.GDBus.C.Name', 'ExportedItem'       ],
+    [ 'org.freedesktop.Secret.Session',    'org.gtk.GDBus.C.Name', 'ExportedSession'    ],
+    [ 'org.freedesktop.Secret.Prompt',     'org.gtk.GDBus.C.Name', 'ExportedPrompt'     ],
+  ],
+  autocleanup: 'all',
+)
+
+libgkd_dbus_daemon_gen = gnome.gdbus_codegen('gkd-daemon-generated',
+  sources: 'org.gnome.keyring.Daemon.xml',
+  interface_prefix: 'org.gnome.keyring.Daemon',
+  namespace: 'Gkd',
+  annotations: [
+    [ 'org.gnome.keyring.Daemon', 'org.gtk.GDBus.C.Name', 'ExportedDaemon' ],
+  ],
+  autocleanup: 'all',
+)
+
+libgkd_dbus_internal_gen = gnome.gdbus_codegen('gkd-internal-generated',
+  sources: 'org.gnome.keyring.InternalUnsupportedGuiltRiddenInterface.xml',
+  interface_prefix: 'org.gnome.keyring.InternalUnsupportedGuiltRiddenInterface',
+  namespace: 'Gkd',
+  annotations: [
+    [ 'org.gnome.keyring.InternalUnsupportedGuiltRiddenInterface', 'org.gtk.GDBus.C.Name', 
'ExportedInternal' ],
+  ],
+  autocleanup: 'all',
+)
+
+libgkd_dbus_portal_gen = gnome.gdbus_codegen('gkd-portal-generated',
+  sources: 'org.freedesktop.impl.portal.Secret.xml',
+  interface_prefix: 'org.freedesktop.impl.portal.Secret.',
+  namespace: 'Gkd',
+  annotations: [
+    [ 'org.freedesktop.impl.portal.Secret', 'org.gtk.GDBus.C.Name', 'ExportedPortal' ],
+  ],
+  autocleanup: 'all',
+)
+
+libgkd_dbus_portalreq_gen = gnome.gdbus_codegen('gkd-portal-request-generated',
+  sources: 'org.freedesktop.impl.portal.Request.xml',
+  interface_prefix: 'org.freedesktop.impl.portal.Request.',
+  namespace: 'Gkd',
+  annotations: [
+    [ 'org.freedesktop.impl.portal.Request', 'org.gtk.GDBus.C.Name', 'ExportedPortalRequest' ],
+  ],
+  autocleanup: 'all',
+)
+
+libgkd_dbus_sources = [
+  'gkd-dbus.c',
+  'gkd-dbus-environment.c',
+  'gkd-dbus-secrets.c',
+  'gkd-dbus-session.c',
+  'gkd-secret-change.c',
+  'gkd-secret-create.c',
+  'gkd-secret-dispatch.c',
+  'gkd-secret-error.c',
+  'gkd-secret-exchange.c',
+  'gkd-secret-lock.c',
+  'gkd-secret-objects.c',
+  'gkd-secret-portal.c',
+  'gkd-secret-property.c',
+  'gkd-secret-prompt.c',
+  'gkd-secret-secret.c',
+  'gkd-secret-service.c',
+  'gkd-secret-session.c',
+  'gkd-secret-unlock.c',
+  'gkd-secret-util.c',
+
+  libgkd_dbus_secrets_gen,
+  libgkd_dbus_daemon_gen,
+  libgkd_dbus_internal_gen,
+  libgkd_dbus_portal_gen,
+  libgkd_dbus_portalreq_gen,
+]
+
+libgkd_dbus_deps = [
+  glib_dep,
+  gio_dep,
+  gio_unix_dep,
+  gobject_dep,
+  gck_dep,
+  gcr_base_dep,
+  libegg_dep,
+]
+
+libgkd_dbus_lib = static_library('gkd-dbus',
+  libgkd_dbus_sources,
+  dependencies: libgkd_dbus_deps,
+  include_directories: config_h_inc,
+)
+
+libgkd_dbus_dep = declare_dependency(
+  link_with: libgkd_dbus_lib,
+)
+
+# Tests
+libgkd_dbus_testservice_deps = [
+  glib_dep,
+  gio_dep,
+  gobject_dep,
+  libegg_dep,
+  libgcrypt_dep,
+]
+
+libgkd_dbus_testservice_cflags = [
+  '-DSRCDIR="@0@"'.format(source_root),
+  '-DBUILDDIR="@0@"'.format(meson.current_build_dir()),
+]
+
+libgkd_dbus_testservice = library('gkr-daemon-test-service',
+  'test-service.c',
+  dependencies: libgkd_dbus_testservice_deps,
+  c_args: libgkd_dbus_testservice_cflags,
+  include_directories: config_h_inc,
+)
+
+libgkd_dbus_tests = [
+  'test-dbus-util',
+  'test-dbus-search',
+  'test-dbus-items',
+  'test-dbus-signals',
+  'test-dbus-lock',
+  'test-dbus-portal',
+]
+
+libgkd_dbus_tests_cflags = [
+  #'-DBUILDDIR="@0@"'.format(meson.current_build_dir()),
+]
+
+foreach test_name : libgkd_dbus_tests
+  test_bin = executable(test_name,
+    '@0@.c'.format(test_name),
+    dependencies: [ libgkd_dbus_dep, libgkd_dbus_deps ],
+    link_with: libgkd_dbus_testservice,
+    c_args: libgkd_dbus_tests_cflags,
+    include_directories: config_h_inc,
+  )
+
+  test(test_name, test_bin,
+    suite: 'gkr-daemon-dbus',
+  )
+endforeach
diff --git a/daemon/login/meson.build b/daemon/login/meson.build
new file mode 100644
index 00000000..e56b6505
--- /dev/null
+++ b/daemon/login/meson.build
@@ -0,0 +1,22 @@
+libgkd_login_sources = files(
+  'gkd-login.c',
+  'gkd-login-interaction.c',
+  'gkd-login-password.c',
+)
+
+libgkd_login_deps = [
+  glib_dep,
+  gio_dep,
+  gck_dep,
+  gcr_base_dep,
+]
+
+libgkd_login_lib = static_library('gkd-login',
+  libgkd_login_sources,
+  dependencies: libgkd_login_deps,
+  include_directories: config_h_inc,
+)
+
+libgkd_login_dep = declare_dependency(
+  link_with: libgkd_login_lib,
+)
diff --git a/daemon/meson.build b/daemon/meson.build
new file mode 100644
index 00000000..c2eb367f
--- /dev/null
+++ b/daemon/meson.build
@@ -0,0 +1,89 @@
+subdir('control')
+subdir('dbus')
+subdir('login')
+if get_option('ssh-agent')
+  subdir('ssh-agent')
+endif
+
+# The daemon executable
+gkr_daemon_sources = files(
+  'gkd-glue.c',
+  'gkd-main.c',
+  'gkd-capability.c',
+  'gkd-pkcs11.c',
+  'gkd-util.c',
+)
+
+gkr_daemon_deps = [
+  gio_dep,
+  gio_unix_dep,
+  glib_dep,
+  gobject_dep,
+  libgcrypt_dep,
+
+  libegg_dep,
+  libgkm_dep,
+  libgkd_control_dep,
+  libgkd_dbus_dep,
+  libgkd_login_dep,
+]
+
+if get_option('ssh-agent')
+  gkr_daemon_deps += libgkd_ssh_dep
+endif
+
+if libcap_ng_dep.found()
+  gkr_daemon_deps += libcap_ng_dep
+endif
+
+gkr_daemon = executable('gnome-keyring-daemon',
+  gkr_daemon_sources,
+  dependencies: gkr_daemon_deps,
+  include_directories: config_h_inc,
+  install: true,
+)
+
+# The desktop files
+desktop_input_files = [
+  'gnome-keyring-pkcs11.desktop.in.in',
+  'gnome-keyring-secrets.desktop.in.in',
+  'gnome-keyring-ssh.desktop.in.in',
+]
+
+foreach desktop_input_file : desktop_input_files
+  i18n.merge_file(
+    input: configure_file(
+      input: desktop_input_file,
+      output: '@BASENAME@',
+      configuration: {
+        'bindir': gkr_prefix / get_option('bindir'),
+        'VERSION': meson.project_version(),
+      },
+    ),
+    output: '@BASENAME@',
+    type: 'desktop',
+    po_dir: po_dir,
+    install: true,
+    install_dir: get_option('datadir') / 'applications',
+  )
+endforeach
+
+# The service files TODO
+
+# Tests
+subdir_done()
+gkr_daemon_tests = [
+  'test-startup',
+  'test-shutdown',
+]
+
+foreach test_name : gkr_daemon_tests
+  test_bin = executable(test_name,
+    '@0@.c'.format(test_name),
+    include_directories: config_h_inc,
+  )
+
+  test(test_name, test_bin,
+    suite: 'gkr-daemon',
+  )
+endforeach
diff --git a/daemon/ssh-agent/meson.build b/daemon/ssh-agent/meson.build
new file mode 100644
index 00000000..fcc7723c
--- /dev/null
+++ b/daemon/ssh-agent/meson.build
@@ -0,0 +1,46 @@
+libgkd_ssh_sources = [
+  'gkd-ssh-agent-interaction.c',
+  'gkd-ssh-agent-process.c',
+  'gkd-ssh-agent-preload.c',
+  'gkd-ssh-agent-service.c',
+  'gkd-ssh-agent-util.c',
+]
+
+libgkd_ssh_deps = [
+  glib_dep,
+  gio_dep,
+  gio_unix_dep,
+  gcr_base_dep,
+]
+
+libgkd_ssh_lib = static_library('gkd-ssh',
+  libgkd_ssh_sources,
+  dependencies: libgkd_ssh_deps,
+  include_directories: config_h_inc,
+)
+
+libgkd_ssh_dep = declare_dependency(
+  link_with: libgkd_ssh_lib,
+)
+
+# Tests
+libgkd_ssh_tests = [
+]
+
+libgkd_ssh_tests_cflags = [
+  #'-DBUILDDIR="@0@"'.format(meson.current_build_dir()),
+]
+
+foreach test_name : libgkd_ssh_tests
+  test_bin = executable(test_name,
+    '@0@.c'.format(test_name),
+    dependencies: [ libgkd_ssh_dep, libgkd_ssh_deps ],
+    link_with: libgkd_ssh_testservice,
+    c_args: libgkd_ssh_tests_cflags,
+    include_directories: config_h_inc,
+  )
+
+  test(test_name, test_bin,
+    suite: 'gkr-daemon-ssh',
+  )
+endforeach
diff --git a/egg/meson.build b/egg/meson.build
new file mode 100644
index 00000000..e222f4a3
--- /dev/null
+++ b/egg/meson.build
@@ -0,0 +1,75 @@
+libegg_sources = [
+  'dotlock.c',
+  'egg-armor.c',
+  'egg-asn1-defs.c',
+  'egg-asn1x.c',
+  'egg-buffer.c',
+  'egg-byte-array.c',
+  'egg-cleanup.c',
+  'egg-dh.c',
+  'egg-dn.c',
+  'egg-file-tracker.c',
+  'egg-hex.c',
+  'egg-hkdf.c',
+  'egg-libgcrypt.c',
+  'egg-oid.c',
+  'egg-openssl.c',
+  'egg-padding.c',
+  'egg-secure-memory.c',
+  'egg-symkey.c',
+  'egg-testing.c',
+  'egg-timegm.c',
+  'egg-unix-credentials.c',
+]
+
+libegg_deps = [
+  glib_dep,
+  gck_dep,
+  gobject_dep,
+  libgcrypt_dep,
+]
+
+libegg = library('egg',
+  libegg_sources,
+  dependencies: libegg_deps,
+  include_directories: config_h_inc,
+)
+
+libegg_dep = declare_dependency(
+  link_with: libegg,
+  include_directories: include_directories('..'),
+)
+
+libegg_tests = [
+  'test-asn1',
+  'test-asn1x',
+  'test-dn',
+  'test-cleanup',
+  'test-hex',
+  'test-hkdf',
+  'test-oid',
+  'test-secmem',
+  'test-padding',
+  'test-symkey',
+  'test-armor',
+  'test-openssl',
+  'test-dh',
+  'test-file-tracker',
+]
+
+libegg_tests_cflags = [
+  '-DSRCDIR="@0@"'.format(meson.current_source_dir()),
+]
+
+foreach test_name : libegg_tests
+  test_bin = executable(test_name,
+    '@0@.c'.format(test_name),
+    dependencies: [ libegg_deps, libegg_dep ],
+    c_args: libegg_tests_cflags,
+    include_directories: config_h_inc,
+  )
+
+  test(test_name, test_bin,
+    suite: 'egg',
+  )
+endforeach
diff --git a/meson.build b/meson.build
new file mode 100644
index 00000000..6955fdbf
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,79 @@
+project('gnome-keyring', 'c',
+  version: '3.34.0',
+  meson_version: '>= 0.49',
+)
+
+gnome = import('gnome')
+i18n = import('i18n')
+
+# Version
+gkr_major_version = meson.project_version().split('.')[0]
+
+# Common variables
+cc = meson.get_compiler('c')
+gkr_prefix = get_option('prefix')
+config_h_inc = include_directories('.')
+po_dir = meson.current_source_dir() / 'po'
+source_root = meson.current_source_dir()
+build_root = meson.current_build_dir()
+
+# Dependencies
+glib_dep = dependency('glib-2.0', version: '>= 2.44')
+gio_dep = dependency('gio-2.0')
+gio_unix_dep = dependency('gio-unix-2.0')
+gmodule_dep = dependency('gmodule-no-export-2.0')
+gobject_dep = dependency('gobject-2.0')
+gck_dep = dependency('gck-1', version: '>= 3.3.4')
+gcr_uid_dep = dependency('gcr-ui-3', version: '>= 3.5.3')
+gcr_base_dep = dependency('gcr-base-3', version: '>= 3.5.3')
+libgcrypt_dep = dependency('libgcrypt', version: '>= 1.2.2')
+libcap_ng_dep = dependency('libcap-ng', required: false)
+
+if get_option('ssh-agent')
+  ssh_agent_bin = find_program('ssh-agent')
+  ssh_add_bin = find_program('ssh-add')
+endif
+
+# Project-wide defines
+add_project_arguments([
+  '-D_GNU_SOURCE',
+  '-DGCK_API_SUBJECT_TO_CHANGE',
+  '-DGCR_API_SUBJECT_TO_CHANGE',
+], language: 'c')
+
+# Configuration
+conf = configuration_data()
+
+conf.set_quoted('GETTEXT_PACKAGE', meson.project_name())
+conf.set_quoted('LOCALE_DIR', gkr_prefix / get_option('localedir'))
+conf.set_quoted('VERSION', meson.project_version())
+conf.set_quoted('LIBGCRYPT_VERSION', libgcrypt_dep.version())
+conf.set('HAVE_LIBCAPNG', libcap_ng_dep.found())
+if get_option('ssh-agent')
+  conf.set('WITH_SSH', true)
+  conf.set_quoted('SSH_AGENT', ssh_agent_bin.path())
+  conf.set_quoted('SSH_ADD', ssh_add_bin.path())
+endif
+conf.set('HAVE_SOCKLEN_T', true)
+conf.set('HAVE_GETPEERUCRED', cc.has_function('getpeerucred'))
+conf.set('HAVE_GETPEEREID', cc.has_function('getpeereid'))
+conf.set('HAVE_FLOCK', cc.has_function('flock'))
+conf.set('HAVE_MLOCK', cc.has_function('mlock'))
+conf.set('HAVE_TIMEGM', cc.has_function('timegm'))
+
+configure_file(output: 'config.h', configuration: conf)
+config_h_dir = include_directories('.')
+
+# Subdirs
+subdir('po')
+subdir('egg')
+subdir('pkcs11')
+subdir('daemon')
+subdir('schema')
+# subdir('tool')
+# if get_option('pam')
+#   subdir('pam')
+# endif
+# if get_option('docs')
+#   subdir('docs')
+# endif
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 00000000..a434153f
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1,17 @@
+option('ssh-agent',
+  type: 'boolean',
+  value: true,
+  description: 'Include SSH agent in gnome-keyring',
+)
+
+option('pam',
+  type: 'boolean',
+  value: true,
+  description: 'Build GNOME keyring PAM helper',
+)
+
+option('docs',
+  type: 'boolean',
+  value: true,
+  description: 'Build documentation',
+)
diff --git a/pam/meson.build b/pam/meson.build
new file mode 100644
index 00000000..a3f96447
--- /dev/null
+++ b/pam/meson.build
@@ -0,0 +1,14 @@
+libpam_gkr_sources = files(
+  'gkr-pam-client.c',
+  'gkr-pam-module.c',
+  'gkr-pam-stubs.c',
+)
+
+libpam_gkr_cflags = [
+  '-DGNOME_KEYRING_DAEMON="@0@"'.format(gkr_prefix / get_option('bindir') / 'gnome-keyring-daemon'),
+]
+
+libpam_gkr = library('pam_gnome_keyring',
+  libpam_gkr_sources,
+  c_args: libpam_gkr_cflags,
+)
diff --git a/pkcs11/gkm/meson.build b/pkcs11/gkm/meson.build
new file mode 100644
index 00000000..72351cf7
--- /dev/null
+++ b/pkcs11/gkm/meson.build
@@ -0,0 +1,97 @@
+libgkm_sources = files(
+  'gkm-aes-key.c',
+  'gkm-aes-mechanism.c',
+  'gkm-assertion.c',
+  'gkm-attributes.c',
+  'gkm-certificate.c',
+  'gkm-certificate-key.c',
+  'gkm-credential.c',
+  'gkm-crypto.c',
+  'gkm-data-asn1.c',
+  'gkm-data-der.c',
+  'gkm-debug.c',
+  'gkm-dh-key.c',
+  'gkm-dh-mechanism.c',
+  'gkm-dh-private-key.c',
+  'gkm-dh-public-key.c',
+  'gkm-dsa-mechanism.c',
+  'gkm-ecdsa-mechanism.c',
+  'gkm-factory.c',
+  'gkm-generic-key.c',
+  'gkm-hkdf-mechanism.c',
+  'gkm-log.c',
+  'gkm-manager.c',
+  'gkm-memory-store.c',
+  'gkm-mock.c',
+  'gkm-module.c',
+  'gkm-null-key.c',
+  'gkm-null-mechanism.c',
+  'gkm-object.c',
+  'gkm-private-xsa-key.c',
+  'gkm-public-xsa-key.c',
+  'gkm-rsa-mechanism.c',
+  'gkm-secret.c',
+  'gkm-secret-key.c',
+  'gkm-serializable.c',
+  'gkm-session.c',
+  'gkm-sexp.c',
+  'gkm-sexp-key.c',
+  'gkm-store.c',
+  'gkm-test.c',
+  'gkm-timer.c',
+  'gkm-transaction.c',
+  'gkm-trust.c',
+  'gkm-util.c',
+)
+
+gkm_marshal = gnome.genmarshal('gkm-marshal',
+  sources: 'gkm-marshal.list',
+  prefix: 'gkm_marshal',
+  valist_marshallers: true,
+)
+
+libgkm_deps = [
+  glib_dep,
+  gobject_dep,
+  libgcrypt_dep,
+
+  libegg_dep,
+]
+
+libgkm = library('gkm',
+  [ libgkm_sources, gkm_marshal, ],
+  dependencies: libgkm_deps,
+  include_directories: config_h_inc,
+)
+
+libgkm_dep = declare_dependency(
+  link_with: libgkm,
+)
+
+# Tests
+subdir_done()
+libgkm_tests = [
+  'test-attributes',
+  'test-credential',
+  'test-data-asn1',
+  'test-data-der',
+  'test-memory-store',
+  'test-object',
+  'test-certificate',
+  'test-secret',
+  'test-sexp',
+  'test-store',
+  'test-timer',
+  'test-transaction',
+]
+
+foreach test_name : libgkm_tests
+  test_bin = executable(test_name,
+    '@0@.c'.format(test_name),
+    include_directories: config_h_inc,
+  )
+
+  test(test_name, test_bin,
+    suite: 'gkm',
+  )
+endforeach
diff --git a/pkcs11/meson.build b/pkcs11/meson.build
new file mode 100644
index 00000000..5aecf47b
--- /dev/null
+++ b/pkcs11/meson.build
@@ -0,0 +1 @@
+subdir('gkm')
diff --git a/po/meson.build b/po/meson.build
new file mode 100644
index 00000000..f904cde4
--- /dev/null
+++ b/po/meson.build
@@ -0,0 +1,3 @@
+i18n.gettext(meson.project_name(),
+  preset: 'glib'
+)
diff --git a/schema/meson.build b/schema/meson.build
new file mode 100644
index 00000000..6c4fecf7
--- /dev/null
+++ b/schema/meson.build
@@ -0,0 +1,8 @@
+compiled_schemas = gnome.compile_schemas()
+install_data('org.gnome.crypto.cache.gschema.xml',
+  install_dir: get_option('datadir') / 'glib-2.0' / 'schemas',
+)
+
+install_data('org.gnome.crypto.cache.convert',
+  install_dir: get_option('datadir') / 'GConf' / 'gsettings',
+)
diff --git a/tool/meson.build b/tool/meson.build
new file mode 100644
index 00000000..96edf301
--- /dev/null
+++ b/tool/meson.build
@@ -0,0 +1,18 @@
+gnome_keyring_tool_sources = files(
+  'gkr-tool.c',
+  'gkr-tool-import.c',
+  'gkr-tool-trust.c',
+  'gkr-tool-version.c',
+)
+
+gnome_keyring_tool_deps = [
+  glib_dep,
+  gck_dep,
+  gcr_dep,
+]
+
+gnome_keyring_tool = executable('gnome-keyring-@0@'.format(gkr_major_version),
+  gnome_keyring_tool_sources,
+  dependencies: gnome_keyring_tool_deps,
+  include_directories: config_h_inc,
+)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]