Skip to content
Snippets Groups Projects
meson.build 1.51 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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_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')