Bug 1890793: Assert CallArgs::newTarget is not gray. r=spidermonkey-reviewers,sfink...
[gecko.git] / dom / media / moz.build
blobac62e9b67e0f4b66310f3aae7438ba8431fa70d9
1 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
2 # vim: set filetype=python:
3 # This Source Code Form is subject to the terms of the Mozilla Public
4 # License, v. 2.0. If a copy of the MPL was not distributed with this
5 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 include("/dom/media/webrtc/third_party_build/webrtc.mozbuild")
8 with Files("*"):
9     BUG_COMPONENT = ("Core", "Audio/Video")
11 with Files("test/**"):
12     BUG_COMPONENT = ("Core", "Audio/Video: Playback")
14 with Files("gtest/TestGMP*"):
15     BUG_COMPONENT = ("Core", "Audio/Video: GMP")
17 with Files("tests/**"):
18     BUG_COMPONENT = ("Core", "WebRTC")
20 component_signaling = ("Core", "WebRTC: Signaling")
21 with Files("IdpSandbox.sys.mjs"):
22     BUG_COMPONENT = component_signaling
23 with Files("PeerConnection*"):
24     BUG_COMPONENT = component_signaling
26 component_av = ("Core", "WebRTC: Audio/Video")
27 with Files("GetUserMedia*"):
28     BUG_COMPONENT = component_av
30 DIRS += [
31     "autoplay",
32     "doctor",
33     "driftcontrol",
34     "eme",
35     "encoder",
36     "fake-cdm",
37     "flac",
38     "gmp",
39     "gmp-plugin-openh264",
40     "imagecapture",
41     "ipc",
42     "mediacapabilities",
43     "mediacontrol",
44     "mediasink",
45     "mediasource",
46     "mediasession",
47     "mp3",
48     "mp4",
49     "ogg",
50     "platforms",
51     "systemservices",
52     "utils",
53     "wave",
54     "webaudio",
55     "webcodecs",
56     "webm",
57     "webrtc",
58     "webspeech",
59     "webvtt",
62 if CONFIG["MOZ_ANDROID_HLS_SUPPORT"]:
63     DIRS += ["hls"]
65 if CONFIG["MOZ_WEBRTC"]:
66     DIRS += ["bridge"]
68 TEST_DIRS += [
69     "gtest",
72 # Add libFuzzer configuration directives
73 include("/tools/fuzzing/libfuzzer-config.mozbuild")
75 if CONFIG["FUZZING_INTERFACES"]:
76     TEST_DIRS += ["fuzz"]
78 if CONFIG["MOZ_WEBRTC_SIGNALING"]:
79     if CONFIG["FUZZING_INTERFACES"]:
80         TEST_DIRS += ["webrtc/tests/fuzztests"]
82 MOCHITEST_MANIFESTS += [
83     "test/mochitest.toml",
84     "test/mochitest_background_video.toml",
85     "test/mochitest_bugs.toml",
86     "test/mochitest_compat.toml",
87     "test/mochitest_eme.toml",
88     "test/mochitest_eme_compat.toml",
89     "test/mochitest_media_engine.toml",
90     "test/mochitest_media_recorder.toml",
91     "test/mochitest_seek.toml",
92     "test/mochitest_stream.toml",
93     "webrtc/tests/mochitests/identity/mochitest.toml",
96 MOCHITEST_CHROME_MANIFESTS += ["test/chrome/chrome.toml"]
98 BROWSER_CHROME_MANIFESTS += [
99     "mediacontrol/tests/browser/browser.toml",
100     "mediasession/test/browser.toml",
101     "test/browser/browser.toml",
102     "test/browser/wmfme/browser.toml",
105 if CONFIG["MOZ_WEBRTC"]:
106     MOCHITEST_MANIFESTS += [
107         "webrtc/tests/mochitests/mochitest.toml",
108         "webrtc/tests/mochitests/mochitest_datachannel.toml",
109         "webrtc/tests/mochitests/mochitest_getusermedia.toml",
110         "webrtc/tests/mochitests/mochitest_peerconnection.toml",
111     ]
113     CRASHTEST_MANIFESTS += ["webrtc/tests/crashtests/crashtests.list"]
115 XPIDL_SOURCES += [
116     "nsIAudioDeviceInfo.idl",
117     "nsIMediaDevice.idl",
118     "nsIMediaManager.idl",
121 XPIDL_MODULE = "dom_media"
123 EXPORTS += [
124     "../../third_party/rust/audio_thread_priority/audio_thread_priority.h",
125     "ADTSDecoder.h",
126     "ADTSDemuxer.h",
127     "AsyncLogger.h",
128     "AudibilityMonitor.h",
129     "AudioBufferUtils.h",
130     "AudioChannelFormat.h",
131     "AudioCompactor.h",
132     "AudioConfig.h",
133     "AudioConverter.h",
134     "AudioDeviceInfo.h",
135     "AudioMixer.h",
136     "AudioPacketizer.h",
137     "AudioRingBuffer.h",
138     "AudioSampleFormat.h",
139     "AudioSegment.h",
140     "AudioStream.h",
141     "BackgroundVideoDecodingPermissionObserver.h",
142     "Benchmark.h",
143     "BitReader.h",
144     "BitWriter.h",
145     "BufferMediaResource.h",
146     "BufferReader.h",
147     "ByteWriter.h",
148     "CallbackThreadRegistry.h",
149     "ChannelMediaDecoder.h",
150     "CrossGraphPort.h",
151     "CubebUtils.h",
152     "DecoderTraits.h",
153     "DOMMediaStream.h",
154     "DriftCompensation.h",
155     "EncoderTraits.h",
156     "ExternalEngineStateMachine.h",
157     "FileBlockCache.h",
158     "ForwardedInputTrack.h",
159     "FrameStatistics.h",
160     "ImageToI420.h",
161     "Intervals.h",
162     "MediaCache.h",
163     "MediaContainerType.h",
164     "MediaData.h",
165     "MediaDataDemuxer.h",
166     "MediaDecoder.h",
167     "MediaDecoderOwner.h",
168     "MediaDecoderStateMachine.h",
169     "MediaDecoderStateMachineBase.h",
170     "MediaEventSource.h",
171     "MediaFormatReader.h",
172     "MediaInfo.h",
173     "MediaMetadataManager.h",
174     "MediaMIMETypes.h",
175     "MediaPlaybackDelayPolicy.h",
176     "MediaPromiseDefs.h",
177     "MediaQueue.h",
178     "MediaRecorder.h",
179     "MediaResource.h",
180     "MediaResourceCallback.h",
181     "MediaResult.h",
182     "MediaSegment.h",
183     "MediaShutdownManager.h",
184     "MediaSpan.h",
185     "MediaStatistics.h",
186     "MediaStreamWindowCapturer.h",
187     "MediaTimer.h",
188     "MediaTrack.h",
189     "MediaTrackGraph.h",
190     "MediaTrackList.h",
191     "MediaTrackListener.h",
192     "MemoryBlockCache.h",
193     "MPSCQueue.h",
194     "nsIDocumentActivity.h",
195     "PrincipalChangeObserver.h",
196     "PrincipalHandle.h",
197     "QueueObject.h",
198     "ReaderProxy.h",
199     "SeekJob.h",
200     "SeekTarget.h",
201     "SelfRef.h",
202     "SharedBuffer.h",
203     "TimedPacketizer.h",
204     "TimeUnits.h",
205     "Tracing.h",
206     "VideoFrameContainer.h",
207     "VideoLimits.h",
208     "VideoSegment.h",
209     "VideoUtils.h",
210     "WavDumper.h",
211     "XiphExtradata.h",
214 EXPORTS.mozilla += [
215     "MediaManager.h",
216     "UnderrunHandler.h",
219 EXPORTS.mozilla.media.webrtc += [
220     "webrtc/WebrtcGlobal.h",
221     "webrtc/WebrtcIPCTraits.h",
224 if not CONFIG["MOZ_WEBRTC"]:
225     EXPORTS.transport += [
226         "webrtc/transport/runnable_utils.h",
227     ]
229 EXPORTS.mozilla.dom += [
230     "AudioDeviceInfo.h",
231     "AudioStreamTrack.h",
232     "AudioTrack.h",
233     "AudioTrackList.h",
234     "CanvasCaptureMediaStream.h",
235     "GetUserMediaRequest.h",
236     "MediaDeviceInfo.h",
237     "MediaDevices.h",
238     "MediaStreamError.h",
239     "MediaStreamTrack.h",
240     "VideoPlaybackQuality.h",
241     "VideoStreamTrack.h",
242     "VideoTrack.h",
243     "VideoTrackList.h",
244     "webrtc/MediaTransportChild.h",
245     "webrtc/MediaTransportParent.h",
248 UNIFIED_SOURCES += [
249     "ADTSDecoder.cpp",
250     "ADTSDemuxer.cpp",
251     "AudioCaptureTrack.cpp",
252     "AudioChannelFormat.cpp",
253     "AudioCompactor.cpp",
254     "AudioConfig.cpp",
255     "AudioConverter.cpp",
256     "AudioDeviceInfo.cpp",
257     "AudioInputSource.cpp",
258     "AudioRingBuffer.cpp",
259     "AudioSegment.cpp",
260     "AudioStream.cpp",
261     "AudioStreamTrack.cpp",
262     "AudioTrack.cpp",
263     "AudioTrackList.cpp",
264     "BackgroundVideoDecodingPermissionObserver.cpp",
265     "BaseMediaResource.cpp",
266     "Benchmark.cpp",
267     "BitReader.cpp",
268     "BitWriter.cpp",
269     "CallbackThreadRegistry.cpp",
270     "CanvasCaptureMediaStream.cpp",
271     "ChannelMediaDecoder.cpp",
272     "ChannelMediaResource.cpp",
273     "CloneableWithRangeMediaResource.cpp",
274     "CrossGraphPort.cpp",
275     "CubebInputStream.cpp",
276     "DeviceInputTrack.cpp",
277     "DOMMediaStream.cpp",
278     "ExternalEngineStateMachine.cpp",
279     "FileBlockCache.cpp",
280     "FileMediaResource.cpp",
281     "ForwardedInputTrack.cpp",
282     "GetUserMediaRequest.cpp",
283     "GraphDriver.cpp",
284     "GraphRunner.cpp",
285     "ImageToI420.cpp",
286     "MediaCache.cpp",
287     "MediaContainerType.cpp",
288     "MediaDecoder.cpp",
289     "MediaDecoderStateMachine.cpp",
290     "MediaDecoderStateMachineBase.cpp",
291     "MediaDeviceInfo.cpp",
292     "MediaDevices.cpp",
293     "MediaFormatReader.cpp",
294     "MediaInfo.cpp",
295     "MediaManager.cpp",
296     "MediaMIMETypes.cpp",
297     "MediaPlaybackDelayPolicy.cpp",
298     "MediaRecorder.cpp",
299     "MediaResource.cpp",
300     "MediaShutdownManager.cpp",
301     "MediaStreamError.cpp",
302     "MediaStreamTrack.cpp",
303     "MediaStreamWindowCapturer.cpp",
304     "MediaTimer.cpp",
305     "MediaTrack.cpp",
306     "MediaTrackGraph.cpp",
307     "MediaTrackList.cpp",
308     "MediaTrackListener.cpp",
309     "MemoryBlockCache.cpp",
310     "QueueObject.cpp",
311     "ReaderProxy.cpp",
312     "SeekJob.cpp",
313     "TimeUnits.cpp",
314     "Tracing.cpp",
315     "VideoFrameContainer.cpp",
316     "VideoPlaybackQuality.cpp",
317     "VideoSegment.cpp",
318     "VideoStreamTrack.cpp",
319     "VideoTrack.cpp",
320     "VideoTrackList.cpp",
321     "VideoUtils.cpp",
322     "XiphExtradata.cpp",
325 if CONFIG["OS_TARGET"] == "Linux":
326     UNIFIED_SOURCES += ["UnderrunHandlerLinux.cpp"]
327 else:
328     UNIFIED_SOURCES += ["UnderrunHandlerNoop.cpp"]
330 # CubebUtils.cpp needs to be built separately due to what appears to be some kind
331 # of compiler bug on Android 4.2 x86 opt. See bug 1408459.
332 # DecoderTraits.cpp needs to be built separately because of Mac OS X headers.
333 # MediaData.cpp : ambiguous compilation error caused by Mac OS X headers.
334 SOURCES += [
335     "CubebUtils.cpp",
336     "DecoderTraits.cpp",
337     "MediaData.cpp",
340 # Some codec-related code uses multi-character constants, which GCC and clang
341 # warn about. Suppress turning this warning into an error.
342 SOURCES["DecoderTraits.cpp"].flags += ["-Wno-error=multichar"]
344 if CONFIG["MOZ_WEBRTC"]:
345     XPCOM_MANIFESTS += [
346         "components.conf",
347     ]
349     EXTRA_JS_MODULES.media += [
350         "PeerConnection.sys.mjs",
351     ]
353 EXTRA_JS_MODULES.media += [
354     "IdpSandbox.sys.mjs",
355     "PeerConnectionIdp.sys.mjs",
358 LOCAL_INCLUDES += [
359     "!/media/libsoundtouch/src",
360     "/caps",
361     "/docshell/base",
362     "/dom/base",
363     "/dom/media/webrtc",
364     "/layout/generic",
365     "/layout/xul",
366     "/media/libyuv/libyuv/include",
367     "/netwerk/base",
368     "/toolkit/content/tests/browser/",
371 if CONFIG["MOZ_WEBRTC"]:
372     LOCAL_INCLUDES += [
373         "/dom/media/webrtc/common",
374         "/third_party/libwebrtc",
375         "/third_party/libwebrtc/third_party/abseil-cpp",
376     ]
378 DEFINES["MOZILLA_INTERNAL_API"] = True
380 if CONFIG["MOZ_ANDROID_HLS_SUPPORT"]:
381     DEFINES["MOZ_ANDROID_HLS_SUPPORT"] = True
383 if CONFIG["COMPILE_ENVIRONMENT"]:
384     EXPORTS += [
385         "!audioipc2_client_ffi_generated.h",
386         "!audioipc2_server_ffi_generated.h",
387     ]
389     CbindgenHeader(
390         "audioipc2_client_ffi_generated.h",
391         inputs=["/third_party/rust/audioipc2-client"],
392     )
394     CbindgenHeader(
395         "audioipc2_server_ffi_generated.h",
396         inputs=["/third_party/rust/audioipc2-server"],
397     )
399 if CONFIG["ENABLE_TESTS"]:
400     DIRS += [
401         "test/rdd_process_xpcom",
402     ]
404 include("/ipc/chromium/chromium-config.mozbuild")
406 # Suppress some GCC warnings being treated as errors:
407 #  - about attributes on forward declarations for types that are already
408 #    defined, which complains about an important MOZ_EXPORT for android::AString
409 if CONFIG["CC_TYPE"] in ("clang", "gcc"):
410     CXXFLAGS += [
411         "-Wno-error=attributes",
412     ]
414 CXXFLAGS += ["-Werror=switch"]
416 FINAL_LIBRARY = "xul"