-
Notifications
You must be signed in to change notification settings - Fork 0
/
meson.build
122 lines (111 loc) · 2.39 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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
project('jpegls-hdf-filter', 'cpp', 'c',
version: '0.1',
license: 'MIT',
meson_version: '>=0.57',
default_options : [
'buildtype=debugoptimized',
'b_ndebug=if-release',
'cpp_std=c++17',
])
charls_proj = subproject('charls',
default_options: 'default_library=static'
)
charls_lib = charls_proj.get_variable('charls_lib')
charls_inc = charls_proj.get_variable('charls_inc')
hdf5_dep = dependency('hdf5', language: 'c')
threads_dep = dependency('threads')
openmp_dep = dependency('openmp')
taskflow_dep = subproject('taskflow').get_variable('taskflow_dep')
jpegls_filter_dep = declare_dependency(
include_directories: [
'.',
charls_inc,
],
sources: [
'jpegls-filter.cpp',
],
link_with: [
charls_lib,
],
dependencies: [
threads_dep,
openmp_dep,
],
)
jpegls_filter_async_dep = declare_dependency(
compile_args: '-DH5JPEGLS_USE_ASYNC',
dependencies: [
jpegls_filter_dep,
taskflow_dep,
],
)
h5jpegls_lib = library('h5jpegls',
sources: [
'h5jpegls.cpp',
],
include_directories: [
charls_inc,
],
cpp_args: [
'-fvisibility=hidden',
'-DNO_DEBUG',
],
dependencies: [
jpegls_filter_dep,
hdf5_dep,
threads_dep,
],
)
h5repack_exe = find_program('h5repack')
test_data = files('test-vector/bloated.hdf5')
compressed_data = custom_target('compressed.hdf5',
input: [
test_data,
h5jpegls_lib,
],
output: 'compressed.hdf5',
env: {
'HDF5_PLUGIN_PATH': meson.current_build_dir(),
},
command: [
h5repack_exe,
'-f', 'ones:UD=32012,3,0,0,0',
'@INPUT0@',
'@OUTPUT@',
],
build_by_default: false,
)
restored_data = custom_target('restored.hdf5',
input: [
compressed_data,
h5jpegls_lib,
],
output: 'restored.hdf5',
env: {
'HDF5_PLUGIN_PATH': meson.current_build_dir(),
},
command: [
h5repack_exe,
'-f', 'ones:NONE',
'@INPUT0@',
'@OUTPUT@',
],
build_by_default: false,
)
h5ls_exe = find_program('h5ls')
test('JPEG-LS compression w/ h5repack',
h5ls_exe,
args: [
'-v',
compressed_data,
],
)
test('JPEG-LS decoding w/ h5repack',
h5ls_exe,
args: [
'-v',
restored_data,
],
)
subdir('examples')
subdir('tests')