project('simdjson', 'cpp', version: '1.0.2', meson_version: '>=0.49.2', default_options: ['buildtype=release', 'cpp_std=c++11', 'b_ndebug=if-release'], license: 'Apache', ) public_incl = include_directories('include') compiler_opts = [] if not get_option('simdjson_implementation_haswell') compiler_opts += ['-DSIMDJSON_IMPLEMENTATION_HASWELL=0'] endif if not get_option('simdjson_implementation_westmere') compiler_opts += ['-DSIMDJSON_IMPLEMENTATION_WESTMERE=0'] endif if not get_option('simdjson_implementation_arm64') compiler_opts += ['-DSIMDJSON_IMPLEMENTATION_ARM64=0'] endif if not get_option('simdjson_implementation_fallback') compiler_opts += ['-DSIMDJSON_IMPLEMENTATION_FALLBACK=0'] endif if not get_option('simdjson_exceptions') compiler_opts += ['-DSIMDJSON_EXCEPTIONS=0'] endif thread_dep = dependency('threads', required: get_option('simdjson_enable_threads')) if thread_dep.found() compiler_opts += ['-DSIMDJSON_THREADS_ENABLED=1'] endif cpp_comp = meson.get_compiler('cpp') if cpp_comp.get_argument_syntax() == 'gcc' and (host_machine.cpu_family() == 'x86_64' or host_machine.cpu_family() == 'x86') compiler_opts += ['-mno-avx256-split-unaligned-load', '-mno-avx256-split-unaligned-store'] endif subdir('src')