1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
from cerbero.tools.libtool import LibtoolLibrary
class Recipe(recipe.Recipe):
name = 'webrtc-audio-processing'
version = '0.2'
licenses = [{License.BSD_like: ['COPYING']}]
btype = BuildType.MESON
stype = SourceType.TARBALL
url = 'https://freedesktop.org/software/pulseaudio/%(name)s/%(name)s-%(version)s.tar.xz'
tarball_checksum = '4b46a7f91a5d255c2451f9862c86e2a5de904902724b4bba1fd23e2854f21df5'
platform_deps = {Platform.ANDROID: ['gnustl']}
patches = [ 'webrtc-audio-processing/0000-Add-sal.h-as-it-s-missing-in-cerbero-mingw.patch',
'webrtc-audio-processing/0000-Add-fix_interlocked_exchange_pointer_win.h.patch',
'webrtc-audio-processing/0001-build-enforce-linking-with-no-undefined-add-explicit.patch',
'webrtc-audio-processing/0002-build-Make-sure-files-with-SSE2-code-are-compiled-wi.patch',
'webrtc-audio-processing/0003-Don-t-include-execinfo.h-for-windows.patch',
'webrtc-audio-processing/0004-Don-t-use-MSVC-specific-exception-handler-for-MINGW.patch',
'webrtc-audio-processing/0005-Add-missing-throw-in-destructor-override.patch',
'webrtc-audio-processing/0006-lrint-is-available-with-mingw.patch',
'webrtc-audio-processing/0007-Fix-case-sensitivity-issue-with-MinGW-cross-build.patch',
'webrtc-audio-processing/0008-Add-missing-windows-specific-headers.patch',
'webrtc-audio-processing/0009-Fix-build-on-win64.patch',
'webrtc-audio-processing/0010-Add-cerbero-gnustl-support-for-Android.patch',
'webrtc-audio-processing/0011-Disable-backtrace-on-android.patch',
'webrtc-audio-processing/0012-Don-t-blindly-link-to-pthread.patch',
'webrtc-audio-processing/0013-Add-required-define-for-Windows.patch',
'webrtc-audio-processing/0014-Properly-select-the-right-system-wrappers.patch',
'webrtc-audio-processing/0015-Fix-case-sensitivity-in-windows-include.patch',
'webrtc-audio-processing/0016-Define-MSVC-_WIN32-so-we-can-build-on-mingw.patch',
'webrtc-audio-processing/0017-Add-missing-windows-conditions-variable.patch',
'webrtc-audio-processing/0018-Protect-against-unsupported-CPU-types.patch',
'webrtc-audio-processing/0019-osx-Fix-type-OS_FLAGS-instead-of-OS_CFLAGS.patch',
'webrtc-audio-processing/0020-Sync-defines-and-libs-with-build.gn.patch',
'webrtc-audio-processing/0021-Use-no-undefined-to-support-both-clang-and-gcc.patch',
'webrtc-audio-processing/0022-Re-add-pthread-linking-on-linux.patch',
'webrtc-audio-processing/0023-Add-ARM-64bit-support.patch',
# https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/merge_requests/1
'webrtc-audio-processing/0001-Initial-meson-build-files.patch',
# https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/merge_requests/2
'webrtc-audio-processing/0001-build-meson-fix-compilation-on-arm64.patch',]
files_libs = ['libwebrtc_audio_processing']
files_devel = ['include/webrtc_audio_processing', 'lib/pkgconfig/webrtc-audio-processing.pc']
def prepare(self):
if self.config.target_platform == Platform.ANDROID:
# TODO add --enable-neon=runtime, there is a conflict with cerbero
# that defines -mfpu=vfp... plus webrtc-audio-processing build
# system is doing it wrong, as it should add -mfpu=neon only for
# the files that contains neon intrinsic.
self.meson_options['gnustl'] = 'enabled'
elif self.config.target_platform == Platform.WINDOWS:
# This recipe requires at least Windows Vista
flags = ('-UWINVER', '-U_WIN32_WINNT', '-DWINVER=0x0600', '-D_WIN32_WINNT=0x0600')
self.append_env('CFLAGS', *flags)
self.append_env('CXXFLAGS', *flags)
def post_install(self):
dependency_libs = []
if self.config.target_platform == Platform.ANDROID:
dependency_libs += ['gnustl', '-llog']
lib = LibtoolLibrary('webrtc_audio_processing', None, None, None, self.config.libdir,
self.config.target_platform, deps=dependency_libs)
lib.save()
super().post_install()
|