|
|
|
@ -1,21 +1,57 @@
|
|
|
|
project(
|
|
|
|
project(
|
|
|
|
'owdtest',
|
|
|
|
'owdt',
|
|
|
|
'c',
|
|
|
|
'c',
|
|
|
|
default_options : ['c_std=c17']
|
|
|
|
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 = [
|
|
|
|
sources = [
|
|
|
|
'src/main.c',
|
|
|
|
'src/main.c',
|
|
|
|
'src/server.c',
|
|
|
|
'src/server.c',
|
|
|
|
'src/client.c',
|
|
|
|
'src/client.c',
|
|
|
|
'src/str.c',
|
|
|
|
'src/str.c',
|
|
|
|
'src/eventloop.c',
|
|
|
|
'src/eventloop.c',
|
|
|
|
|
|
|
|
eventloop_info['path'],
|
|
|
|
]
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
includes = include_directories('include')
|
|
|
|
includes = include_directories('include')
|
|
|
|
|
|
|
|
|
|
|
|
args = [
|
|
|
|
args = [
|
|
|
|
'-Wall'
|
|
|
|
'-Wall',
|
|
|
|
|
|
|
|
'-DOWD_PLATFORM_' + target_machine.system().to_upper(),
|
|
|
|
|
|
|
|
'-DOWD_EVENTLOOP_' + platform_info['eventloop'].to_upper(),
|
|
|
|
]
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
executable(
|
|
|
|
executable(
|
|
|
|
|