You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.1 KiB
Meson
63 lines
1.1 KiB
Meson
project(
|
|
'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',
|
|
'-DOWD_PLATFORM_' + target_machine.system().to_upper(),
|
|
'-DOWD_EVENTLOOP_' + platform_info['eventloop'].to_upper(),
|
|
]
|
|
|
|
executable(
|
|
meson.project_name(),
|
|
sources,
|
|
include_directories: includes,
|
|
c_args: args
|
|
)
|