summaryrefslogtreecommitdiff
path: root/src/zeroconf/meson.build
blob: e1ca38e24737bb0d2e7240fca0a69203d959940b (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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
zeroconf_option = get_option('zeroconf')

libavahi_client_dep = dependency('', required: false)

if zeroconf_option == 'auto'
  if is_darwin
    # Bonjour disabled for now because its build is broken
    #zeroconf_option = 'bonjour'
    zeroconf_option = 'disabled'
  elif is_android or is_windows
    zeroconf_option = 'disabled'
  elif dbus_dep.found()
    libavahi_client_dep = dependency('avahi-client', required: false)
    if libavahi_client_dep.found()
      zeroconf_option = 'avahi'
    else
      zeroconf_option = 'disabled'
    endif
  else
    zeroconf_option = 'disabled'
  endif
endif

if zeroconf_option == 'disabled'
  zeroconf_dep = dependency('', required: false)
  subdir_done()
endif

if zeroconf_option == 'bonjour'
  if not compiler.has_header('dns_sd.h')
    error('dns_sd.h not found')
  endif

  if is_darwin
    bonjour_dep = declare_dependency(link_args: ['-framework', 'dnssd'])
  else
    bonjour_dep = declare_dependency(link_args: ['-ldns_sd'])
  endif
  conf.set('HAVE_BONJOUR', true)

  zeroconf = static_library(
    'zeroconf_bonjour',
    'ZeroconfGlue.cxx',
    'ZeroconfBonjour.cxx',
    include_directories: inc,
  )

  zeroconf_dep = declare_dependency(
    link_with: zeroconf,
    dependencies: [
      bonjour_dep,
      log_dep,
    ],
  )
else
  if not libavahi_client_dep.found()
    libavahi_client_dep = dependency('avahi-client')
  endif

  conf.set('HAVE_AVAHI', true)
  
  zeroconf = static_library(
    'zeroconf_bonjour',
    'ZeroconfGlue.cxx',
    'ZeroconfAvahi.cxx',
    'AvahiPoll.cxx',
    include_directories: inc,
    dependencies: [
      libavahi_client_dep,
      dbus_dep,
      time_dep,
      log_dep,
    ],
  )

  zeroconf_dep = declare_dependency(
    link_with: zeroconf,
  )
endif

conf.set('HAVE_ZEROCONF', true)