dom/media/moz.build
author James Kitchener <jkitch.bug@internode.on.net>
Tue, 20 Jan 2015 03:58:00 -0500
changeset 253625 4ec37503ea6a752baf92e053ede5f0ff7750ff36
parent 249162 0f80e83ac9e54c19907e9205007ccb5017442fa9
child 258965 8859d04f962ac6e0581fb5523c778e0e94a05827
permissions -rw-r--r--
Bug 1100184 - Flatten netwerk/base/{public,src}/ directories. r=mcmanus, r=poiru

# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

DIRS += [
    'encoder',
    'gmp',
    'gmp-plugin',
    'imagecapture',
    'mediasource',
    'ogg',
    'systemservices',
    'webaudio',
    'webrtc',
    'webspeech',
    'webvtt',
]

if CONFIG['MOZ_RAW']:
    DIRS += ['raw']

if CONFIG['MOZ_WAVE']:
    DIRS += ['wave']

if CONFIG['MOZ_WEBM']:
    DIRS += ['webm']

if CONFIG['MOZ_GSTREAMER']:
    DIRS += ['gstreamer']

if CONFIG['MOZ_DIRECTSHOW']:
    DIRS += ['directshow']

if CONFIG['MOZ_ANDROID_OMX']:
    DIRS += ['android']

if CONFIG['MOZ_WMF']:
    DIRS += ['wmf']

if CONFIG['MOZ_FMP4']:
    DIRS += ['fmp4']

if CONFIG['MOZ_APPLEMEDIA']:
    DIRS += ['apple']

if CONFIG['MOZ_WEBRTC']:
    DIRS += ['bridge']

if CONFIG['MOZ_OMX_DECODER']:
    DIRS += ['omx']
    DIRS += ['omx/mediaresourcemanager']

if CONFIG['MOZ_EME']:
    DIRS += ['eme']

TEST_DIRS += [
    'compiledtest',
    'gtest',
]

MOCHITEST_CHROME_MANIFESTS += ['test/chrome.ini']

MOCHITEST_MANIFESTS += [
    'test/mochitest.ini',
    'tests/mochitest/identity/mochitest.ini',
    'tests/mochitest/ipc/mochitest.ini',
]

if CONFIG['MOZ_WEBRTC']:
    MOCHITEST_MANIFESTS += ['tests/mochitest/mochitest.ini']
    WEBRTC_SIGNALLING_TEST_MANIFESTS += ['tests/mochitest/steeplechase.ini']

XPIDL_SOURCES += [
    'nsIDOMNavigatorUserMedia.idl',
    'nsIMediaManager.idl',
]

XPIDL_MODULE = 'dom_media'

EXPORTS += [
    'AbstractMediaDecoder.h',
    'AudioBufferUtils.h',
    'AudioChannelFormat.h',
    'AudioCompactor.h',
    'AudioMixer.h',
    'AudioSampleFormat.h',
    'AudioSegment.h',
    'AudioStream.h',
    'BufferMediaResource.h',
    'CubebUtils.h',
    'DecoderTraits.h',
    'DOMMediaStream.h',
    'EncodedBufferCache.h',
    'FileBlockCache.h',
    'GraphDriver.h',
    'Latency.h',
    'MediaCache.h',
    'MediaData.h',
    'MediaDecoder.h',
    'MediaDecoderOwner.h',
    'MediaDecoderReader.h',
    'MediaDecoderStateMachine.h',
    'MediaDecoderStateMachineScheduler.h',
    'MediaInfo.h',
    'MediaMetadataManager.h',
    'MediaPromise.h',
    'MediaQueue.h',
    'MediaRecorder.h',
    'MediaResource.h',
    'MediaSegment.h',
    'MediaStreamGraph.h',
    'MediaTaskQueue.h',
    'MediaTrack.h',
    'MediaTrackList.h',
    'MP3FrameParser.h',
    'nsIDocumentActivity.h',
    'RtspMediaResource.h',
    'SelfRef.h',
    'SharedBuffer.h',
    'SharedThreadPool.h',
    'StreamBuffer.h',
    'ThreadPoolCOMListener.h',
    'TimeVarying.h',
    'TrackUnionStream.h',
    'VideoFrameContainer.h',
    'VideoSegment.h',
    'VideoUtils.h',
    'VorbisUtils.h',
]

EXPORTS.mozilla += [
    'MediaManager.h',
]

if CONFIG['MOZ_B2G']:
    EXPORTS.mozilla += [
        'MediaPermissionGonk.h',
    ]

