Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.xiph.org/xiph/opus.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/celt
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.com>2016-03-19 18:40:22 +0300
committerNirbheek Chauhan <nirbheek@centricular.com>2020-10-28 19:59:08 +0300
commitc2b542b6c02bafbe7a83b2eeec6cb5a0bfa3ed0d (patch)
treed788ad2c57bd1ccaae6aa73dced21c83c59df1b1 /celt
parent034c1b61a250457649d788bbf983b3f0fb63f02e (diff)
Add support for Meson build system
Tested on: - Linux/x86* with gcc - Android armv7 arm64 x86 x86_64 with clang - Windows x86 x86_64 with Visual Studio 2017 - Windows x86 x86_64 with MinGW - macOS x86_64 with clang - iOS arm64 x86_64 with clang Co-authored by: Nirbheek Chauhan <nirbheek@centricular.com> https://gitlab.xiph.org/xiph/opus/-/merge_requests/13
Diffstat (limited to 'celt')
-rw-r--r--celt/meson.build63
-rw-r--r--celt/tests/meson.build19
2 files changed, 82 insertions, 0 deletions
diff --git a/celt/meson.build b/celt/meson.build
new file mode 100644
index 00000000..370ea1fe
--- /dev/null
+++ b/celt/meson.build
@@ -0,0 +1,63 @@
+celt_sources = sources['CELT_SOURCES']
+
+celt_sse_sources = sources['CELT_SOURCES_SSE']
+
+celt_sse2_sources = sources['CELT_SOURCES_SSE2']
+
+celt_sse4_1_sources = sources['CELT_SOURCES_SSE4_1']
+
+celt_neon_intr_sources = sources['CELT_SOURCES_ARM_NEON_INTR']
+
+celt_static_libs = []
+
+foreach intr_name : ['sse', 'sse2', 'sse4_1', 'neon_intr']
+ have_intr = get_variable('have_' + intr_name)
+ if not have_intr
+ continue
+ endif
+
+ intr_sources = get_variable('celt_@0@_sources'.format(intr_name))
+ intr_args = get_variable('opus_@0@_args'.format(intr_name), [])
+ celt_static_libs += static_library('celt_' + intr_name, intr_sources,
+ c_args: intr_args,
+ include_directories: opus_includes,
+ install: false)
+endforeach
+
+have_arm_intrinsics_or_asm = have_arm_ne10
+if (intrinsics_support.length() + asm_optimization.length() + inline_optimization.length()) > 0
+ have_arm_intrinsics_or_asm = true
+endif
+
+if host_cpu_family in ['arm', 'aarch64'] and have_arm_intrinsics_or_asm
+ celt_sources += sources['CELT_SOURCES_ARM']
+ if have_arm_ne10
+ celt_sources += sources['CELT_SOURCES_ARM_NE10']
+ endif
+ if opus_arm_external_asm
+ arm2gnu = [find_program('arm/arm2gnu.pl')] + arm2gnu_args
+ celt_sources_arm_asm = configure_file(input: 'arm/celt_pitch_xcorr_arm.s',
+ output: '@BASENAME@-gnu.S',
+ command: arm2gnu + ['@INPUT@'],
+ capture: true)
+ celt_arm_armopts_s = configure_file(input: 'arm/armopts.s.in',
+ output: 'arm/armopts.s',
+ configuration: opus_conf)
+ celt_static_libs += static_library('celt-armasm',
+ celt_arm_armopts_s, celt_sources_arm_asm,
+ install: false)
+ endif
+endif
+
+celt_c_args = []
+if host_system == 'windows'
+ celt_c_args += ['-DDLL_EXPORT']
+endif
+
+celt_lib = static_library('opus-celt',
+ celt_sources,
+ c_args: celt_c_args,
+ include_directories: opus_includes,
+ link_whole: celt_static_libs,
+ dependencies: libm,
+ install: false)
diff --git a/celt/tests/meson.build b/celt/tests/meson.build
new file mode 100644
index 00000000..0e6d2e62
--- /dev/null
+++ b/celt/tests/meson.build
@@ -0,0 +1,19 @@
+tests = [
+ 'test_unit_types',
+ 'test_unit_mathops',
+ 'test_unit_entropy',
+ 'test_unit_laplace',
+ 'test_unit_dft',
+ 'test_unit_mdct',
+ 'test_unit_rotation',
+ 'test_unit_cwrs32',
+]
+
+foreach test_name : tests
+ exe = executable(test_name, '@0@.c'.format(test_name),
+ include_directories : opus_includes,
+ link_with : [celt_lib, celt_static_libs],
+ dependencies : libm,
+ install : false)
+ test(test_name, exe)
+endforeach