project('EMPER', 'c', 'cpp', version: '0.0.1-alpha1-SNAPSHOT', default_options : [ 'warning_level=3', 'c_std=gnu11', 'cpp_std=c++2a', 'b_ndebug=if-release', 'werror=true', ]) # TODO: Re-enable that warning. add_project_arguments('-Wno-non-virtual-dtor', language: 'cpp') thread_dep = dependency('threads') emper_dependencies = [thread_dep] run_target('iwyu', command: 'tools/check-iwyu') conf_data = configuration_data() option_urcu = get_option('userspace_rcu') conf_data.set('EMPER_LIBURCU', option_urcu) if option_urcu liburcu_dep = dependency('liburcu') emper_dependencies += [liburcu_dep] endif conf_data.set('EMPER_WORKER_SLEEP', get_option('worker_sleep')) conf_data.set('EMPER_WORKER_WAKEUP_ALL', get_option('worker_wakeup_strategy') == 'all') conf_data.set('EMPER_LOCKED_WS_QUEUE', get_option('locked_ws_queue')) conf_data.set('EMPER_OVERFLOW_QUEUE', get_option('overflow_queue')) conf_data.set('EMPER_LOCKED_MPSC_QUEUE', get_option('locked_mpsc_queue')) conf_data.set('EMPER_STATS', get_option('stats')) default_scheduling_strategy = get_option('default_scheduling_strategy') conf_data.set('EMPER_DEFAULT_SCHEDULING_STRATEGY_' + default_scheduling_strategy.to_upper(), true) log_level = get_option('log_level') if log_level == 'automatic' # output only error messages in release builds log_level = get_option('buildtype') == 'release' ? 'Error' : 'ALL' # turn logging of during compilation elif log_level == 'OFF' conf_data.set('EMPER_LOG_OFF', true) endif conf_data.set('EMPER_LOG_LEVEL', log_level) subdir('emper') subdir('tests') subdir('apps') subdir('eval') subdir('doc')