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