meson: Convert the 'neon' option into a feature
Easier to express things, now that runtime is a no-op.
This commit is contained in:
parent
d63a2c9714
commit
54a632f018
24
meson.build
24
meson.build
@ -135,9 +135,7 @@ if host_machine.cpu_family() == 'arm'
|
||||
have_neon = true
|
||||
endif
|
||||
endif
|
||||
if cc.compiles('''#ifndef __aarch64__
|
||||
#error no aarch64 arch
|
||||
#endif''')
|
||||
if host_machine.cpu_family() == 'aarch64'
|
||||
have_arm64 = true
|
||||
have_neon = true
|
||||
arch_cflags += ['-DWEBRTC_ARCH_ARM64']
|
||||
@ -165,23 +163,9 @@ if ['x86', 'x86_64'].contains(host_machine.cpu_family())
|
||||
endif
|
||||
endif
|
||||
|
||||
neon_opt = get_option('neon')
|
||||
if neon_opt == 'auto'
|
||||
if have_arm64
|
||||
neon_opt = 'yes'
|
||||
elif have_neon
|
||||
neon_opt = 'runtime'
|
||||
else
|
||||
neon_opt = 'no'
|
||||
endif
|
||||
endif
|
||||
if neon_opt != 'no' and not have_neon
|
||||
error('Compiler or architecture does not support NEON')
|
||||
endif
|
||||
if neon_opt == 'runtime'
|
||||
warning('webrtc cannot check NEON support at runtime, will build without NEON')
|
||||
endif
|
||||
if neon_opt == 'yes'
|
||||
neon_opt = get_option('neon').require(have_neon)
|
||||
|
||||
if neon_opt.enabled()
|
||||
arch_cflags += ['-DWEBRTC_HAS_NEON']
|
||||
if not have_arm64
|
||||
arch_cflags += ['-mfpu=neon']
|
||||
|
@ -1,8 +1,8 @@
|
||||
option('gnustl', type: 'feature',
|
||||
value: 'auto',
|
||||
description: 'Use gnustl for a c++ library implementation (only used on Android)')
|
||||
option('neon', type: 'combo',
|
||||
choices: ['auto', 'yes', 'runtime', 'no'],
|
||||
option('neon', type: 'feature',
|
||||
value: 'auto',
|
||||
description: 'Enable NEON optimisations')
|
||||
option('inline-sse', type: 'boolean',
|
||||
value: true,
|
||||
|
@ -112,7 +112,7 @@ if have_armv7
|
||||
]
|
||||
endif
|
||||
|
||||
if neon_opt == 'yes'
|
||||
if neon_opt.enabled()
|
||||
common_audio_sources += [
|
||||
'fir_filter_neon.cc',
|
||||
'resampler/sinc_resampler_neon.cc',
|
||||
|
@ -180,7 +180,7 @@ else
|
||||
]
|
||||
endif
|
||||
|
||||
if neon_opt == 'yes'
|
||||
if neon_opt.enabled()
|
||||
webrtc_audio_processing_sources += [
|
||||
'aecm/aecm_core_neon.cc',
|
||||
]
|
||||
|
6
webrtc/third_party/pffft/meson.build
vendored
6
webrtc/third_party/pffft/meson.build
vendored
@ -4,11 +4,7 @@ pffft_sources = [
|
||||
|
||||
pffft_cflags = [ '-D_GNU_SOURCE' ]
|
||||
|
||||
if neon_opt == 'runtime'
|
||||
warning('pffft cannot check NEON support at runtime, will build without NEON')
|
||||
endif
|
||||
|
||||
if not have_inline_sse or (have_arm and neon_opt != 'yes') or (have_mips and host_machine.endian() == 'little') or have_mips64
|
||||
if not have_inline_sse or (have_arm and not neon_opt.enabled()) or (have_mips and host_machine.endian() == 'little') or have_mips64
|
||||
pffft_cflags += [ '-DPFFFT_SIMD_DISABLE' ]
|
||||
endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user