meson.build 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. silk_sources = sources['SILK_SOURCES']
  2. silk_sources_sse4_1 = sources['SILK_SOURCES_SSE4_1']
  3. silk_sources_neon_intr = sources['SILK_SOURCES_ARM_NEON_INTR']
  4. silk_sources_fixed_neon_intr = sources['SILK_SOURCES_FIXED_ARM_NEON_INTR']
  5. silk_sources_fixed = sources['SILK_SOURCES_FIXED']
  6. silk_sources_fixed_sse4_1 = sources['SILK_SOURCES_FIXED_SSE4_1']
  7. silk_sources_float = sources['SILK_SOURCES_FLOAT']
  8. if opt_fixed_point
  9. silk_sources += silk_sources_fixed
  10. else
  11. silk_sources += silk_sources_float
  12. endif
  13. silk_includes = [opus_includes, include_directories('float', 'fixed')]
  14. silk_static_libs = []
  15. if host_cpu_family in ['x86', 'x86_64'] and opus_conf.has('OPUS_HAVE_RTCD')
  16. silk_sources += sources['SILK_SOURCES_X86_RTCD']
  17. endif
  18. if host_cpu_family in ['arm', 'aarch64'] and have_arm_intrinsics_or_asm
  19. if opus_conf.has('OPUS_HAVE_RTCD')
  20. silk_sources += sources['SILK_SOURCES_ARM_RTCD']
  21. endif
  22. endif
  23. foreach intr_name : ['sse4_1', 'neon_intr']
  24. have_intr = get_variable('have_' + intr_name)
  25. if not have_intr
  26. continue
  27. endif
  28. intr_sources = get_variable('silk_sources_' + intr_name)
  29. if opt_fixed_point
  30. intr_sources += get_variable('silk_sources_fixed_' + intr_name)
  31. endif
  32. intr_args = get_variable('opus_@0@_args'.format(intr_name), [])
  33. silk_static_libs += static_library('silk_' + intr_name, intr_sources,
  34. c_args: intr_args,
  35. include_directories: silk_includes,
  36. install: false)
  37. endforeach
  38. silk_c_args = []
  39. if host_machine.system() == 'windows'
  40. silk_c_args += ['-DDLL_EXPORT']
  41. endif
  42. silk_lib = static_library('opus-silk',
  43. silk_sources,
  44. c_args: silk_c_args,
  45. include_directories: silk_includes,
  46. link_whole: silk_static_libs,
  47. dependencies: libm,
  48. install: false)