diff --git a/meson.build b/meson.build index cf55aca916..32878f47f5 100644 --- a/meson.build +++ b/meson.build @@ -133,6 +133,7 @@ subdir('meson' / 'sodium') subdir('meson' / 'pcre') subdir('meson' / 'gssapi') subdir('meson' / 'crypt') +subdir('meson' / 'unwind') dovecot_moduledir = get_option('moduledir') if dovecot_moduledir == '' diff --git a/meson.options b/meson.options index f1f7f06d6b..0f70e6cb06 100644 --- a/meson.options +++ b/meson.options @@ -13,6 +13,7 @@ option('mem-align', type: 'integer', value: 8, min: 1, description: 'Set the mem option('random-source', type: 'string', value : '/dev/urandom', description: 'Device file to use as random source') option('ioloop', type: 'combo', choices: ['best', 'epoll', 'kqueue', 'poll', 'select'], value: 'best', description: 'I/O loop method to use (best for the fastest available)') option('notify', type: 'combo', choices: ['best', 'inotify', 'kqueue', 'none'], value: 'best', description: 'File system notification method to use (best for the fastest available)') +option('libunwind', type: 'feature', value: 'auto', description: 'Build with libunwind support (better backtraces)') option('sodium', type: 'feature', value: 'auto', description: 'Build with libsodium support (enables argon2)') option('pcre', type: 'feature', value: 'auto', description: 'Build with libpcre2 support (enables regular expressions)') option('gssapi', type: 'combo', choices: ['disabled', 'enabled', 'auto', 'plugin'], value: 'disabled', description: 'Build with GSSAPI authentication support') diff --git a/meson/unwind/meson.build b/meson/unwind/meson.build new file mode 100644 index 0000000000..4549fa802f --- /dev/null +++ b/meson/unwind/meson.build @@ -0,0 +1,10 @@ +# Prefer libunwind over backtrace()/execinfo. +ext_unwind = dependency('libunwind-generic', required: get_option('libunwind')) + +conf.set( + 'HAVE_LIBUNWIND', + ext_unwind.found(), + description: 'Have libunwind', +) + +summary({'libunwind': ext_unwind}, section: 'Features')