meson.build 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. project('simd', 'c')
  2. simd = import('unstable-simd')
  3. cc = meson.get_compiler('c')
  4. cdata = configuration_data()
  5. if not meson.is_cross_build() and host_machine.cpu_family() == 'arm' and cc.get_id() == 'clang'
  6. message('Adding -march=armv7 because assuming that this build happens on Raspbian.')
  7. message('Its Clang seems to be misconfigured and does not support NEON by default.')
  8. add_project_arguments('-march=armv7', language : 'c')
  9. endif
  10. if cc.get_id() == 'msvc' and cc.version().version_compare('<17')
  11. error('MESON_SKIP_TEST VS2010 produces broken binaries on x86.')
  12. endif
  13. # FIXME add [a, b] = function()
  14. rval = simd.check('mysimds',
  15. mmx : 'simd_mmx.c',
  16. sse : 'simd_sse.c',
  17. sse2 : 'simd_sse2.c',
  18. sse3 : 'simd_sse3.c',
  19. ssse3 : 'simd_ssse3.c',
  20. sse41 : 'simd_sse41.c',
  21. sse42 : 'simd_sse42.c',
  22. avx : 'simd_avx.c',
  23. avx2 : 'simd_avx2.c',
  24. neon : 'simd_neon.c',
  25. compiler : cc,
  26. include_directories : include_directories('include'))
  27. simdlibs = rval[0]
  28. cdata.merge_from(rval[1])
  29. configure_file(output : 'simdconfig.h',
  30. configuration : cdata)
  31. p = executable('simdtest', 'simdchecker.c', 'fallback.c',
  32. link_with : simdlibs)
  33. test('simdtest', p)