• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
2//
3// Use of this source code is governed by a BSD-style license
4// that can be found in the LICENSE file in the root of the source
5// tree. An additional intellectual property rights grant can be found
6// in the file PATENTS.  All contributing project authors may
7// be found in the AUTHORS file in the root of the source tree.
8
9// These defines will apply to all source files
10// Think again before changing it
11cc_defaults {
12    name: "webrtc_flags",
13    vendor: true,
14
15    cflags: [
16        "-DWEBRTC_POSIX",
17        "-DWEBRTC_LINUX",
18        "-DWEBRTC_THREAD_RR",
19        "-DWEBRTC_CLOCK_TYPE_REALTIME",
20        "-DWEBRTC_ANDROID",
21
22        // The following macros are used by modules,
23        // we might need to re-organize them
24        // "-DWEBRTC_ANDROID_OPENSLES", // [module audio_device]
25        // "-DNETEQ_VOICEENGINE_CODECS", // [module audio_coding neteq]
26        // "-DWEBRTC_MODULE_UTILITY_VIDEO", // [module media_file] [module utility]
27
28        "-Wall",
29        "-Werror",
30        // The following warnings are disabled in most webrtc modules,
31        // until we upgrade to newer cleaner upstream webrtc.
32        "-Wno-missing-braces",
33        "-Wno-missing-field-initializers",
34        "-Wno-unused-parameter",
35    ],
36
37    header_libs: ["libwebrtc_headers"],
38
39    arch: {
40        arm: {
41            instruction_set: "arm",
42
43            cflags: [
44                "-DWEBRTC_ARCH_ARM",
45                // "-DWEBRTC_DETECT_ARM_NEON", // only used in a build configuration without Neon
46                // TODO(kma): figure out if the above define could be moved to NDK build only.
47
48                // The following upstram ARM_NEON and ARMV7A defintions do not work on AOSP yet.
49                // They should be fixed in the next merge from upstream.
50                //# TODO(kma): test if the code under next two macros works with generic GCC compilers
51                // "-DWEBRTC_ARCH_ARM_NEON",
52                // "-flax-vector-conversions",
53                // "-DWEBRTC_ARCH_ARM_V7A",
54            ],
55        },
56    },
57
58    // The following clang-tidy checks are disabled in most webrtc modules,
59    // until we upgrade to newer cleaner upstream webrtc.
60    tidy_checks: [
61        "-cert-*",
62        "-clang-analyzer-*",
63        "-hicpp-*",
64        "-llvm-*",
65        "-google-build-namespaces",
66        "-google-default-arguments",
67        "-google-explicit-constructor",
68        "-google-runtime-int",
69        "-google-runtime-operator",
70        "-misc-incorrect-roundings",
71        "-misc-macro-parentheses",
72        "-misc-misplaced-widening-cast",
73        "-misc-noexcept-move-constructor",
74        "-misc-suspicious-string-compare",
75        "-misc-unused-parameters",
76        "-misc-unused-using-decls",
77        "-performance-type-promotion-in-math-fn",
78        "-performance-unnecessary-copy-initialization",
79        "-performance-unnecessary-value-param",
80    ],
81}
82
83cc_library_shared {
84    name: "libwebrtc_audio_preprocessing",
85    vendor: true,
86
87    whole_static_libs: [
88        "libwebrtc_aec",
89        "libwebrtc_aecm",
90        "libwebrtc_agc",
91        "libwebrtc_apm",
92        "libwebrtc_apm_utility",
93        "libwebrtc_apvad",
94        "libwebrtc_base",
95        "libwebrtc_beamformer",
96        "libwebrtc_common",
97        "libwebrtc_intell",
98        "libwebrtc_isac",
99        "libwebrtc_resampler",
100        "libwebrtc_ns",
101        "libwebrtc_spl",
102        "libwebrtc_system_wrappers",
103        "libwebrtc_transient",
104        "libwebrtc_vad",
105    ],
106
107    shared_libs: [
108        "liblog",
109        "libcutils",
110        "libdl",
111        "libprotobuf-cpp-lite",
112    ],
113
114    arch: {
115        arm: {
116            instruction_set: "arm",
117        },
118    },
119
120    // Disable native_coverage since linking fails with -O0 (needed for
121    // coverage).  The fix is to mark InStream::Rewind and OutStream::Rewind as
122    // pure virtual in webrtc/common_types.h
123    native_coverage: false,
124}
125
126cc_library_shared {
127    name: "libwebrtc_audio_coding",
128    vendor: true,
129
130    whole_static_libs: [
131        "libwebrtc_base",
132        "libwebrtc_common",
133        "libwebrtc_intell",
134        "libwebrtc_isac",
135        "libwebrtc_isacfix",
136        "libwebrtc_resampler",
137        "libwebrtc_spl",
138        "libwebrtc_system_wrappers",
139    ],
140
141    shared_libs: [
142        "libprotobuf-cpp-lite",
143        "liblog",
144        "libcutils",
145        "libdl",
146    ],
147
148    arch: {
149        arm: {
150            instruction_set: "arm",
151        },
152    },
153}
154
155cc_library_headers {
156    name: "libwebrtc_headers",
157    vendor: true,
158    export_include_dirs: ["."],
159}
160
161subdirs = ["webrtc/*"]
162