Skip to content

Commit

Permalink
build: Add meson build support
Browse files Browse the repository at this point in the history
This adds support for meson as an alternative build system.
  • Loading branch information
ueno committed Jun 18, 2019
1 parent 411a7a6 commit 4f95669
Show file tree
Hide file tree
Showing 17 changed files with 1,324 additions and 1 deletion.
3 changes: 2 additions & 1 deletion .dir-locals.el
@@ -1 +1,2 @@
((c-mode . ((c-file-style . "linux"))))
((c-mode . ((c-file-style . "linux")))
(meson-mode . ((indent-tabs-mode . nil))))
99 changes: 99 additions & 0 deletions common/meson.build
@@ -0,0 +1,99 @@
install_headers('pkcs11.h', 'pkcs11x.h', subdir: 'p11-kit-1/p11-kit')

libp11_common_sources = [
'argv.c',
'attrs.c',
'array.c',
'buffer.c',
'compat.c',
'constants.c',
'debug.c',
'dict.c',
'hash.c',
'lexer.c',
'message.c',
'path.c',
'runtime.c',
'url.c'
]

libp11_common = static_library('p11-common', libp11_common_sources,
gnu_symbol_visibility: 'hidden',
include_directories: configinc)

libp11_common_dep = declare_dependency(include_directories: [configinc,
commoninc],
link_with: libp11_common)

libp11_library = static_library('p11-library', 'library.c',
gnu_symbol_visibility: 'hidden',
include_directories: configinc)

libp11_library_dep = declare_dependency(include_directories: [configinc,
commoninc],
link_with: libp11_library)

libp11_test_sources = [
'mock.c',
'test.c'
]

libp11_test = static_library('p11-test', libp11_test_sources,
include_directories: configinc)
libp11_test_dep = declare_dependency(include_directories: [configinc,
commoninc],
link_with: libp11_test)

libp11_tool_sources = [
'tool.c'
]

if host_system != 'windows'
libp11_tool_sources += ['unix-peer.c', 'unix-peer.h']
endif

libp11_tool = static_library('p11-tool', libp11_tool_sources,
include_directories: configinc)
libp11_tool_dep = declare_dependency(include_directories: [configinc,
commoninc],
link_with: libp11_tool)

# Tests ----------------------------------------------------------------

common_tests = [
'test-tests',
'test-compat',
'test-hash',
'test-dict',
'test-array',
'test-constants',
'test-attrs',
'test-buffer',
'test-url',
'test-path',
'test-lexer',
'test-message',
'test-argv',
'test-runtime'
]

foreach name : common_tests
t = executable(name, '@0@.c'.format(name),
c_args: tests_c_args,
include_directories: configinc,
dependencies: dlopen_deps,
link_with: [libp11_test, libp11_common])
test(name, t)
endforeach

common_progs = [
'frob-getauxval',
'frob-getenv'
]

foreach name : common_progs
executable(name, '@0@.c'.format(name),
include_directories: configinc,
dependencies: dlopen_deps,
link_with: [libp11_common])
endforeach
75 changes: 75 additions & 0 deletions doc/manual/meson.build
@@ -0,0 +1,75 @@
ignore_headers = [
'private.h',
'pkcs11.h',
'conf.h',
'debug.h',
'dict.h',
'filter.h',
'log.h',
'mock.h',
'modules.h',
'pkcs11.h',
'pkcs11i.h',
'pkcs11x.h',
'private.h',
'client.h',
'proxy.h',
'rpc.h',
'rpc-message.h',
'util.h',
'virtual.h',
'virtual-fixed.h',
'array.h',
'compat.h'
]

content_files = [
'p11-kit-config.xml',
'p11-kit-sharing.xml',
'p11-kit-devel.xml',
'p11-kit-proxy.xml',
'p11-kit-trust.xml',
'p11-kit-remoting.xml',
'p11-kit.xml',
'pkcs11.conf.xml',
'trust.xml',
'annotation-glossary.xml'
]

configure_file(
input: 'version.xml.in',
output: '@BASENAME@',
configuration: {'VERSION', meson.project_version()})

configure_file(
input: 'userdir.xml.in',
output: '@BASENAME@',
configuration: {'p11_user_config', p11_user_config})

configure_file(
input: 'sysdir.xml.in',
output: '@BASENAME@',
configuration: {'p11_system_config', p11_system_config})

glib_prefix = dependency('glib-2.0').get_pkgconfig_variable('prefix')
fixxref_args = [
'--html-dir=' + (prefix / gnome.gtkdoc_html_dir(meson.project_name())),
'--extra-dir=' + (glib_prefix / gnome.gtkdoc_html_dir('glib')),
]

gnome.gtkdoc('p11-kit',
main_xml: 'p11-kit-docs.xml',
namespace: 'p11_kit',
src_dir: 'p11-kit',
dependencies: libffi_deps + dlopen_deps,
scan_args: [
'--ignore-headers=' + ' '.join(ignore_headers),
'--rebuild-types',
'--deprecated-guards="P11_KIT_DISABLE_DEPRECATED"'
],
scanobjs_args: [
'--version'
],
content_files: content_files,
fixxref_args: fixxref_args,
install: true)
1 change: 1 addition & 0 deletions doc/manual/sysdir.xml.in
@@ -0,0 +1 @@
@p11_system_config@
1 change: 1 addition & 0 deletions doc/manual/userdir.xml.in
@@ -0,0 +1 @@
@p11_user_config@
1 change: 1 addition & 0 deletions doc/manual/version.xml.in
@@ -0,0 +1 @@
@VERSION@

0 comments on commit 4f95669

Please sign in to comment.