tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

moz.build (10693B)


      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")
      7 
      8 with Files("*"):
      9     BUG_COMPONENT = ("Core", "Audio/Video")
     10 
     11 with Files("test/**"):
     12     BUG_COMPONENT = ("Core", "Audio/Video: Playback")
     13 
     14 with Files("gtest/TestGMP*"):
     15     BUG_COMPONENT = ("Core", "Audio/Video: GMP")
     16 
     17 with Files("tests/**"):
     18     BUG_COMPONENT = ("Core", "WebRTC")
     19 
     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
     25 
     26 component_av = ("Core", "WebRTC: Audio/Video")
     27 with Files("GetUserMedia*"):
     28     BUG_COMPONENT = component_av
     29 
     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     "mediaelement",
     45     "mediasink",
     46     "mediasource",
     47     "mediasession",
     48     "mp3",
     49     "mp4",
     50     "ogg",
     51     "platforms",
     52     "systemservices",
     53     "utils",
     54     "wave",
     55     "webaudio",
     56     "webcodecs",
     57     "webm",
     58     "webrtc",
     59     "webvtt",
     60 ]
     61 
     62 if CONFIG["MOZ_ANDROID_HLS_SUPPORT"]:
     63     DIRS += ["hls"]
     64 
     65 if CONFIG["MOZ_WEBRTC"]:
     66     DIRS += ["bridge"]
     67 
     68 if CONFIG["MOZ_WEBSPEECH"]:
     69     DIRS += ["webspeech"]
     70 
     71 TEST_DIRS += [
     72     "gtest",
     73 ]
     74 
     75 # Add libFuzzer configuration directives
     76 include("/tools/fuzzing/libfuzzer-config.mozbuild")
     77 
     78 if CONFIG["FUZZING_INTERFACES"]:
     79     TEST_DIRS += ["fuzz"]
     80 
     81 if CONFIG["MOZ_WEBRTC_SIGNALING"]:
     82     if CONFIG["FUZZING_INTERFACES"]:
     83         TEST_DIRS += ["webrtc/tests/fuzztests"]
     84 
     85 if CONFIG["FUZZING_INTERFACES"] and CONFIG["LIBFUZZER"]:
     86     include("/tools/fuzzing/libfuzzer-flags.mozbuild")
     87     SOURCES += [
     88         "MediaFragmentURIParser.cpp",
     89     ]
     90     SOURCES["MediaFragmentURIParser.cpp"].flags += libfuzzer_flags
     91 else:
     92     UNIFIED_SOURCES += [
     93         "MediaFragmentURIParser.cpp",
     94     ]
     95 
     96 MOCHITEST_MANIFESTS += [
     97     "test/mochitest.toml",
     98     "test/mochitest_background_video.toml",
     99     "test/mochitest_bugs.toml",
    100     "test/mochitest_compat.toml",
    101     "test/mochitest_eme.toml",
    102     "test/mochitest_eme_compat.toml",
    103     "test/mochitest_media_engine.toml",
    104     "test/mochitest_media_recorder.toml",
    105     "test/mochitest_seek.toml",
    106     "test/mochitest_stream.toml",
    107     "test/mochitest_sw.toml",
    108     "webrtc/tests/mochitests/identity/mochitest.toml",
    109 ]
    110 
    111 MOCHITEST_CHROME_MANIFESTS += ["test/chrome/chrome.toml"]
    112 
    113 BROWSER_CHROME_MANIFESTS += [
    114     "mediacontrol/tests/browser/browser.toml",
    115     "mediasession/test/browser.toml",
    116     "test/browser/browser.toml",
    117     "test/browser/wmfme/browser.toml",
    118 ]
    119 
    120 if CONFIG["MOZ_WEBRTC"]:
    121     MOCHITEST_MANIFESTS += [
    122         "webrtc/tests/mochitests/mochitest.toml",
    123         "webrtc/tests/mochitests/mochitest_datachannel.toml",
    124         "webrtc/tests/mochitests/mochitest_getusermedia.toml",
    125         "webrtc/tests/mochitests/mochitest_peerconnection.toml",
    126     ]
    127 
    128     CRASHTEST_MANIFESTS += ["webrtc/tests/crashtests/crashtests.list"]
    129 
    130 XPIDL_SOURCES += [
    131     "nsIAudioDeviceInfo.idl",
    132     "nsIMediaDevice.idl",
    133     "nsIMediaManager.idl",
    134 ]
    135 
    136 XPIDL_MODULE = "dom_media"
    137 
    138 EXPORTS += [
    139     "../../third_party/rust/audio_thread_priority/audio_thread_priority.h",
    140     "ADTSDecoder.h",
    141     "ADTSDemuxer.h",
    142     "AsyncLogger.h",
    143     "AudibilityMonitor.h",
    144     "AudioBufferUtils.h",
    145     "AudioChannelFormat.h",
    146     "AudioCompactor.h",
    147     "AudioConfig.h",
    148     "AudioConverter.h",
    149     "AudioDeviceInfo.h",
    150     "AudioMixer.h",
    151     "AudioPacketizer.h",
    152     "AudioRingBuffer.h",
    153     "AudioSampleFormat.h",
    154     "AudioSegment.h",
    155     "AudioStream.h",
    156     "BackgroundVideoDecodingPermissionObserver.h",
    157     "BitReader.h",
    158     "BitWriter.h",
    159     "BufferMediaResource.h",
    160     "BufferReader.h",
    161     "ByteWriter.h",
    162     "CallbackThreadRegistry.h",
    163     "ChannelMediaDecoder.h",
    164     "CrossGraphPort.h",
    165     "CubebUtils.h",
    166     "DecoderTraits.h",
    167     "DOMMediaStream.h",
    168     "DriftCompensation.h",
    169     "EncoderTraits.h",
    170     "ExternalEngineStateMachine.h",
    171     "FileBlockCache.h",
    172     "ForwardedInputTrack.h",
    173     "FrameStatistics.h",
    174     "ImageConversion.h",
    175     "Intervals.h",
    176     "MediaCache.h",
    177     "MediaContainerType.h",
    178     "MediaData.h",
    179     "MediaDataDemuxer.h",
    180     "MediaDecoder.h",
    181     "MediaDecoderOwner.h",
    182     "MediaDecoderStateMachine.h",
    183     "MediaDecoderStateMachineBase.h",
    184     "MediaEventSource.h",
    185     "MediaFormatReader.h",
    186     "MediaInfo.h",
    187     "MediaMetadataManager.h",
    188     "MediaMIMETypes.h",
    189     "MediaPlaybackDelayPolicy.h",
    190     "MediaPromiseDefs.h",
    191     "MediaQueue.h",
    192     "MediaRecorder.h",
    193     "MediaResource.h",
    194     "MediaResourceCallback.h",
    195     "MediaResult.h",
    196     "MediaSegment.h",
    197     "MediaShutdownManager.h",
    198     "MediaSpan.h",
    199     "MediaStreamWindowCapturer.h",
    200     "MediaTimer.h",
    201     "MediaTrack.h",
    202     "MediaTrackGraph.h",
    203     "MediaTrackList.h",
    204     "MediaTrackListener.h",
    205     "MemoryBlockCache.h",
    206     "nsIDocumentActivity.h",
    207     "PrincipalChangeObserver.h",
    208     "PrincipalHandle.h",
    209     "QueueObject.h",
    210     "ReaderProxy.h",
    211     "SeekJob.h",
    212     "SeekTarget.h",
    213     "SelfRef.h",
    214     "SharedBuffer.h",
    215     "TimedPacketizer.h",
    216     "TimeUnits.h",
    217     "Tracing.h",
    218     "VideoFrameContainer.h",
    219     "VideoLimits.h",
    220     "VideoSegment.h",
    221     "VideoUtils.h",
    222     "WavDumper.h",
    223     "XiphExtradata.h",
    224 ]
    225 
    226 EXPORTS.mozilla += [
    227     "MediaFragmentURIParser.h",
    228     "MediaManager.h",
    229     "UnderrunHandler.h",
    230 ]
    231 
    232 EXPORTS.mozilla.media.webrtc += [
    233     "webrtc/WebrtcGlobal.h",
    234     "webrtc/WebrtcIPCTraits.h",
    235 ]
    236 
    237 if not CONFIG["MOZ_WEBRTC"]:
    238     EXPORTS.transport += [
    239         "webrtc/transport/runnable_utils.h",
    240     ]
    241 
    242 EXPORTS.mozilla.dom += [
    243     "AudioDeviceInfo.h",
    244     "AudioStreamTrack.h",
    245     "AudioTrack.h",
    246     "AudioTrackList.h",
    247     "CanvasCaptureMediaStream.h",
    248     "GetUserMediaRequest.h",
    249     "MediaDeviceInfo.h",
    250     "MediaDevices.h",
    251     "MediaStreamError.h",
    252     "MediaStreamTrack.h",
    253     "UnboundedMPSCQueue.h",
    254     "VideoPlaybackQuality.h",
    255     "VideoStreamTrack.h",
    256     "VideoTrack.h",
    257     "VideoTrackList.h",
    258     "webrtc/MediaTransportChild.h",
    259     "webrtc/MediaTransportParent.h",
    260 ]
    261 
    262 UNIFIED_SOURCES += [
    263     "ADTSDecoder.cpp",
    264     "ADTSDemuxer.cpp",
    265     "AudioCaptureTrack.cpp",
    266     "AudioChannelFormat.cpp",
    267     "AudioCompactor.cpp",
    268     "AudioConfig.cpp",
    269     "AudioConverter.cpp",
    270     "AudioDeviceInfo.cpp",
    271     "AudioInputSource.cpp",
    272     "AudioRingBuffer.cpp",
    273     "AudioSegment.cpp",
    274     "AudioStream.cpp",
    275     "AudioStreamTrack.cpp",
    276     "AudioTrack.cpp",
    277     "AudioTrackList.cpp",
    278     "BackgroundVideoDecodingPermissionObserver.cpp",
    279     "BaseMediaResource.cpp",
    280     "BitReader.cpp",
    281     "BitWriter.cpp",
    282     "CallbackThreadRegistry.cpp",
    283     "CanvasCaptureMediaStream.cpp",
    284     "ChannelMediaDecoder.cpp",
    285     "ChannelMediaResource.cpp",
    286     "CloneableWithRangeMediaResource.cpp",
    287     "CrossGraphPort.cpp",
    288     "CubebInputStream.cpp",
    289     "CubebUtils.cpp",
    290     "DecoderTraits.cpp",
    291     "DeviceInputTrack.cpp",
    292     "DOMMediaStream.cpp",
    293     "ExternalEngineStateMachine.cpp",
    294     "FileBlockCache.cpp",
    295     "FileMediaResource.cpp",
    296     "ForwardedInputTrack.cpp",
    297     "GetUserMediaRequest.cpp",
    298     "GraphDriver.cpp",
    299     "GraphRunner.cpp",
    300     "ImageConversion.cpp",
    301     "MediaCache.cpp",
    302     "MediaContainerType.cpp",
    303     "MediaDecoder.cpp",
    304     "MediaDecoderStateMachine.cpp",
    305     "MediaDecoderStateMachineBase.cpp",
    306     "MediaDeviceInfo.cpp",
    307     "MediaDevices.cpp",
    308     "MediaFormatReader.cpp",
    309     "MediaInfo.cpp",
    310     "MediaManager.cpp",
    311     "MediaMIMETypes.cpp",
    312     "MediaPlaybackDelayPolicy.cpp",
    313     "MediaRecorder.cpp",
    314     "MediaResource.cpp",
    315     "MediaResult.cpp",
    316     "MediaShutdownManager.cpp",
    317     "MediaStreamError.cpp",
    318     "MediaStreamTrack.cpp",
    319     "MediaStreamWindowCapturer.cpp",
    320     "MediaTimer.cpp",
    321     "MediaTrack.cpp",
    322     "MediaTrackGraph.cpp",
    323     "MediaTrackList.cpp",
    324     "MediaTrackListener.cpp",
    325     "MemoryBlockCache.cpp",
    326     "QueueObject.cpp",
    327     "ReaderProxy.cpp",
    328     "SeekJob.cpp",
    329     "TimeUnits.cpp",
    330     "Tracing.cpp",
    331     "VideoFrameContainer.cpp",
    332     "VideoPlaybackQuality.cpp",
    333     "VideoSegment.cpp",
    334     "VideoStreamTrack.cpp",
    335     "VideoTrack.cpp",
    336     "VideoTrackList.cpp",
    337     "VideoUtils.cpp",
    338     "XiphExtradata.cpp",
    339 ]
    340 
    341 if CONFIG["OS_TARGET"] == "Linux":
    342     UNIFIED_SOURCES += ["UnderrunHandlerLinux.cpp"]
    343 else:
    344     UNIFIED_SOURCES += ["UnderrunHandlerNoop.cpp"]
    345 
    346 if CONFIG["ENABLE_TESTS"] or CONFIG["FUZZING"]:
    347     UNIFIED_SOURCES += ["MockCubeb.cpp"]
    348 
    349 # MediaData.cpp : ambiguous compilation error caused by Mac OS X headers.
    350 SOURCES += [
    351     "MediaData.cpp",
    352 ]
    353 
    354 if CONFIG["MOZ_WEBRTC"]:
    355     XPCOM_MANIFESTS += [
    356         "components.conf",
    357     ]
    358 
    359     EXTRA_JS_MODULES.media += [
    360         "PeerConnection.sys.mjs",
    361     ]
    362 
    363 EXTRA_JS_MODULES.media += [
    364     "IdpSandbox.sys.mjs",
    365     "PeerConnectionIdp.sys.mjs",
    366 ]
    367 
    368 LOCAL_INCLUDES += [
    369     "!/media/libsoundtouch/src",
    370     "/caps",
    371     "/docshell/base",
    372     "/dom/base",
    373     "/dom/media/webrtc",
    374     "/layout/generic",
    375     "/layout/xul",
    376     "/media/libyuv/libyuv/include",
    377     "/netwerk/base",
    378     "/toolkit/content/tests/browser/",
    379 ]
    380 
    381 if CONFIG["MOZ_WEBRTC"]:
    382     LOCAL_INCLUDES += [
    383         "!/dist/include/libwebrtc_overrides",
    384         "/dom/media/webrtc/common",
    385         "/third_party/abseil-cpp",
    386         "/third_party/libwebrtc",
    387     ]
    388 
    389 DEFINES["MOZILLA_INTERNAL_API"] = True
    390 
    391 if CONFIG["MOZ_ANDROID_HLS_SUPPORT"]:
    392     DEFINES["MOZ_ANDROID_HLS_SUPPORT"] = True
    393 
    394 if CONFIG["COMPILE_ENVIRONMENT"]:
    395     EXPORTS += [
    396         "!audioipc2_client_ffi_generated.h",
    397         "!audioipc2_server_ffi_generated.h",
    398     ]
    399 
    400     CbindgenHeader(
    401         "audioipc2_client_ffi_generated.h",
    402         inputs=["/third_party/rust/audioipc2-client"],
    403     )
    404 
    405     CbindgenHeader(
    406         "audioipc2_server_ffi_generated.h",
    407         inputs=["/third_party/rust/audioipc2-server"],
    408     )
    409 
    410 TEST_DIRS += [
    411     "test/rdd_process_xpcom",
    412 ]
    413 
    414 if CONFIG["MOZ_SYSTEM_AV1"]:
    415     CXXFLAGS += CONFIG["MOZ_SYSTEM_LIBAOM_CFLAGS"]
    416 
    417 include("/ipc/chromium/chromium-config.mozbuild")
    418 
    419 LOCAL_INCLUDES += CONFIG["SKIA_INCLUDES"]
    420 
    421 # Suppress some GCC warnings being treated as errors:
    422 #  - about attributes on forward declarations for types that are already
    423 #    defined, which complains about an important MOZ_EXPORT for android::AString
    424 if CONFIG["CC_TYPE"] in ("clang", "gcc"):
    425     CXXFLAGS += [
    426         "-Wno-error=attributes",
    427     ]
    428 
    429 CXXFLAGS += ["-Werror=switch"]
    430 
    431 FINAL_LIBRARY = "xul"
    432 
    433 SPHINX_TREES["/media"] = "docs"