https://doi.org/10.5201/ipol.2022.215
meson.build
project('paraws', 'cpp')
# set OpenMP flag
add_project_arguments('-fopenmp', language : 'cpp')
add_project_link_arguments('-fopenmp', language : 'cpp')
# clang has B&nW warnings by default!?
if meson.get_compiler('cpp').get_id() == 'clang'
add_project_arguments('-fcolor-diagnostics', language : 'cpp')
endif
# get timings
timing_opt = get_option('get_timings')
if timing_opt
add_project_arguments('-D BENCH', language : 'cpp')
endif
list_exec = [
'paraws'
]
# png dependency
png_dep = dependency ('libpng')
# release cxxflags
buildtype = get_option('buildtype')
if buildtype == 'release'
cxxflags = ['-DUSE_64BIT_IDS', '-DNDEBUG', '-ftree-vectorize',
'-ftree-slp-vectorize', '-march=native',
'-mtune=native', '-std=c++11']
add_project_arguments(cxxflags, language : 'cpp')
endif
subdir('src')
# tests on demand
tests_opt = get_option('build_tests')
if tests_opt
subdir('tests')
endif
foreach exec_name : list_exec
executable(
exec_name,
exec_name + '.cpp',
link_with : paraws_lib,
dependencies : [png_dep],
)
endforeach