summaryrefslogtreecommitdiff
path: root/src/codec/meson.build
blob: 7dfc66840abd763488008f8e2fdec90ed13697ff (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
50
51
52
53
54
55
56
57
58
59
codec_src = ['packet_ext.c', 'codecs.c']

codec_server_deps = []
codec_client_deps = []

if 'ffmpeg' in get_option('codecs')
  subdir('ffmpeg')
endif

if 'stb_image' in get_option('codecs')
  stb = []
  stb_args = ['-DCAMU_HAVE_STB_IMAGE']
  stb_deps = []
  if get_option('codec-stbi-use-wuffs')
    stb_args += ['-DCAMU_STBI_USE_WUFFS']
    if not compiler.check_header('wuffs/wuffs-v0.4.c')
      wuffs = [subproject('wuffs').get_variable('wuffs')]
      stb_deps += [wuffs]
      stb_args += ['-DCAMU_LOCAL_WUFFS']
    endif
  else
    if not compiler.check_header('stb/stb_image.h')
      stb = [subproject('stb').get_variable('stb')]
      stb_deps += [stb]
      stb_args += ['-DCAMU_LOCAL_STB']
    endif
  endif
  stb_codec = declare_dependency(sources: ['stb_image.c'],
    dependencies: stb_deps, compile_args: stb_args)
  codec_server_deps += [stb_codec]
  codec_client_deps += [stb_codec]
endif

if 'wuffs' in get_option('codecs')
  wuffs = []
  wuffs_args = ['-DCAMU_HAVE_WUFFS']
  if not compiler.check_header('wuffs/wuffs-v0.4.c')
    wuffs = [subproject('wuffs').get_variable('wuffs')]
    wuffs_args += ['-DCAMU_LOCAL_WUFFS']
  endif
  wuffs_codec = declare_dependency(sources: ['wuffs.c'],
    dependencies: wuffs, compile_args: wuffs_args)
  codec_server_deps += [wuffs_codec]
  codec_client_deps += [wuffs_codec]
endif

if 'spng' in get_option('codecs')
  spng = dependency('spng')
  spng_args = ['-DCAMU_HAVE_SPNG']
  spng_codec = declare_dependency(sources: ['spng.c'],
    dependencies: spng, compile_args: spng_args)
  codec_server_deps += [spng_codec]
  codec_client_deps += [spng_codec]
endif

codec_client_deps += [stela]

codecs_server = declare_dependency(sources: codec_src, dependencies: codec_server_deps)
codecs_client = declare_dependency(sources: codec_src, dependencies: codec_client_deps)