moz.build (16696B)
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 7 with Files("**"): 8 BUG_COMPONENT = ("Core", "Graphics") 9 10 with Files("apz/**"): 11 BUG_COMPONENT = ("Core", "Panning and Zooming") 12 13 EXPORTS += [ 14 "composite/CompositableHost.h", 15 "CompositorTypes.h", 16 "FrameMetrics.h", 17 "GLImages.h", 18 "GPUVideoImage.h", 19 "ImageContainer.h", 20 "ImageTypes.h", 21 "IMFYCbCrImage.h", 22 "LayersTypes.h", 23 "LayerUserData.h", 24 "opengl/OGLShaderConfig.h", 25 "opengl/OGLShaderProgram.h", 26 ] 27 28 if CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows": 29 SOURCES += [ 30 "D3D11ShareHandleImage.cpp", 31 "D3D11YCbCrImage.cpp", 32 "D3D11ZeroCopyTextureImage.cpp", 33 ] 34 UNIFIED_SOURCES += [ 35 "IMFYCbCrImage.cpp", 36 ] 37 EXPORTS.mozilla.layers += [ 38 "d3d11/CompositeProcessD3D11FencesHolderMap.h", 39 "d3d11/CompositorD3D11.h", 40 "d3d11/DeviceAttachmentsD3D11.h", 41 "d3d11/FenceD3D11.h", 42 "d3d11/GpuProcessD3D11TextureMap.h", 43 "d3d11/HelpersD3D11.h", 44 "d3d11/ShaderDefinitionsD3D11.h", 45 "d3d11/TextureD3D11.h", 46 "d3d11/TextureHostWrapperD3D11.h", 47 "d3d11/VideoProcessorD3D11.h", 48 ] 49 UNIFIED_SOURCES += [ 50 "d3d11/CompositeProcessD3D11FencesHolderMap.cpp", 51 "d3d11/FenceD3D11.cpp", 52 "d3d11/GpuProcessD3D11TextureMap.cpp", 53 "d3d11/TextureD3D11.cpp", 54 "d3d11/TextureHostWrapperD3D11.cpp", 55 "d3d11/VideoProcessorD3D11.cpp", 56 ] 57 SOURCES += [ 58 "d3d11/CompositorD3D11.cpp", 59 "d3d11/DeviceAttachmentsD3D11.cpp", 60 ] 61 62 if CONFIG["MOZ_WMF_MEDIA_ENGINE"]: 63 EXPORTS.mozilla.layers += [ 64 "DcompSurfaceImage.h", 65 ] 66 UNIFIED_SOURCES += [ 67 "DcompSurfaceImage.cpp", 68 ] 69 70 EXPORTS.gfxipc += [ 71 "ipc/ShadowLayerUtils.h", 72 "ipc/SurfaceDescriptor.h", 73 ] 74 75 EXPORTS.mozilla.dom += [ 76 "apz/util/CheckerboardReportService.h", 77 ] 78 79 EXPORTS.mozilla.gfx += [ 80 "BuildConstants.h", 81 ] 82 83 EXPORTS.mozilla.layers += [ 84 "AnimationHelper.h", 85 "AnimationInfo.h", 86 "AnimationStorageData.h", 87 "apz/public/APZInputBridge.h", 88 "apz/public/APZPublicUtils.h", 89 "apz/public/APZSampler.h", 90 "apz/public/APZUpdater.h", 91 "apz/public/CompositorController.h", 92 "apz/public/CompositorScrollUpdate.h", 93 "apz/public/GeckoContentController.h", 94 "apz/public/GeckoContentControllerTypes.h", 95 "apz/public/IAPZCTreeManager.h", 96 "apz/public/MatrixMessage.h", 97 # exporting things from apz/src is temporary until we extract a 98 # proper interface for the code there 99 "apz/src/APZUtils.h", 100 "apz/src/AsyncDragMetrics.h", 101 "apz/src/FocusTarget.h", 102 "apz/src/KeyboardMap.h", 103 "apz/src/KeyboardScrollAction.h", 104 "apz/testutil/APZTestData.h", 105 "apz/util/APZCCallbackHelper.h", 106 "apz/util/APZEventState.h", 107 "apz/util/APZTaskRunnable.h", 108 "apz/util/APZThreadUtils.h", 109 "apz/util/ChromeProcessController.h", 110 "apz/util/ContentProcessController.h", 111 "apz/util/DoubleTapToZoom.h", 112 "apz/util/ElementStateManager.h", 113 "apz/util/InputAPZContext.h", 114 "apz/util/ScrollingInteractionContext.h", 115 "apz/util/ScrollLinkedEffectDetector.h", 116 "apz/util/TouchActionHelper.h", 117 "apz/util/TouchCounter.h", 118 "AtomicRefCountedWithFinalize.h", 119 "AxisPhysicsModel.h", 120 "AxisPhysicsMSDModel.h", 121 "BSPTree.h", 122 "BufferTexture.h", 123 "BuildConstants.h", 124 "CanvasDrawEventRecorder.h", 125 "CanvasRenderer.h", 126 "client/CanvasClient.h", 127 "client/CompositableClient.h", 128 "client/GPUVideoTextureClient.h", 129 "client/ImageClient.h", 130 "client/TextureClient.h", 131 "client/TextureClientRecycleAllocator.h", 132 "client/TextureClientSharedSurface.h", 133 "client/TextureRecorded.h", 134 "composite/Diagnostics.h", 135 "composite/FrameUniformityData.h", 136 "composite/GPUVideoTextureHost.h", 137 "composite/ImageComposite.h", 138 "composite/RemoteTextureHostWrapper.h", 139 "composite/TextureHost.h", 140 "CompositionRecorder.h", 141 "Compositor.h", 142 "CompositorAnimationStorage.h", 143 "CompositorTypes.h", 144 "D3D11ShareHandleImage.h", 145 "D3D11YCbCrImage.h", 146 "D3D11ZeroCopyTextureImage.h", 147 "DirectionUtils.h", 148 "Effects.h", 149 "Fence.h", 150 "GpuFence.h", 151 "ImageDataSerializer.h", 152 "ipc/ActiveResource.h", 153 "ipc/APZChild.h", 154 "ipc/APZCTreeManagerChild.h", 155 "ipc/APZCTreeManagerParent.h", 156 "ipc/APZInputBridgeChild.h", 157 "ipc/APZInputBridgeParent.h", 158 "ipc/CanvasChild.h", 159 "ipc/CanvasTranslator.h", 160 "ipc/CompositableForwarder.h", 161 "ipc/CompositableTransactionParent.h", 162 "ipc/CompositorBridgeChild.h", 163 "ipc/CompositorBridgeParent.h", 164 "ipc/CompositorManagerChild.h", 165 "ipc/CompositorManagerParent.h", 166 "ipc/CompositorThread.h", 167 "ipc/CompositorVsyncScheduler.h", 168 "ipc/CompositorVsyncSchedulerOwner.h", 169 "ipc/ContentCompositorBridgeParent.h", 170 "ipc/ImageBridgeChild.h", 171 "ipc/ImageBridgeParent.h", 172 "ipc/IOSurfacePort.h", 173 "ipc/ISurfaceAllocator.h", 174 "ipc/KnowsCompositor.h", 175 "ipc/LayersMessageUtils.h", 176 "ipc/LayerTreeOwnerTracker.h", 177 "ipc/RefCountedShmem.h", 178 "ipc/RemoteContentController.h", 179 "ipc/SharedPlanarYCbCrImage.h", 180 "ipc/SharedRGBImage.h", 181 "ipc/SharedSurfacesChild.h", 182 "ipc/SharedSurfacesMemoryReport.h", 183 "ipc/SharedSurfacesParent.h", 184 "ipc/SynchronousTask.h", 185 "ipc/TextureForwarder.h", 186 "ipc/UiCompositorControllerChild.h", 187 "ipc/UiCompositorControllerMessageTypes.h", 188 "ipc/UiCompositorControllerParent.h", 189 "ipc/VideoBridgeChild.h", 190 "ipc/VideoBridgeParent.h", 191 "ipc/VideoBridgeUtils.h", 192 "LayersTypes.h", 193 "MemoryPressureObserver.h", 194 "NativeLayer.h", 195 "NativeLayerCommandQueue.h", 196 "NativeLayerRemoteChild.h", 197 "NativeLayerRemoteParent.h", 198 "OOPCanvasRenderer.h", 199 "opengl/CompositingRenderTargetOGL.h", 200 "opengl/CompositorOGL.h", 201 "opengl/MacIOSurfaceTextureClientOGL.h", 202 "opengl/MacIOSurfaceTextureHostOGL.h", 203 "opengl/TextureClientOGL.h", 204 "opengl/TextureHostOGL.h", 205 "PersistentBufferProvider.h", 206 "ProfilerScreenshots.h", 207 "RecordedCanvasEventImpl.h", 208 "RemoteTextureMap.h", 209 "RepaintRequest.h", 210 "SampleTime.h", 211 "ScreenshotGrabber.h", 212 "ScrollableLayerGuid.h", 213 "ScrollbarData.h", 214 "ShareableCanvasRenderer.h", 215 "SourceSurfaceSharedData.h", 216 "SurfacePool.h", 217 "SyncObject.h", 218 "TextureSourceProvider.h", 219 "TextureWrapperImage.h", 220 "TransactionIdAllocator.h", 221 "TreeTraversal.h", 222 "wr/AsyncImagePipelineManager.h", 223 "wr/AsyncImagePipelineOp.h", 224 "wr/ClipManager.h", 225 "wr/DisplayItemCache.h", 226 "wr/HitTestInfoManager.h", 227 "wr/IpcResourceUpdateQueue.h", 228 "wr/OMTAController.h", 229 "wr/OMTASampler.h", 230 "wr/RenderRootStateManager.h", 231 "wr/RenderRootTypes.h", 232 "wr/StackingContextHelper.h", 233 "wr/WebRenderBridgeChild.h", 234 "wr/WebRenderBridgeParent.h", 235 "wr/WebRenderCanvasRenderer.h", 236 "wr/WebRenderCommandBuilder.h", 237 "wr/WebRenderDrawEventRecorder.h", 238 "wr/WebRenderImageHost.h", 239 "wr/WebRenderLayerManager.h", 240 "wr/WebRenderMessageUtils.h", 241 "wr/WebRenderScrollData.h", 242 "wr/WebRenderScrollDataWrapper.h", 243 "wr/WebRenderTextureHost.h", 244 "wr/WebRenderUserData.h", 245 "ZoomConstraints.h", 246 ] 247 248 if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": 249 EXPORTS.mozilla.layers += [ 250 "DMABUFSurfaceImage.h", 251 "opengl/DMABUFTextureClientOGL.h", 252 "opengl/DMABUFTextureHostOGL.h", 253 ] 254 SOURCES += [ 255 "DMABUFSurfaceImage.cpp", 256 "opengl/DMABUFTextureClientOGL.cpp", 257 "opengl/DMABUFTextureHostOGL.cpp", 258 ] 259 260 if CONFIG["MOZ_WAYLAND"]: 261 EXPORTS.mozilla.layers += [ 262 "NativeLayerWayland.h", 263 "SurfacePoolWayland.h", 264 ] 265 UNIFIED_SOURCES += [ 266 "NativeLayerWayland.cpp", 267 "SurfacePoolWayland.cpp", 268 ] 269 270 if CONFIG["MOZ_WIDGET_TOOLKIT"] in ("cocoa", "uikit"): 271 EXPORTS.mozilla.layers += [ 272 "GpuFenceMTLSharedEvent.h", 273 "NativeLayerCA.h", 274 "NativeLayerMacSurfaceHandler.h", 275 "NativeLayerRemoteMac.h", 276 "NativeLayerRootRemoteMacChild.h", 277 "NativeLayerRootRemoteMacParent.h", 278 "SurfacePoolCA.h", 279 ] 280 EXPORTS += [ 281 "MacIOSurfaceHelpers.h", 282 "MacIOSurfaceImage.h", 283 ] 284 UNIFIED_SOURCES += [ 285 "NativeLayerCA.mm", 286 "NativeLayerMacSurfaceHandler.mm", 287 "NativeLayerRemoteMac.mm", 288 "NativeLayerRootRemoteMacChild.mm", 289 "NativeLayerRootRemoteMacParent.mm", 290 "SurfacePoolCA.mm", 291 ] 292 SOURCES += [ 293 "GpuFenceMTLSharedEvent.cpp", 294 "MacIOSurfaceHelpers.cpp", 295 "MacIOSurfaceImage.cpp", 296 ] 297 OS_LIBS += [ 298 "-framework IOSurface", 299 ] 300 301 if CONFIG["MOZ_WIDGET_TOOLKIT"] == "android": 302 EXPORTS.mozilla.layers += [ 303 "AndroidHardwareBuffer.h", 304 ] 305 UNIFIED_SOURCES += [ 306 "AndroidHardwareBuffer.cpp", 307 "apz/src/AndroidAPZ.cpp", 308 "apz/src/AndroidFlingPhysics.cpp", 309 "apz/src/AndroidVelocityTracker.cpp", 310 ] 311 312 UNIFIED_SOURCES += [ 313 "AnimationHelper.cpp", 314 "AnimationInfo.cpp", 315 "apz/src/APZCTreeManager.cpp", 316 "apz/src/APZInputBridge.cpp", 317 "apz/src/APZPublicUtils.cpp", 318 "apz/src/APZSampler.cpp", 319 "apz/src/APZUpdater.cpp", 320 "apz/src/APZUtils.cpp", 321 "apz/src/AsyncPanZoomController.cpp", 322 "apz/src/AutoscrollAnimation.cpp", 323 "apz/src/Axis.cpp", 324 "apz/src/CheckerboardEvent.cpp", 325 "apz/src/DragTracker.cpp", 326 "apz/src/ExpectedGeckoMetrics.cpp", 327 "apz/src/FlingAccelerator.cpp", 328 "apz/src/FocusState.cpp", 329 "apz/src/FocusTarget.cpp", 330 "apz/src/GestureEventListener.cpp", 331 "apz/src/HitTestingTreeNode.cpp", 332 "apz/src/IAPZHitTester.cpp", 333 "apz/src/InputBlockState.cpp", 334 "apz/src/InputQueue.cpp", 335 "apz/src/KeyboardMap.cpp", 336 "apz/src/KeyboardScrollAction.cpp", 337 "apz/src/OverscrollHandoffState.cpp", 338 "apz/src/PotentialCheckerboardDurationTracker.cpp", 339 "apz/src/QueuedInput.cpp", 340 "apz/src/SampledAPZCState.cpp", 341 "apz/src/ScrollThumbUtils.cpp", 342 "apz/src/SimpleVelocityTracker.cpp", 343 "apz/src/SmoothScrollAnimation.cpp", 344 "apz/src/WRHitTester.cpp", 345 "apz/testutil/APZTestData.cpp", 346 "apz/util/APZCCallbackHelper.cpp", 347 "apz/util/APZEventState.cpp", 348 "apz/util/APZTaskRunnable.cpp", 349 "apz/util/APZThreadUtils.cpp", 350 "apz/util/CheckerboardReportService.cpp", 351 "apz/util/ChromeProcessController.cpp", 352 "apz/util/ContentProcessController.cpp", 353 "apz/util/DoubleTapToZoom.cpp", 354 "apz/util/ElementStateManager.cpp", 355 "apz/util/InputAPZContext.cpp", 356 "apz/util/ScrollingInteractionContext.cpp", 357 "apz/util/ScrollLinkedEffectDetector.cpp", 358 "apz/util/TouchActionHelper.cpp", 359 "apz/util/TouchCounter.cpp", 360 "AxisPhysicsModel.cpp", 361 "AxisPhysicsMSDModel.cpp", 362 "BSPTree.cpp", 363 "BufferTexture.cpp", 364 "CanvasDrawEventRecorder.cpp", 365 "CanvasRenderer.cpp", 366 "client/CanvasClient.cpp", 367 "client/CompositableClient.cpp", 368 "client/GPUVideoTextureClient.cpp", 369 "client/ImageClient.cpp", 370 "client/TextureClientRecycleAllocator.cpp", 371 "client/TextureClientSharedSurface.cpp", 372 "client/TextureRecorded.cpp", 373 "composite/CompositableHost.cpp", 374 "composite/FrameUniformityData.cpp", 375 "composite/GPUVideoTextureHost.cpp", 376 "composite/ImageComposite.cpp", 377 "composite/RemoteTextureHostWrapper.cpp", 378 "CompositionRecorder.cpp", 379 "Compositor.cpp", 380 "CompositorAnimationStorage.cpp", 381 "CompositorTypes.cpp", 382 "Effects.cpp", 383 "Fence.cpp", 384 "FrameMetrics.cpp", 385 "GLImages.cpp", 386 "ImageDataSerializer.cpp", 387 "ipc/APZChild.cpp", 388 "ipc/APZCTreeManagerChild.cpp", 389 "ipc/APZCTreeManagerParent.cpp", 390 "ipc/APZInputBridgeChild.cpp", 391 "ipc/APZInputBridgeParent.cpp", 392 "ipc/CanvasChild.cpp", 393 "ipc/CanvasTranslator.cpp", 394 "ipc/CompositableForwarder.cpp", 395 "ipc/CompositableTransactionParent.cpp", 396 "ipc/CompositorBench.cpp", 397 "ipc/CompositorBridgeChild.cpp", 398 "ipc/CompositorBridgeParent.cpp", 399 "ipc/CompositorManagerChild.cpp", 400 "ipc/CompositorManagerParent.cpp", 401 "ipc/CompositorThread.cpp", 402 "ipc/CompositorVsyncScheduler.cpp", 403 "ipc/ContentCompositorBridgeParent.cpp", 404 "ipc/ImageBridgeChild.cpp", 405 "ipc/ImageBridgeParent.cpp", 406 "ipc/ISurfaceAllocator.cpp", 407 "ipc/KnowsCompositor.cpp", 408 "ipc/LayerTreeOwnerTracker.cpp", 409 "ipc/RefCountedShmem.cpp", 410 "ipc/RemoteContentController.cpp", 411 "ipc/SharedPlanarYCbCrImage.cpp", 412 "ipc/SharedRGBImage.cpp", 413 "ipc/SharedSurfacesChild.cpp", 414 "ipc/SharedSurfacesParent.cpp", 415 "ipc/UiCompositorControllerChild.cpp", 416 "ipc/UiCompositorControllerParent.cpp", 417 "ipc/VideoBridgeChild.cpp", 418 "ipc/VideoBridgeParent.cpp", 419 "LayersTypes.cpp", 420 "MemoryPressureObserver.cpp", 421 "NativeLayerCommandQueue.cpp", 422 "opengl/CompositingRenderTargetOGL.cpp", 423 "opengl/CompositorOGL.cpp", 424 "opengl/OGLShaderProgram.cpp", 425 "opengl/TextureClientOGL.cpp", 426 "opengl/TextureHostOGL.cpp", 427 "ProfilerScreenshots.cpp", 428 "RemoteTextureMap.cpp", 429 "RepaintRequest.cpp", 430 "SampleTime.cpp", 431 "ScreenshotGrabber.cpp", 432 "ScrollableLayerGuid.cpp", 433 "ShareableCanvasRenderer.cpp", 434 "SourceSurfaceSharedData.cpp", 435 "SyncObject.cpp", 436 "TextureSourceProvider.cpp", 437 "TextureWrapperImage.cpp", 438 "wr/AsyncImagePipelineManager.cpp", 439 "wr/AsyncImagePipelineOp.cpp", 440 "wr/ClipManager.cpp", 441 "wr/DisplayItemCache.cpp", 442 "wr/HitTestInfoManager.cpp", 443 "wr/IpcResourceUpdateQueue.cpp", 444 "wr/OMTAController.cpp", 445 "wr/OMTASampler.cpp", 446 "wr/RenderRootStateManager.cpp", 447 "wr/RenderRootTypes.cpp", 448 "wr/StackingContextHelper.cpp", 449 "wr/WebRenderBridgeChild.cpp", 450 "wr/WebRenderBridgeParent.cpp", 451 "wr/WebRenderCanvasRenderer.cpp", 452 "wr/WebRenderCommandBuilder.cpp", 453 "wr/WebRenderDrawEventRecorder.cpp", 454 "wr/WebRenderImageHost.cpp", 455 "wr/WebRenderLayerManager.cpp", 456 "wr/WebRenderScrollData.cpp", 457 "wr/WebRenderUserData.cpp", 458 "ZoomConstraints.cpp", 459 # XXX here are some unified build error. 460 #'wr/WebRenderTextureHost.cpp' 461 ] 462 463 SOURCES += [ 464 "client/TextureClient.cpp", 465 "composite/TextureHost.cpp", 466 "ImageContainer.cpp", 467 "PersistentBufferProvider.cpp", 468 "wr/WebRenderTextureHost.cpp", 469 ] 470 471 DEFINES["GOOGLE_PROTOBUF_NO_RTTI"] = True 472 DEFINES["GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER"] = True 473 DEFINES["MOZ_APP_VERSION"] = CONFIG["MOZ_APP_VERSION"] 474 475 if CONFIG["MOZ_WIDGET_TOOLKIT"] in ("cocoa", "uikit"): 476 SOURCES += [ 477 "opengl/MacIOSurfaceTextureClientOGL.cpp", 478 "opengl/MacIOSurfaceTextureHostOGL.cpp", 479 ] 480 481 IPDL_SOURCES += [ 482 "ipc/LayersMessages.ipdlh", 483 "ipc/LayersSurfaces.ipdlh", 484 "ipc/PAPZ.ipdl", 485 "ipc/PAPZCTreeManager.ipdl", 486 "ipc/PAPZInputBridge.ipdl", 487 "ipc/PCanvas.ipdl", 488 "ipc/PCompositorBridge.ipdl", 489 "ipc/PCompositorBridgeTypes.ipdlh", 490 "ipc/PCompositorManager.ipdl", 491 "ipc/PImageBridge.ipdl", 492 "ipc/PNativeLayerRemote.ipdl", 493 "ipc/PTexture.ipdl", 494 "ipc/PUiCompositorController.ipdl", 495 "ipc/PVideoBridge.ipdl", 496 "ipc/PWebRenderBridge.ipdl", 497 "ipc/WebRenderMessages.ipdlh", 498 ] 499 500 include("/ipc/chromium/chromium-config.mozbuild") 501 502 if CONFIG["COMPILE_ENVIRONMENT"] and CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows": 503 GeneratedFile( 504 "CompositorD3D11Shaders.h", 505 script="d3d11/genshaders.py", 506 inputs=["d3d11/shaders.manifest"], 507 ) 508 509 LOCAL_INCLUDES += [ 510 "/docshell/base", # for nsDocShell.h 511 "/dom/canvas", # for intertwined WebGL headers 512 "/gfx/cairo/cairo/src", 513 "/layout/base", # for TouchManager.h 514 "/layout/generic", # for nsTextFrame.h 515 "/media/libyuv/libyuv/include", # for libyuv.h 516 ] 517 518 FINAL_LIBRARY = "xul" 519 520 if CONFIG["MOZ_DEBUG"]: 521 DEFINES["D3D_DEBUG_INFO"] = True 522 523 TEST_DIRS += ["apz/test/gtest", "apz/test/gtest/mvm"] 524 525 MOCHITEST_MANIFESTS += ["apz/test/mochitest/mochitest.toml"] 526 BROWSER_CHROME_MANIFESTS += [ 527 "apz/test/mochitest/browser.toml", 528 "apz/test/mochitest/browserSidebarRevamp.toml", 529 ] 530 531 if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": 532 CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"] 533 534 CXXFLAGS += ["-Werror=switch"] 535 536 LOCAL_INCLUDES += CONFIG["SKIA_INCLUDES"] 537 538 # Suppress warnings in third-party code. 539 if CONFIG["CC_TYPE"] == "gcc": 540 CXXFLAGS += ["-Wno-maybe-uninitialized"] 541 542 UNIFIED_SOURCES += [] 543 544 # Add libFuzzer configuration directives 545 include("/tools/fuzzing/libfuzzer-config.mozbuild")