summaryrefslogtreecommitdiffstats
path: root/dom/media/systemservices/moz.build
blob: fa6566cf6b0dbec6426f013a3d95bce0ecbfbf39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# -*- 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/.
include("/dom/media/webrtc/third_party_build/webrtc.mozbuild")

if CONFIG["MOZ_WEBRTC"]:
    EXPORTS += [
        "CamerasChild.h",
        "CamerasParent.h",
        "VideoEngine.h",
        "VideoFrameUtils.h",
    ]
    UNIFIED_SOURCES += [
        "CamerasChild.cpp",
        "CamerasParent.cpp",
        "video_engine/video_capture_factory.cc",
        "VideoEngine.cpp",
        "VideoFrameUtils.cpp",
    ]
    LOCAL_INCLUDES += [
        "/dom/media/webrtc",
        "/media/libyuv/libyuv/include",
        "/mfbt",
        "/third_party/libwebrtc",
        "/third_party/libwebrtc/third_party/abseil-cpp",
        "/tools/profiler/public",
    ]

    if CONFIG["OS_TARGET"] == "Android":
        UNIFIED_SOURCES += [
            "android_video_capture/device_info_android.cc",
            "android_video_capture/video_capture_android.cc",
        ]
    elif CONFIG["OS_TARGET"] == "Darwin":
        UNIFIED_SOURCES += [
            "objc_video_capture/device_info.mm",
            "objc_video_capture/device_info_avfoundation.mm",
            "objc_video_capture/device_info_objc.mm",
            "objc_video_capture/rtc_video_capture_objc.mm",
            "objc_video_capture/video_capture.mm",
            "objc_video_capture/video_capture_avfoundation.mm",
        ]
        LOCAL_INCLUDES += [
            "/third_party/libwebrtc/sdk/objc",
            "/third_party/libwebrtc/sdk/objc/base",
        ]
        CMMFLAGS += [
            "-fobjc-arc",
        ]

    if CONFIG["OS_TARGET"] != "Android":
        UNIFIED_SOURCES += [
            "video_engine/desktop_capture_impl.cc",
            "video_engine/desktop_device_info.cc",
            "video_engine/tab_capturer.cc",
        ]

    if "WEBRTC_USE_PIPEWIRE" in DEFINES:
        UNIFIED_SOURCES += [
            "video_engine/placeholder_device_info.cc",
        ]
        CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"]

if CONFIG["OS_TARGET"] == "Android":
    DEFINES["WEBRTC_ANDROID"] = True

if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
    UNIFIED_SOURCES += ["OSXRunLoopSingleton.cpp"]
    EXPORTS += ["OSXRunLoopSingleton.h"]

EXPORTS.mozilla += [
    "ShmemPool.h",
]

EXPORTS.mozilla.media += [
    "CamerasTypes.h",
    "MediaChild.h",
    "MediaParent.h",
    "MediaSystemResourceClient.h",
    "MediaSystemResourceManager.h",
    "MediaSystemResourceManagerChild.h",
    "MediaSystemResourceManagerParent.h",
    "MediaSystemResourceMessageUtils.h",
    "MediaSystemResourceService.h",
    "MediaSystemResourceTypes.h",
    "MediaTaskUtils.h",
    "MediaUtils.h",
]
UNIFIED_SOURCES += [
    "CamerasTypes.cpp",
    "MediaChild.cpp",
    "MediaParent.cpp",
    "MediaSystemResourceClient.cpp",
    "MediaSystemResourceManager.cpp",
    "MediaSystemResourceManagerChild.cpp",
    "MediaSystemResourceManagerParent.cpp",
    "MediaSystemResourceService.cpp",
    "MediaUtils.cpp",
    "ShmemPool.cpp",
]
IPDL_SOURCES += [
    "PCameras.ipdl",
    "PMedia.ipdl",
    "PMediaSystemResourceManager.ipdl",
]

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

FINAL_LIBRARY = "xul"

with Files("android_video_capture/**"):
    SCHEDULES.exclusive = ["android"]