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