Initial Meson build support

This commit is contained in:
Anton Kochkov 2023-04-23 14:53:07 +08:00
parent 0650ccbf17
commit 6eb98cbd5e
3 changed files with 93 additions and 0 deletions

77
meson.build Normal file
View file

@ -0,0 +1,77 @@
project('capnp-c', ['c','cpp'], meson_version: '>=1.0.0', default_options : ['c_std=c99', 'cpp_std=c++14'])
cc = meson.get_compiler('c')
common_c_args = []
common_cpp_args = ['-std=c++14']
libcapnp_c_args = []
libcapnp_src = [
'lib' / 'capn-malloc.c',
'lib' / 'capn-stream.c',
'lib' / 'capn.c',
]
libcapnp = library('capnp', libcapnp_src,
c_args : common_c_args + libcapnp_c_args,
dependencies: [],
implicit_include_directories: false,
include_directories: include_directories(['compiler', 'lib'])
)
libcapnp_dep = declare_dependency(
link_with: libcapnp,
dependencies: [],
include_directories: include_directories(['compiler', 'lib'])
)
capnpc_src = [
'compiler' / 'capnpc-c.c',
'compiler' / 'schema.capnp.c',
'compiler' / 'str.c'
]
capnpc_c = executable('capnpc-c', capnpc_src,
include_directories: include_directories(['lib']),
dependencies: [libcapnp_dep],
c_args : common_c_args,
)
capn_test_src = [
'tests' / 'capn-test.cpp',
'tests' / 'capn-stream-test.cpp',
'tests' / 'example-test.cpp',
'tests' / 'addressbook.capnp.c',
'compiler' / 'test.capnp.c',
'compiler' / 'schema-test.cpp',
'compiler' / 'schema.capnp.c'
]
if get_option('enable_tests') and not meson.is_subproject()
thread_dep = dependency('threads')
gtest_proj = subproject('gtest')
gtest_dep = gtest_proj.get_variable('gtest_dep')
gmock_dep = gtest_proj.get_variable('gmock_dep')
test_dependencies = [libcapnp_dep, gtest_dep, gmock_dep, thread_dep]
if get_option('b_sanitize').contains('address')
test_dependencies += cc.find_library('asan')
endif
if get_option('b_sanitize').contains('undefined')
test_dependencies += cc.find_library('ubsan')
endif
exe = executable('capn-test', capn_test_src,
include_directories: include_directories(['lib', 'tests', 'compiler']),
dependencies: test_dependencies,
c_args : common_c_args,
cpp_args : common_cpp_args,
install: false,
install_rpath: '',
implicit_include_directories: false
)
test('capn-test', exe)
endif