get platform info from build script

main
pantonshire 1 month ago
parent d4cacfb015
commit 643cc75f67

@ -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(

Loading…
Cancel
Save