diff options
author | Matthew Waters <matthew@centricular.com> | 2018-10-28 00:41:51 +1100 |
---|---|---|
committer | Matthew Waters <matthew@centricular.com> | 2018-10-28 23:25:18 +1100 |
commit | eb398328abafc8287f1d9b8e1df7a64d6fc364a0 (patch) | |
tree | d276e29348410ea7c73fcb0e17c11d0e434c6c75 /meson.build | |
parent | e882a5442ac22c93648e12837248d651d18b9247 (diff) | |
download | webrtc-audio-processing-eb398328abafc8287f1d9b8e1df7a64d6fc364a0.tar.gz |
Initial meson build files
Diffstat (limited to 'meson.build')
-rw-r--r-- | meson.build | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..f84271f --- /dev/null +++ b/meson.build @@ -0,0 +1,110 @@ +poject('webrtc-audio-processing', 'c', 'cpp', + version : '0.3.1', + meson_version : '>= 0.47', + default_options : [ 'warning_level=1', + 'buildtype=debugoptimized' ]) + +soversion = 0 + +cc = meson.get_compiler('c') + +host_system = host_machine.system() + +platform_cflags = [] +os_cflags = [] +os_deps = [] +have_posix = false +have_win = false + +if ['darwin', 'ios'].contains(host_system) + os_cflags = ['-DWEBRTC_MAC', '-DWEBRTC_THREAD_RR', '-DWEBRTC_CLOCK_TYPE_REALTIME'] + if host_system == 'ios' + os_cflags += ['-DWEBRTC_IOS'] + endif + platform_cflags += ['-D WEBRTC_POSIX'] + have_posix = true +elif host_system == 'android' + os_cflags += ['-DWEBRTC_ANDROID', '-DWEBRTC_LINUX', '-DWEBRTC_THREAD_RR', '-DWEBRTC_CLOCK_TYPE_REALTIME'] + os_deps += [cc.find_library('log')] + os_deps += [dependency('gnustl', required : get_option('gnustl'))] + platform_cflags += ['-DWEBRTC_POSIX'] + have_posix = true +elif host_system == 'linux' + os_cflags += ['-DWEBRTC_LINUX', '-DWEBRTC_THREAD_RR'] + os_deps += [cc.find_library('rt', required : false)] + os_deps += [dependency('threads')] + platform_cflags += ['-DWEBRTC_POSIX'] + have_posix = true +elif host_system == 'windows' + platform_cflags += ['-DWEBRTC_WIN', '-D_WIN32', '-U__STRICT_ANSI__'] + os_deps += [cc.find_library('winmm')] + have_win = true +endif + +arch_cflags = [] +have_arm = false +have_armv7 = false +have_neon = false +have_x86 = false +if ['arm', 'armv7', 'aarch64'].contains(host_machine.cpu_family()) + have_arm = true + arch_cflags = ['-DWEBRTC_ARCH_ARM'] + if cc.compiles('''#ifndef __ARM_ARCH_7A__ +#error no armv7 arch +#endif''') + have_armv7 = true + arch_cflags = ['-DWEBRTC_ARCH_ARM_V7'] + endif + if cc.compiles('''#ifndef __aarch64__ +#error no aarch64 arch +#endif''') + have_neon = true + arch_cflags = ['-DWEBRTC_ARCH_ARM64', '-DWEBRTC_HAS_NEON'] + endif +endif +if ['x86', 'x86_64'].contains(host_machine.cpu_family()) + have_x86 = true +endif + +neon_opt = get_option('neon') +if neon_opt != 'no' + if neon_opt != 'runtime' + if cc.compiles('#include <arm_neon.h>', args : '-mfpu=neon') + arch_cflags += ['-mfpu=neon', '-DWEBRTC_HAS_NEON'] + have_neon = true + endif + else + neon_opt += ['-DWEBRTC_DETECT_NEON', '-mfpu=neon'] + have_neon = true + endif +endif + +noise_cflags = [] +if get_option('ns_mode') == 'float' + noise_cflags += ['-DWEBRTC_NS_FLOAT=1'] +else + noise_cflags += ['-DWEBRTC_NS_FIXED=1'] +endif + +common_cflags = ['-DWEBRTC_AUDIO_PROCESSING_ONLY_BUILD', '-DNDEBUG'] + platform_cflags + os_cflags + arch_cflags + noise_cflags +common_cxxflags = ['-std=c++11'] + common_cflags +common_deps = os_deps +webrtc_inc = include_directories('.') + +subdir('webrtc') + +pkgconfig = import('pkgconfig') + +pkgconfig.generate( + name: 'webrtc-audio-processing', + description: 'WebRTC Audio Processing library', + version: meson.project_version(), + filebase: 'webrtc-audio-processing', + subdirs: 'webrtc_audio_processing', + extra_cflags: [ + '-DWEBRTC_AUDIO_PROCESSING_ONLY_BUILD', + ] + platform_cflags, + # XXX: passing the libwebrtc_audio_processing object result in adding not-installed libraries to Libs.private + libraries: '-lwebrtc_audio_processing', + libraries_private: common_deps, +) |