xref: /aosp_15_r20/external/libopus/celt/meson.build (revision a58d3d2adb790c104798cd88c8a3aff4fa8b82cc)
1celt_sources = sources['CELT_SOURCES']
2
3celt_sse_sources = sources['CELT_SOURCES_SSE']
4
5celt_sse2_sources = sources['CELT_SOURCES_SSE2']
6
7celt_sse4_1_sources = sources['CELT_SOURCES_SSE4_1']
8
9celt_avx2_sources = sources['CELT_SOURCES_AVX2']
10
11celt_neon_intr_sources = sources['CELT_SOURCES_ARM_NEON_INTR']
12
13celt_static_libs = []
14
15if host_cpu_family in ['x86', 'x86_64'] and opus_conf.has('OPUS_HAVE_RTCD')
16  celt_sources +=  sources['CELT_SOURCES_X86_RTCD']
17endif
18
19foreach intr_name : ['sse', 'sse2', 'sse4_1', 'avx2', 'neon_intr']
20  have_intr = get_variable('have_' + intr_name)
21  if not have_intr
22    continue
23  endif
24
25  intr_sources = get_variable('celt_@0@_sources'.format(intr_name))
26  intr_args = get_variable('opus_@0@_args'.format(intr_name), [])
27  celt_static_libs += static_library('celt_' + intr_name, intr_sources,
28      c_args: intr_args,
29      include_directories: opus_includes,
30      install: false)
31endforeach
32
33have_arm_intrinsics_or_asm = have_arm_ne10
34if (intrinsics_support.length() + asm_optimization.length() + inline_optimization.length()) > 0
35  have_arm_intrinsics_or_asm = true
36endif
37
38if host_cpu_family in ['arm', 'aarch64'] and have_arm_intrinsics_or_asm
39  if opus_conf.has('OPUS_HAVE_RTCD')
40    celt_sources +=  sources['CELT_SOURCES_ARM_RTCD']
41  endif
42  if have_arm_ne10
43    celt_sources += sources['CELT_SOURCES_ARM_NE10']
44  endif
45  if opus_arm_external_asm
46    arm2gnu = [find_program('arm/arm2gnu.pl')] + arm2gnu_args
47    celt_sources_arm_asm = configure_file(input: 'arm/celt_pitch_xcorr_arm.s',
48      output: '@[email protected]',
49      command: arm2gnu + ['@INPUT@'],
50      capture: true)
51    celt_arm_armopts_s = configure_file(input: 'arm/armopts.s.in',
52      output: 'arm/armopts.s',
53      configuration: opus_conf)
54    celt_static_libs += static_library('celt-armasm',
55      celt_arm_armopts_s, celt_sources_arm_asm,
56      install: false)
57  endif
58endif
59
60celt_c_args = []
61if host_system == 'windows'
62  celt_c_args += ['-DDLL_EXPORT']
63endif
64
65celt_lib = static_library('opus-celt',
66  celt_sources,
67  c_args: celt_c_args,
68  include_directories: opus_includes,
69  link_whole: celt_static_libs,
70  dependencies: libm,
71  install: false)
72