moz.build (3691B)
1 # -*- Mode: python; c-basic-offset: 4; 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 if CONFIG["MOZ_WEBRTC"]: 9 EXPORTS += [ 10 "CamerasChild.h", 11 "CamerasParent.h", 12 "VideoFrameUtils.h", 13 ] 14 UNIFIED_SOURCES += [ 15 "CamerasChild.cpp", 16 "CamerasParent.cpp", 17 "fake_video_capture/device_info_fake.cc", 18 "fake_video_capture/video_capture_fake.cc", 19 "video_engine/video_capture_factory.cc", 20 "VideoEngine.cpp", 21 "VideoFrameUtils.cpp", 22 ] 23 LOCAL_INCLUDES += [ 24 "!/dist/include/libwebrtc_overrides", 25 "/dom/media/webrtc", 26 "/media/libyuv/libyuv/include", 27 "/mfbt", 28 "/third_party/abseil-cpp", 29 "/third_party/libwebrtc", 30 "/tools/profiler/public", 31 ] 32 33 if CONFIG["OS_TARGET"] == "Android": 34 UNIFIED_SOURCES += [ 35 "android_video_capture/device_info_android.cc", 36 "android_video_capture/video_capture_android.cc", 37 ] 38 elif CONFIG["OS_TARGET"] == "Darwin": 39 UNIFIED_SOURCES += [ 40 "objc_video_capture/device_info.mm", 41 "objc_video_capture/device_info_avfoundation.mm", 42 "objc_video_capture/device_info_objc.mm", 43 "objc_video_capture/rtc_video_capture_objc.mm", 44 "objc_video_capture/video_capture.mm", 45 "objc_video_capture/video_capture_avfoundation.mm", 46 ] 47 LOCAL_INCLUDES += [ 48 "/third_party/libwebrtc/sdk/objc", 49 "/third_party/libwebrtc/sdk/objc/base", 50 ] 51 CMMFLAGS += [ 52 "-fobjc-arc", 53 ] 54 55 if CONFIG["OS_TARGET"] != "Android": 56 SOURCES += [ 57 "video_engine/desktop_capture_impl.cc", 58 "video_engine/tab_capturer.cc", 59 ] 60 UNIFIED_SOURCES += [ 61 "video_engine/desktop_device_info.cc", 62 ] 63 64 if "WEBRTC_USE_PIPEWIRE" in DEFINES: 65 UNIFIED_SOURCES += [ 66 "video_engine/placeholder_device_info.cc", 67 ] 68 CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"] 69 70 if CONFIG["OS_TARGET"] == "Android": 71 DEFINES["WEBRTC_ANDROID"] = True 72 73 if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa": 74 UNIFIED_SOURCES += ["OSXRunLoopSingleton.cpp"] 75 EXPORTS += ["OSXRunLoopSingleton.h"] 76 77 EXPORTS.mozilla += [ 78 "ShmemPool.h", 79 ] 80 81 EXPORTS.mozilla.media += [ 82 "CamerasTypes.h", 83 "MediaChild.h", 84 "MediaParent.h", 85 "MediaSystemResourceClient.h", 86 "MediaSystemResourceManager.h", 87 "MediaSystemResourceManagerChild.h", 88 "MediaSystemResourceManagerParent.h", 89 "MediaSystemResourceMessageUtils.h", 90 "MediaSystemResourceService.h", 91 "MediaSystemResourceTypes.h", 92 "MediaTaskUtils.h", 93 "MediaUtils.h", 94 ] 95 UNIFIED_SOURCES += [ 96 "CamerasTypes.cpp", 97 "MediaChild.cpp", 98 "MediaParent.cpp", 99 "MediaSystemResourceClient.cpp", 100 "MediaSystemResourceManager.cpp", 101 "MediaSystemResourceManagerChild.cpp", 102 "MediaSystemResourceManagerParent.cpp", 103 "MediaSystemResourceService.cpp", 104 "MediaUtils.cpp", 105 "ShmemPool.cpp", 106 ] 107 SOURCES += [ 108 "FakeVideoSource.cpp", 109 ] 110 IPDL_SOURCES += [ 111 "PCameras.ipdl", 112 "PMedia.ipdl", 113 "PMediaSystemResourceManager.ipdl", 114 ] 115 116 if CONFIG["MOZ_SYSTEM_AV1"]: 117 CXXFLAGS += CONFIG["MOZ_SYSTEM_LIBAOM_CFLAGS"] 118 119 include("/ipc/chromium/chromium-config.mozbuild") 120 121 FINAL_LIBRARY = "xul" 122 123 with Files("android_video_capture/**"): 124 SCHEDULES.exclusive = ["android"]