EXPORTS.mozilla.dom += [
    'AudioStreamTrack.h',
    'AudioTrack.h',
    'AudioTrackList.h',
    'GetUserMediaRequest.h',
    'MediaDevices.h',
    'MediaStreamError.h',
    'MediaStreamTrack.h',
    'TextTrack.h',
    'TextTrackCue.h',
    'TextTrackCueList.h',
    'TextTrackList.h',
    'TextTrackRegion.h',
    'VideoPlaybackQuality.h',
    'VideoStreamTrack.h',
    'VideoTrack.h',
    'VideoTrackList.h',
]

UNIFIED_SOURCES += [
    'AudioChannelFormat.cpp',
    'AudioCompactor.cpp',
    'AudioSegment.cpp',
    'AudioSink.cpp',
    'AudioStream.cpp',
    'AudioStreamTrack.cpp',
    'AudioTrack.cpp',
    'AudioTrackList.cpp',
    'CubebUtils.cpp',
    'DOMMediaStream.cpp',
    'EncodedBufferCache.cpp',
    'FileBlockCache.cpp',
    'GetUserMediaRequest.cpp',
    'GraphDriver.cpp',
    'Latency.cpp',
    'MediaCache.cpp',
    'MediaData.cpp',
    'MediaDecoder.cpp',
    'MediaDecoderReader.cpp',
    'MediaDecoderStateMachine.cpp',
    'MediaDecoderStateMachineScheduler.cpp',
    'MediaDevices.cpp',
    'MediaManager.cpp',
    'MediaPromise.cpp',
    'MediaRecorder.cpp',
    'MediaResource.cpp',
    'MediaShutdownManager.cpp',
    'MediaStreamError.cpp',
    'MediaStreamGraph.cpp',
    'MediaStreamTrack.cpp',
    'MediaTaskQueue.cpp',
    'MediaTrack.cpp',
    'MediaTrackList.cpp',
    'MP3FrameParser.cpp',
    'RtspMediaResource.cpp',
    'SharedThreadPool.cpp',
    'StreamBuffer.cpp',
    'TextTrack.cpp',
    'TextTrackCue.cpp',
    'TextTrackCueList.cpp',
    'TextTrackList.cpp',
    'TextTrackRegion.cpp',
    'TrackUnionStream.cpp',
    'VideoFrameContainer.cpp',
    'VideoPlaybackQuality.cpp',
    'VideoSegment.cpp',
    'VideoStreamTrack.cpp',
    'VideoTrack.cpp',
    'VideoTrackList.cpp',
    'VideoUtils.cpp',
    'WebVTTListener.cpp',
]

if CONFIG['OS_TARGET'] == 'WINNT':
  SOURCES += [ 'ThreadPoolCOMListener.cpp' ]

if CONFIG['MOZ_B2G']:
    SOURCES += [
        'MediaPermissionGonk.cpp',
    ]

# DecoderTraits.cpp needs to be built separately because of Mac OS X headers.
SOURCES += [
    'DecoderTraits.cpp',
]

# Some codec-related code uses multi-character constants, which GCC and clang
# warn about. Suppress turning this warning into an error.
if CONFIG['GNU_CC'] or CONFIG['CLANG_CL']:
  SOURCES['DecoderTraits.cpp'].flags += ['-Wno-error=multichar']

EXTRA_COMPONENTS += [
    'PeerConnection.js',
    'PeerConnection.manifest',
]

EXTRA_JS_MODULES.media += [
    'IdpProxy.jsm',
    'PeerConnectionIdp.jsm',
    'RTCStatsReport.jsm',
]

FAIL_ON_WARNINGS = True

MSVC_ENABLE_PGO = True

LOCAL_INCLUDES += [
    '/caps',
    '/dom/base',
    '/dom/camera',
    '/layout/generic',
    '/layout/xul',
    '/netwerk/base',
]

if CONFIG['MOZ_DIRECTSHOW']:
    LOCAL_INCLUDES += [
        '/media/webrtc/trunk/webrtc/modules/video_capture/windows',
    ]

if CONFIG['MOZ_WEBRTC']:
    LOCAL_INCLUDES += [
        '/media/webrtc/signaling/src/common',
        '/media/webrtc/trunk',
    ]

DEFINES['MOZILLA_INTERNAL_API'] = True

if CONFIG['MOZ_OMX_DECODER']:
    DEFINES['MOZ_OMX_DECODER'] = True

if CONFIG['ANDROID_VERSION'] > '15':
    DEFINES['MOZ_OMX_WEBM_DECODER'] = True

CFLAGS += CONFIG['GSTREAMER_CFLAGS']
CXXFLAGS += CONFIG['GSTREAMER_CFLAGS']

include('/ipc/chromium/chromium-config.mozbuild')

# Suppress some GCC warnings being treated as errors:
#  - about attributes on forward declarations for types that are already
#    defined, which complains about an important MOZ_EXPORT for android::AString
if CONFIG['GNU_CC']:
  CXXFLAGS += ['-Wno-error=attributes']

FINAL_LIBRARY = 'xul'