1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
project('wsap_vtcore', 'c',
version: '0.1.0',
license: 'MIT',
license_files: 'LICENSE',
meson_version: '>=1.1.0',
default_options: [
'c_std=c11',
'buildtype=release',
'optimization=3',
'b_lto=true',
'warning_level=3',
'b_ndebug=if-release',
],
)
cc = meson.get_compiler('c')
m_dep = cc.find_library('m', required: false)
# The writer lock is a pthread mutex on POSIX and an SRWLOCK on Windows.
thread_dep = dependency('threads')
if get_option('arch_flag') != ''
add_project_arguments(get_option('arch_flag'), language: 'c')
endif
# A host sees include/ only. The sources also find the public headers
# without the wsap_vtcore/ prefix.
wsap_vtcore_inc = include_directories('include')
wsap_vtcore_private_inc = include_directories('src', 'include/wsap_vtcore')
subdir('src')
wsap_vtcore_dep = declare_dependency(
include_directories: wsap_vtcore_inc,
link_with: wsap_vtcore_lib.get_static_lib(),
dependencies: [m_dep, thread_dep],
)
meson.override_dependency('wsap_vtcore', wsap_vtcore_dep)
# The private headers too. Only the wsap_vtcore tests and benchmarks use it.
wsap_vtcore_internal_dep = declare_dependency(
include_directories: [wsap_vtcore_inc, wsap_vtcore_private_inc],
link_with: wsap_vtcore_lib.get_static_lib(),
dependencies: [m_dep, thread_dep],
)
# The short forms of wsap_vtcore.h that the tests use. A host project can use
# them in its own tests.
wsap_vtcore_test_dep = declare_dependency(
include_directories: include_directories('tests/helpers'),
dependencies: wsap_vtcore_dep,
)
meson.override_dependency('wsap_vtcore-test', wsap_vtcore_test_dep)
install_headers(
'include/wsap_vtcore/wsap_vtcore.h',
'include/wsap_vtcore/wsap_vtcore_input.h',
'include/wsap_vtcore/wsap_vtcore_types.h',
subdir: 'wsap_vtcore',
)
install_headers(
'include/wsap_vtcore/unicode/grapheme.h',
'include/wsap_vtcore/unicode/unicode.h',
'include/wsap_vtcore/unicode/unicode_data.inc',
'include/wsap_vtcore/unicode/utf8.h',
'include/wsap_vtcore/unicode/width.h',
subdir: 'wsap_vtcore/unicode',
)
pkg = import('pkgconfig')
pkg.generate(
wsap_vtcore_lib.get_shared_lib(),
name: 'wsap_vtcore',
description: 'Headless terminal emulator core library',
version: meson.project_version(),
subdirs: ['.'],
)
if get_option('tests')
subdir('tests')
subdir('benchmarks')
endif
|