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
|
# Generate a compilation test for each SPA header, excluding the type-info.h
# ones which have circular dependencies and take some effort to fix.
# Do it for C++ if possible (picks up C++-specific errors), otherwise for C.
find = find_program('find', required: false)
summary({'find (for header testing)': find.found()}, bool_yn: true, section: 'Optional programs')
if find.found()
spa_headers = run_command(find,
meson.project_source_root() / 'spa' / 'include',
'-name', '*.h',
'-not', '-name', 'type-info.h',
'-type', 'f',
'-printf', '%P\n',
check: false)
foreach spa_header : spa_headers.stdout().split('\n')
if spa_header.endswith('.h') # skip empty lines
ext = have_cpp ? 'cpp' : 'c'
src = configure_file(input: 'spa-include-test-template.c',
output: 'spa-include-test-@0@.@1@'.format(spa_header.underscorify(), ext),
configuration: {
'INCLUDE': spa_header,
})
executable('spa-include-test-@0@'.format(spa_header.underscorify()),
src,
dependencies: [ spa_dep ],
install: false)
endif
endforeach
endif
benchmark_apps = [
'stress-ringbuffer',
'benchmark-pod',
'benchmark-dict',
]
foreach a : benchmark_apps
benchmark('spa-' + a,
executable('spa-' + a, a + '.c',
dependencies : [ spa_dep, dl_lib, pthread_lib, mathlib ],
install : installed_tests_enabled,
install_dir : installed_tests_execdir,
),
env : [
'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable('plugindir')),
]
)
if installed_tests_enabled
test_conf = configuration_data()
test_conf.set('exec', installed_tests_execdir / 'spa-' + a)
configure_file(
input: installed_tests_template,
output: 'spa-' + a + '.test',
install_dir: installed_tests_metadir,
configuration: test_conf,
)
endif
endforeach
|