meson.build 1.26 KB
Newer Older
1 2 3 4
event_features = configuration_data()
event_features.set('USE_EVENTFD', is_linux and get_option('eventfd'))
event_features.set('USE_SIGNALFD', is_linux and get_option('signalfd'))
event_features.set('USE_EPOLL', is_linux and get_option('epoll'))
5
event_features.set('HAVE_THREADED_EVENT_LOOP', true)
6 7
configure_file(output: 'Features.h', configuration: event_features)

8 9 10 11 12 13
event_sources = []

if uring_dep.found()
  event_sources += 'UringManager.cxx'
endif

14
if is_windows
15
  event_sources += 'WinSelectBackend.cxx'
16 17 18
elif is_linux and get_option('epoll')
  # epoll support is header-only
else
19
  event_sources += 'PollBackend.cxx'
20 21
endif

22 23 24
event = static_library(
  'event',
  'SignalMonitor.cxx',
25
  'TimerWheel.cxx',
26
  'TimerList.cxx',
27
  'CoarseTimerEvent.cxx',
28
  'FineTimerEvent.cxx',
29
  'IdleEvent.cxx',
30
  'InjectEvent.cxx',
31 32
  'DeferEvent.cxx',
  'MaskMonitor.cxx',
33
  'SocketEvent.cxx',
34 35 36 37 38 39 40
  'BufferedSocket.cxx',
  'FullyBufferedSocket.cxx',
  'MultiSocketMonitor.cxx',
  'ServerSocket.cxx',
  'Call.cxx',
  'Thread.cxx',
  'Loop.cxx',
41
  event_sources,
42
  include_directories: inc,
43 44
  dependencies: [
    boost_dep,
45
    log_dep,
46
    uring_dep,
47
  ],
48 49 50 51 52 53
)

event_dep = declare_dependency(
  link_with: event,
  dependencies: [
    thread_dep,
54
    net_dep,
55 56
    system_dep,
    boost_dep,
57
    uring_dep,
58 59
  ],
)