libsecret/meson.build
Dhanuka Warusadura 9a37dc839a pam: port PAM module from gnome-keyring
These changes port the PAM module from gnome-keyring/pam to libsecret/pam.

Removed `start_daemon` and the dependent code altogether. Because,
gnome-keyring-daemon is launched by systemd.

Replaced calls to `pam_get_item` to retrieve authentication tokens with
`pam_get_authtok`.

Signed-off-by: Dhanuka Warusadura <dhanuka@gnome.org>
2023-12-10 22:35:55 +05:30

119 lines
3.3 KiB
Meson

project('libsecret', 'c',
version: '0.21.2',
license: 'GPL2+',
meson_version: '>= 0.50',
)
gnome = import('gnome')
i18n = import('i18n')
pkg = import('pkgconfig')
# API version
api_version = '1.0.0'
api_version_major = api_version.split('.')[0]
api_version_minor = api_version.split('.')[1]
api_version_micro = api_version.split('.')[2]
libtool_version = '0.0.0'
# Some variables
config_h_dir = include_directories('.')
build_dir = include_directories('build')
libsecret_prefix = get_option('prefix')
po_dir = meson.source_root() / 'po'
# Dependencies
min_glib_version = '2.44'
glib_deps = [
dependency('glib-2.0', version: '>=' + min_glib_version),
dependency('gio-2.0', version: '>=' + min_glib_version),
dependency('gio-unix-2.0', version: '>=' + min_glib_version),
]
with_gcrypt = false
with_gnutls = false
with_crypto = false
crypto_deps = []
if get_option('crypto') == 'libgcrypt'
min_libgcrypt_version = '1.2.2'
gcrypt_dep = dependency(
'libgcrypt',
version: '>=' + min_libgcrypt_version,
required: false,
)
if gcrypt_dep.found()
with_gcrypt = true
with_crypto = true
crypto_deps += gcrypt_dep
endif
elif get_option('crypto') == 'gnutls'
min_gnutls_version = '3.8.2'
gnutls_dep = dependency(
'gnutls',
version: '>=' + min_gnutls_version,
required: false,
)
if gnutls_dep.found()
with_gnutls = true
with_crypto = true
crypto_deps += gnutls_dep
endif
endif
min_tss2_version = '3.0.3'
tss2_esys = dependency('tss2-esys', version: '>=' + min_tss2_version, required: get_option('tpm2'))
tss2_mu = dependency('tss2-mu', version: '>=' + min_tss2_version, required: get_option('tpm2'))
tss2_rc = dependency('tss2-rc', version: '>=' + min_tss2_version, required: get_option('tpm2'))
tss2_tctildr = dependency('tss2-tctildr', version: '>=' + min_tss2_version, required: get_option('tpm2'))
tss2_deps = []
if tss2_esys.found() and tss2_mu.found() and tss2_rc.found() and tss2_tctildr.found()
tss2_deps += [tss2_esys, tss2_mu, tss2_rc, tss2_tctildr]
endif
# Libraries
math = meson.get_compiler('c').find_library('m')
# Configuration
conf = configuration_data()
conf.set_quoted('GETTEXT_PACKAGE', meson.project_name())
conf.set_quoted('G_LOG_DOMAIN', meson.project_name())
conf.set_quoted('LOCALEDIR', libsecret_prefix / get_option('localedir'))
conf.set_quoted('PACKAGE_NAME', meson.project_name())
conf.set_quoted('PACKAGE_STRING', meson.project_name())
conf.set_quoted('PACKAGE_VERSION', meson.project_version())
conf.set('WITH_GCRYPT', with_gcrypt)
conf.set('WITH_GNUTLS', with_gnutls)
conf.set('WITH_CRYPTO', with_crypto)
conf.set('WITH_TPM', get_option('tpm2'))
if with_gcrypt
conf.set_quoted('LIBGCRYPT_VERSION', min_libgcrypt_version)
endif
if get_option('tpm2')
conf.set_quoted('TSS2_VERSION', min_tss2_version)
endif
conf.set('WITH_DEBUG', get_option('debugging'))
conf.set('_DEBUG', get_option('debugging'))
conf.set('HAVE_MLOCK', meson.get_compiler('c').has_function('mlock'))
if get_option('pam')
conf.set_quoted('GNOME_KEYRING_DAEMON', get_option('prefix') /
get_option('bindir') / 'gnome-keyring-daemon')
endif
configure_file(output: 'config.h', configuration: conf)
# Test environment
test_env = environment()
test_env.set('abs_top_builddir', meson.build_root())
# Subfolders
subdir('po')
subdir('egg')
subdir('libsecret')
subdir('tool')
subdir('docs')
if get_option('pam')
subdir('pam')
endif