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.

75 lines
1.3 KiB
Meson

project(
'tlsl',
'c',
default_options : ['c_std=gnu11,c11'],
meson_version: '>=1.1'
)
eventloop_epoll = 'epoll'
eventloop_kqueue = 'kqueue'
platform_info = {
'linux': {
'eventloop': eventloop_epoll,
},
'freebsd': {
'eventloop': eventloop_kqueue,
},
'openbsd': {
'eventloop': eventloop_kqueue,
},
'netbsd': {
'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/str.c',
'src/eventloop.c',
'src/array_list.c',
eventloop_info['path'],
]
includes = include_directories('include')
public_includes = include_directories('include/public')
args = [
'-Wall',
'-DTLSL_PLATFORM_' + target_machine.system().to_upper(),
'-DTLSL_EVENTLOOP_' + platform_info['eventloop'].to_upper(),
]
tlsl_lib = shared_library(
meson.project_name(),
sources,
include_directories: includes,
c_args: args,
)
tlsl_dep = declare_dependency(
include_directories: public_includes,
link_with: tlsl_lib,
)
if get_option('examples')
executable(
'example_eventloop',
[ 'examples/eventloop.c' ],
dependencies: tlsl_dep,
install: false,
)
endif