project(
'sc-lwt', 'c',
version: '0.7.1',
)
cc = meson.get_compiler('c')
sources = [
'scheduler.c',
'timers.c',
]
inc = include_directories('include')
libsc_collections_dep = dependency(
'sc-collections',
fallback : ['sc-collections', 'libsc_collections_dep'],
version: '>=0.7.0',
)
pthread_dep = cc.find_library('pthread', required : true)
ucontext_dep = cc.find_library('ucontext', required : false)
dependencies = [
libsc_collections_dep,
pthread_dep,
ucontext_dep,
]
libsc_lwt = library(
'sc-lwt',
sources,
include_directories : inc,
install : true,
dependencies : dependencies,
)
libsc_lwt_dep = declare_dependency(
include_directories : inc,
link_with : libsc_lwt,
)
pkg = import('pkgconfig')
pkg.generate(
libraries: libsc_lwt,
subdirs: 'include',
version: meson.project_version(),
name: 'libsc-lwt',
filebase: 'sc-lwt',
description: 'Lightweight threads from sc-libs',
)
simple_yielding_test = executable(
'simple_yielding',
['examples/simple_yielding.c'],
dependencies : dependencies + [libsc_lwt_dep],
)
test('simple yielding', simple_yielding_test)
poll_sleep_test = executable(
'poll_sleep',
['examples/poll_sleep.c'],
dependencies : dependencies + [libsc_lwt_dep],
)
test('poll sleep test', poll_sleep_test)
simple_sleep_test = executable(
'simple_sleep',
['examples/simple_sleep.c'],
dependencies : dependencies + [libsc_lwt_dep],
)
test('poll sleep test', poll_sleep_test)
if get_option('doc')
subdir('doc')
else
message('Documentation will not be built. Use -Ddoc to build it.')
endif