get platform info from build script
This commit is contained in:
1 parent
d4cacfb015
commit
643cc75f67
1 file changed
+38
-2
+38
-2
@@ -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(
|
||||||
|
|||||||
Reference in new issue
Block a user