project('simd', 'c') simd = import('unstable-simd') cc = meson.get_compiler('c') cdata = configuration_data() if not meson.is_cross_build() and host_machine.cpu_family() == 'arm' and cc.get_id() == 'clang' message('Adding -march=armv7 because assuming that this build happens on Raspbian.') message('Its Clang seems to be misconfigured and does not support NEON by default.') add_project_arguments('-march=armv7', language : 'c') endif if cc.get_id() == 'msvc' and cc.version().version_compare('<17') error('MESON_SKIP_TEST VS2010 produces broken binaries on x86.') endif # FIXME add [a, b] = function() rval = simd.check('mysimds', mmx : 'simd_mmx.c', sse : 'simd_sse.c', sse2 : 'simd_sse2.c', sse3 : 'simd_sse3.c', ssse3 : 'simd_ssse3.c', sse41 : 'simd_sse41.c', sse42 : 'simd_sse42.c', avx : 'simd_avx.c', avx2 : 'simd_avx2.c', neon : 'simd_neon.c', compiler : cc) simdlibs = rval[0] cdata.merge_from(rval[1]) configure_file(output : 'simdconfig.h', configuration : cdata) p = executable('simdtest', 'simdchecker.c', 'fallback.c', link_with : simdlibs) test('simdtest', p)