Merge mozilla-central to autoland. a=merge CLOSED TREE
[gecko.git] / third_party / libwebrtc / modules / BUILD.gn
blob4870cb349995dfa6baf90745e5bb2b37c9a2b73c
1 # Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
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.
9 import("../webrtc.gni")
10 import("audio_coding/audio_coding.gni")
12 group("modules") {
13   deps = [
14     "audio_coding",
15     "audio_device",
16     "audio_mixer",
17     "audio_processing",
18     "congestion_controller",
19     "pacing",
20     "remote_bitrate_estimator",
21     "rtp_rtcp",
22     "utility",
23     "video_coding",
24   ]
26   if (rtc_desktop_capture_supported) {
27     deps += [ "desktop_capture" ]
28   }
31 rtc_source_set("module_api_public") {
32   sources = [ "include/module_common_types_public.h" ]
33   absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
36 rtc_source_set("module_api") {
37   visibility = [ "*" ]
38   sources = [ "include/module_common_types.h" ]
41 rtc_source_set("module_fec_api") {
42   visibility = [ "*" ]
43   sources = [ "include/module_fec_types.h" ]
46 if (rtc_include_tests && !build_with_chromium) {
47   modules_tests_resources = [
48     "../resources/audio_coding/testfile16kHz.pcm",
49     "../resources/audio_coding/testfile32kHz.pcm",
50     "../resources/audio_coding/teststereo32kHz.pcm",
51     "../resources/foreman_cif.yuv",
52   ]
54   if (is_ios) {
55     bundle_data("modules_tests_bundle_data") {
56       testonly = true
57       sources = modules_tests_resources
58       outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
59     }
60   }
62   rtc_test("modules_tests") {
63     testonly = true
65     deps = [
66       "../test:test_main",
67       "../test:video_test_common",
68       "audio_coding:audio_coding_modules_tests",
69       "rtp_rtcp:rtp_rtcp_modules_tests",
70       "video_coding:video_coding_modules_tests",
71       "//testing/gtest",
72     ]
74     if (rtc_desktop_capture_supported) {
75       deps += [ "desktop_capture:desktop_capture_modules_tests" ]
76     }
78     data = modules_tests_resources
80     if (is_android) {
81       use_default_launcher = false
82       deps += [
83         # NOTE(brandtr): Including Java classes seems only to be possible from
84         # rtc_test targets. Therefore we include this target here, instead of
85         # in video_coding_modules_tests, where it is actually used.
86         "../sdk/android:libjingle_peerconnection_java",
87         "//sdk/android:native_test_jni_onload",
88         "//testing/android/native_test:native_test_support",
89       ]
90       shard_timeout = 900
91     }
93     if (is_ios) {
94       deps += [ ":modules_tests_bundle_data" ]
95     }
96   }
98   modules_unittests_resources = [
99     "../resources/audio_coding/neteq_opus.rtp",
100     "../resources/audio_coding/neteq_opus_dtx.rtp",
101     "../resources/audio_coding/neteq_universal_new.rtp",
102     "../resources/audio_coding/speech_4_channels_48k_one_second.wav",
103     "../resources/audio_coding/speech_mono_16kHz.pcm",
104     "../resources/audio_coding/speech_mono_32_48kHz.pcm",
105     "../resources/audio_coding/testfile16kHz.pcm",
106     "../resources/audio_coding/testfile32kHz.pcm",
107     "../resources/audio_coding/testfile_fake_stereo_32kHz.pcm",
108     "../resources/audio_coding/teststereo32kHz.pcm",
109     "../resources/audio_device/audio_short16.pcm",
110     "../resources/audio_device/audio_short44.pcm",
111     "../resources/audio_device/audio_short48.pcm",
112     "../resources/audio_processing/agc/agc_audio.pcm",
113     "../resources/audio_processing/agc/agc_no_circular_buffer.dat",
114     "../resources/audio_processing/agc/agc_pitch_gain.dat",
115     "../resources/audio_processing/agc/agc_pitch_lag.dat",
116     "../resources/audio_processing/agc/agc_spectral_peak.dat",
117     "../resources/audio_processing/agc/agc_vad.dat",
118     "../resources/audio_processing/agc/agc_voicing_prob.dat",
119     "../resources/audio_processing/agc/agc_with_circular_buffer.dat",
120     "../resources/audio_processing/output_data_fixed.pb",
121     "../resources/audio_processing/output_data_float.pb",
122     "../resources/audio_processing/output_data_float_avx2.pb",
123     "../resources/audio_processing/output_data_mac.pb",
124     "../resources/audio_processing/transient/ajm-macbook-1-spke16m.pcm",
125     "../resources/audio_processing/transient/audio16kHz.pcm",
126     "../resources/audio_processing/transient/audio32kHz.pcm",
127     "../resources/audio_processing/transient/audio48kHz.pcm",
128     "../resources/audio_processing/transient/audio8kHz.pcm",
129     "../resources/audio_processing/transient/detect16kHz.dat",
130     "../resources/audio_processing/transient/detect32kHz.dat",
131     "../resources/audio_processing/transient/detect48kHz.dat",
132     "../resources/audio_processing/transient/detect8kHz.dat",
133     "../resources/audio_processing/transient/double-utils.dat",
134     "../resources/audio_processing/transient/float-utils.dat",
135     "../resources/audio_processing/transient/suppressed16kHz.pcm",
136     "../resources/audio_processing/transient/suppressed32kHz.pcm",
137     "../resources/audio_processing/transient/suppressed8kHz.pcm",
138     "../resources/audio_processing/transient/wpd0.dat",
139     "../resources/audio_processing/transient/wpd1.dat",
140     "../resources/audio_processing/transient/wpd2.dat",
141     "../resources/audio_processing/transient/wpd3.dat",
142     "../resources/audio_processing/transient/wpd4.dat",
143     "../resources/audio_processing/transient/wpd5.dat",
144     "../resources/audio_processing/transient/wpd6.dat",
145     "../resources/audio_processing/transient/wpd7.dat",
146     "../resources/deflicker_before_cif_short.yuv",
147     "../resources/far16_stereo.pcm",
148     "../resources/far176_stereo.pcm",
149     "../resources/far192_stereo.pcm",
150     "../resources/far22_stereo.pcm",
151     "../resources/far32_stereo.pcm",
152     "../resources/far44_stereo.pcm",
153     "../resources/far48_stereo.pcm",
154     "../resources/far88_stereo.pcm",
155     "../resources/far8_stereo.pcm",
156     "../resources/far96_stereo.pcm",
157     "../resources/foremanColorEnhanced_cif_short.yuv",
158     "../resources/foreman_cif.yuv",
159     "../resources/foreman_cif_short.yuv",
160     "../resources/near16_stereo.pcm",
161     "../resources/near176_stereo.pcm",
162     "../resources/near192_stereo.pcm",
163     "../resources/near22_stereo.pcm",
164     "../resources/near32_stereo.pcm",
165     "../resources/near44_stereo.pcm",
166     "../resources/near48_stereo.pcm",
167     "../resources/near88_stereo.pcm",
168     "../resources/near8_stereo.pcm",
169     "../resources/near96_stereo.pcm",
170     "../resources/ref03.aecdump",
171     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke1_0_AST.bin",
172     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke1_0_TOF.bin",
173     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke1_1_AST.bin",
174     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke1_1_TOF.bin",
175     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke2_0_AST.bin",
176     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke2_0_TOF.bin",
177     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke2_1_AST.bin",
178     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke2_1_TOF.bin",
179     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingDelay1_0_AST.bin",
180     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingDelay1_0_TOF.bin",
181     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingLoss1_0_AST.bin",
182     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingLoss1_0_TOF.bin",
183     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_Multi1_1_AST.bin",
184     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_Multi1_1_TOF.bin",
185     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyChoke_0_AST.bin",
186     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyChoke_0_TOF.bin",
187     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyChoke_1_AST.bin",
188     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyChoke_1_TOF.bin",
189     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyDelay_0_AST.bin",
190     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyDelay_0_TOF.bin",
191     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyLoss_0_AST.bin",
192     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyLoss_0_TOF.bin",
193     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_UnlimitedSpeed_0_AST.bin",
194     "../resources/remote_bitrate_estimator/VideoSendersTest_BweTest_UnlimitedSpeed_0_TOF.bin",
195     "../resources/short_mixed_mono_48.dat",
196     "../resources/short_mixed_mono_48.pcm",
197     "../resources/short_mixed_mono_48_arm.dat",
198     "../resources/short_mixed_stereo_48.dat",
199     "../resources/short_mixed_stereo_48.pcm",
200     "../resources/voice_engine/audio_tiny48.wav",
201   ]
202   if (is_ios) {
203     bundle_data("modules_unittests_bundle_data") {
204       testonly = true
205       sources = modules_unittests_resources
206       outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ]
207     }
208   }
210   rtc_test("modules_unittests") {
211     testonly = true
212     defines = []
213     sources = [ "module_common_types_unittest.cc" ]
215     deps = [
216       ":module_api",
217       ":module_api_public",
218       "../test:test_main",
219       "../test:test_support",
220       "audio_coding:audio_coding_unittests",
221       "audio_device:audio_device_unittests",
222       "audio_mixer:audio_mixer_unittests",
223       "audio_processing:audio_processing_unittests",
224       "audio_processing/aec3:aec3_unittests",
225       "audio_processing/ns:ns_unittests",
226       "congestion_controller:congestion_controller_unittests",
227       "pacing:pacing_unittests",
228       "remote_bitrate_estimator:remote_bitrate_estimator_unittests",
229       "rtp_rtcp:rtp_rtcp_unittests",
230       "video_coding:video_coding_unittests",
231       "video_coding/deprecated:deprecated_unittests",
232       "video_coding/timing:timing_unittests",
233     ]
235     if (rtc_desktop_capture_supported) {
236       deps += [ "desktop_capture:desktop_capture_unittests" ]
237     }
239     data = modules_unittests_resources
241     if (is_android) {
242       use_default_launcher = false
243       deps += [
244         "../sdk/android:libjingle_peerconnection_java",
245         "//testing/android/native_test:native_test_support",
246       ]
247       shard_timeout = 900
248     }
249     if (is_ios) {
250       info_plist = "../test/ios/Info.plist"
251       deps += [ ":modules_unittests_bundle_data" ]
252       configs += [ "..:common_objc" ]
253       ldflags = [ "-ObjC" ]
254     }
255   }