aboutsummaryrefslogtreecommitdiff
path: root/meson.build
blob: dac9ca6e9a7b4320395f368bca7392d073a63d56 (plain)
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()