From c2b542b6c02bafbe7a83b2eeec6cb5a0bfa3ed0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Sat, 19 Mar 2016 15:40:22 +0000 Subject: 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 https://gitlab.xiph.org/xiph/opus/-/merge_requests/13 --- celt/meson.build | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ celt/tests/meson.build | 19 +++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 celt/meson.build create mode 100644 celt/tests/meson.build (limited to 'celt') 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 -- cgit v1.2.3