-
Notifications
You must be signed in to change notification settings - Fork 1
/
meson.build
97 lines (87 loc) · 2.97 KB
/
meson.build
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
project('jxc',
'cpp',
meson_version: '>= 0.56.0',
version: run_command(find_program('tools/version.py'), check: true).stdout().strip(),
default_options: ['warning_level=2', 'cpp_std=c++20'],
)
libjxc_inc = include_directories('jxc/include')
libjxc_src = [
'jxc/src/jxc_core.cpp',
'jxc/src/jxc_lexer.cpp',
'jxc/src/jxc_parser.cpp',
'jxc/src/jxc_serializer.cpp',
'jxc/src/jxc_string.cpp',
'jxc/src/jxc_util.cpp',
]
re2c_exe = find_program('re2c', version: '>=3.0', required: false)
if re2c_exe.found()
re2c_generator = generator(
re2c_exe,
output: '@[email protected]',
arguments: ['-W', '--verbose', '--utf8', '--input-encoding', 'utf8', '--location-format', 'gnu', '@INPUT@', '-o', '@OUTPUT@']
)
libjxc_src += [re2c_generator.process('jxc/src/jxc_lexer_gen.re')]
else
message('re2c not found; using pregenerated lexer')
libjxc_src += ['jxc/src/jxc_lexer_gen.re.cpp']
endif
libjxc = static_library(
'jxc',
sources: libjxc_src,
dependencies: [
subproject('fast_float').get_variable('fast_float_dep'),
],
include_directories: libjxc_inc,
install: true)
libjxc_dep = declare_dependency(
include_directories: libjxc_inc,
dependencies: [
subproject('fast_float').get_variable('fast_float_dep')
],
link_with: libjxc)
libjxc_cpp_inc = include_directories('jxc_cpp/include')
libjxc_cpp_src = [
'jxc_cpp/src/jxc_document.cpp',
'jxc_cpp/src/jxc_value.cpp',
]
libjxc_cpp = static_library(
'jxc_cpp',
sources: libjxc_cpp_src,
dependencies: [
libjxc_dep,
subproject('unordered_dense').get_variable('unordered_dense_dep'),
],
include_directories: libjxc_cpp_inc,
install: true)
libjxc_cpp_dep = declare_dependency(
include_directories: libjxc_cpp_inc,
dependencies: [
subproject('unordered_dense').get_variable('unordered_dense_dep'),
],
link_with: [
libjxc,
libjxc_cpp,
])
if not meson.is_subproject()
install_headers('jxc/jxc_array.h', subdir: 'jxc')
install_headers('jxc/jxc_bytes.h', subdir: 'jxc')
install_headers('jxc/jxc_core.h', subdir: 'jxc')
install_headers('jxc/jxc_format.h', subdir: 'jxc')
install_headers('jxc/jxc_lexer.h', subdir: 'jxc')
install_headers('jxc/jxc_memory.h', subdir: 'jxc')
install_headers('jxc/jxc_parser.h', subdir: 'jxc')
install_headers('jxc/jxc_serializer.h', subdir: 'jxc')
install_headers('jxc/jxc_string.h', subdir: 'jxc')
install_headers('jxc/jxc_type_traits.h', subdir: 'jxc')
install_headers('jxc/jxc_util.h', subdir: 'jxc')
install_headers('jxc/jxc.h', subdir: 'jxc')
if get_option('jxc_cpp')
install_headers('jxc_cpp/jxc_converter_std.h', subdir: 'jxc_cpp')
install_headers('jxc_cpp/jxc_converter_value.h', subdir: 'jxc_cpp')
install_headers('jxc_cpp/jxc_converter.h', subdir: 'jxc_cpp')
install_headers('jxc_cpp/jxc_document.h', subdir: 'jxc_cpp')
install_headers('jxc_cpp/jxc_map.h', subdir: 'jxc_cpp')
install_headers('jxc_cpp/jxc_value.h', subdir: 'jxc_cpp')
install_headers('jxc_cpp/jxc_cpp.h', subdir: 'jxc_cpp')
endif
endif