• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1decklink_sources = [
2  'gstdecklinkplugin.cpp',
3  'gstdecklink.cpp',
4  'gstdecklinkaudiosink.cpp',
5  'gstdecklinkvideosink.cpp',
6  'gstdecklinkaudiosrc.cpp',
7  'gstdecklinkvideosrc.cpp',
8  'gstdecklinkdeviceprovider.cpp',
9]
10
11if get_option('decklink').disabled()
12  subdir_done()
13endif
14
15build_decklink = false
16decklink_ldflags = []
17decklink_libs = []
18
19if host_system == 'windows'
20  decklink_sources += ['win/DeckLinkAPIDispatch.cpp', 'win/DeckLinkAPI_i.c']
21  if cxx.get_id() == 'msvc'
22    # FIXME: Use commsuppwd.lib for debug builds?
23    comutil_dep = cxx.find_library('comsuppw', required : get_option('decklink'))
24    if comutil_dep.found()
25      build_decklink = true
26      decklink_libs = [comutil_dep]
27    endif
28  else
29    build_decklink = true
30  endif
31else
32  libdl = cc.find_library('dl', required: get_option('decklink'))
33  have_pthread_h = cdata.has('HAVE_PTHREAD_H')
34  if libdl.found() and have_pthread_h
35    decklink_libs = [libm, libdl, dependency('threads')]
36    if host_system == 'linux'
37      decklink_sources += ['linux/DeckLinkAPIDispatch.cpp']
38      build_decklink = true
39    elif ['darwin', 'ios'].contains(host_system)
40      decklink_sources += ['osx/DeckLinkAPIDispatch.cpp']
41      decklink_ldflags = ['-Wl,-framework,CoreFoundation']
42      build_decklink = true
43    endif
44  endif
45endif
46
47if build_decklink
48  message('Building decklink plugin')
49  decklink = library('gstdecklink',
50    decklink_sources,
51    cpp_args : gst_plugins_bad_args + [ '-DGST_USE_UNSTABLE_API' ],
52    link_args : decklink_ldflags + noseh_link_args,
53    include_directories : [configinc],
54    dependencies : [gstvideo_dep, gstaudio_dep, gstbase_dep, gst_dep] + decklink_libs,
55    install : true,
56    install_dir : plugins_install_dir,
57  )
58  pkgconfig.generate(decklink, install_dir : plugins_pkgconfig_install_dir)
59  plugins += [decklink]
60else
61  message('Not building decklink plugin for "@0@'.format(host_machine.system()))
62endif
63