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
|
project('libembed', ['cpp'],
version: '0.1',
default_options: ['cpp_std=c++2a', 'warning_level=3'],
)
libzstd = dependency('libzstd')
libembed_sourceset = import('sourceset').source_set()
libembed_sourceset.add(when: libzstd, if_true: [ libzstd, files('lib/zstd.cpp') ] )
libembed_conf = libembed_sourceset.apply(configuration_data())
libembed = library('embed', libembed_conf.sources(),
dependencies: libembed_conf.dependencies()
)
libembed_dep = declare_dependency(
link_with: libembed,
include_directories: include_directories('lib/')
)
prog_python = import('python').find_installation('python3')
rcc = generator(prog_python,
output: '@BASENAME@.h',
arguments: [ meson.current_source_dir()/'rcc', '--output=@OUTPUT@', '@EXTRA_ARGS@', '@INPUT@' ]
)
if not meson.is_subproject()
resources_h = rcc.process(files('test/resources.xrc'), extra_args: [ '--namespace=staticdata', '-' ])
zstd_dictionary = custom_target('zstd_dictionary',
output: 'zstd_dict',
input: 'rcc',
command: [ prog_python, '@INPUT@', 'Zstd', '--train=@OUTPUT@', files('test/resources.xrc') ]
)
zstd_resources_h = custom_target('zstd_resources.h',
output: 'zstd_resources.h',
input: [ 'rcc', zstd_dictionary ],
command: [prog_python, '@INPUT0@', '--namespace=zstd_data', '--output=@OUTPUT@', 'Zstd', '--dict=@INPUT1@', files('test/resources.xrc')],
)
test('libembed',
executable('embed',
sources: [ 'test/main.cpp', resources_h, zstd_resources_h ],
dependencies: [ libembed_dep ]
)
)
endif # meson.is_subproject()
|