diff --git a/meson.build b/meson.build index fdee116..24b1b37 100644 --- a/meson.build +++ b/meson.build @@ -1,21 +1,57 @@ project( - 'owdtest', + 'owdt', 'c', default_options : ['c_std=c17'] ) +eventloop_epoll = 'epoll' +eventloop_kqueue = 'kqueue' + +platform_info = { + 'linux': { + 'eventloop': eventloop_epoll, + }, + 'freebsd': { + 'eventloop': eventloop_kqueue, + }, + 'openbsd': { + 'eventloop': eventloop_kqueue, + }, + 'netbsd': { + 'eventloop': eventloop_kqueue, + }, + 'dragonfly': { + 'eventloop': eventloop_kqueue, + }, + 'darwin': { + 'eventloop': eventloop_kqueue, + }, +}[target_machine.system()] + +eventloop_info = { + eventloop_epoll: { + 'path': 'src/eventloop_epoll.c', + }, + eventloop_kqueue: { + 'path': 'src/eventloop_kqueue.c', + }, +}[platform_info['eventloop']] + sources = [ 'src/main.c', 'src/server.c', 'src/client.c', 'src/str.c', 'src/eventloop.c', + eventloop_info['path'], ] includes = include_directories('include') args = [ - '-Wall' + '-Wall', + '-DOWD_PLATFORM_' + target_machine.system().to_upper(), + '-DOWD_EVENTLOOP_' + platform_info['eventloop'].to_upper(), ] executable(