summaryrefslogtreecommitdiff
path: root/ci/fuzzing/meson.build
blob: 0b4e30120c8a295a023f5ade0afb161a8666c113 (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
if get_option('oss_fuzz').disabled()
  subdir_done()
endif

fuzz_targets = [
  ['gst-discoverer.c', false, ['gstreamer-pbutils-1.0']],
  ['typefind.c'],
]

extra_sources = []
gst_dep = dependency('gstreamer-1.0')
common_deps = [gst_dep]

cxx = meson.get_compiler('cpp')
fuzzing_engine = cxx.find_library('FuzzingEngine', required: false)
if fuzzing_engine.found()
  common_deps += fuzzing_engine
else
  extra_sources += ['localfuzzer.c']
endif

foreach target : fuzz_targets
  file_name = target.get(0)
  test_name = file_name.split('.').get(0)

  extra_deps = []
  if target.length() >= 3
    extra_deps = dependency(target.get(2))
  endif

  skip_test = false
  if target.length() >= 2
    skip_test = target.get(1)
  endif
  if not skip_test
    exe = executable(test_name, [extra_sources, file_name],
      dependencies: common_deps + extra_deps,
    )
  endif
endforeach