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    "basic/BasicCanvasLayer.h",
15    "basic/BasicImplData.h",
16    "basic/BasicLayers.h",
17    "basic/BasicLayersImpl.h",
18    "basic/BasicPaintedLayer.h",
19    "client/ClientCanvasLayer.h",
20    "client/ClientContainerLayer.h",
21    "client/ClientLayerManager.h",
22    "client/ClientPaintedLayer.h",
23    "client/ClientTiledPaintedLayer.h",
24    "composite/CompositableHost.h",
25    "composite/ImageHost.h",
26    "CompositorTypes.h",
27    "D3D9SurfaceImage.h",
28    "FrameMetrics.h",
29    "GLImages.h",
30    "GPUVideoImage.h",
31    "ImageContainer.h",
32    "ImageLayers.h",
33    "ImageTypes.h",
34    "IMFYCbCrImage.h",
35    "Layers.h",
36    "LayerScope.h",
37    "LayerSorter.h",
38    "LayersTypes.h",
39    "LayerTreeInvalidation.h",
40    "LayerUserData.h",
41    "opengl/OGLShaderConfig.h",
42    "opengl/OGLShaderProgram.h",
43    "protobuf/LayerScopePacket.pb.h",
44    "ReadbackLayer.h",
45    "TiledLayerBuffer.h",
46]
47
48if CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows":
49    SOURCES += [
50        "D3D11ShareHandleImage.cpp",
51        "D3D11YCbCrImage.cpp",
52    ]
53    UNIFIED_SOURCES += [
54        "D3D9SurfaceImage.cpp",
55        "IMFYCbCrImage.cpp",
56        "TextureDIB.cpp",
57    ]
58    EXPORTS.mozilla.layers += [
59        "TextureDIB.h",
60    ]
61    if CONFIG["MOZ_ENABLE_D3D10_LAYER"]:
62        EXPORTS.mozilla.layers += [
63            "d3d11/CompositorD3D11.h",
64            "d3d11/DeviceAttachmentsD3D11.h",
65            "d3d11/DiagnosticsD3D11.h",
66            "d3d11/HelpersD3D11.h",
67            "d3d11/ReadbackManagerD3D11.h",
68            "d3d11/ShaderDefinitionsD3D11.h",
69            "d3d11/TextureD3D11.h",
70        ]
71        UNIFIED_SOURCES += [
72            "d3d11/DiagnosticsD3D11.cpp",
73            "d3d11/TextureD3D11.cpp",
74        ]
75        SOURCES += [
76            "d3d11/CompositorD3D11.cpp",
77            "d3d11/DeviceAttachmentsD3D11.cpp",
78            "d3d11/ReadbackManagerD3D11.cpp",
79        ]
80
81EXPORTS.gfxipc += [
82    "ipc/ShadowLayerUtils.h",
83    "ipc/SurfaceDescriptor.h",
84]
85
86EXPORTS.mozilla.dom += [
87    "apz/util/CheckerboardReportService.h",
88]
89
90EXPORTS.mozilla.gfx += [
91    "BuildConstants.h",
92]
93
94EXPORTS.mozilla.layers += [
95    "AnimationHelper.h",
96    "AnimationInfo.h",
97    "AnimationStorageData.h",
98    "apz/public/APZInputBridge.h",
99    "apz/public/APZPublicUtils.h",
100    "apz/public/APZSampler.h",
101    "apz/public/APZUpdater.h",
102    "apz/public/CompositorController.h",
103    "apz/public/GeckoContentController.h",
104    "apz/public/GeckoContentControllerTypes.h",
105    "apz/public/IAPZCTreeManager.h",
106    "apz/public/MatrixMessage.h",
107    "apz/public/MetricsSharingController.h",
108    # exporting things from apz/src is temporary until we extract a
109    # proper interface for the code there
110    "apz/src/APZUtils.h",
111    "apz/src/AsyncDragMetrics.h",
112    "apz/src/FocusTarget.h",
113    "apz/src/KeyboardMap.h",
114    "apz/src/KeyboardScrollAction.h",
115    "apz/testutil/APZTestData.h",
116    "apz/util/ActiveElementManager.h",
117    "apz/util/APZCCallbackHelper.h",
118    "apz/util/APZEventState.h",
119    "apz/util/APZThreadUtils.h",
120    "apz/util/ChromeProcessController.h",
121    "apz/util/ContentProcessController.h",
122    "apz/util/DoubleTapToZoom.h",
123    "apz/util/InputAPZContext.h",
124    "apz/util/ScrollLinkedEffectDetector.h",
125    "apz/util/TouchActionHelper.h",
126    "apz/util/TouchCounter.h",
127    "AtomicRefCountedWithFinalize.h",
128    "AxisPhysicsModel.h",
129    "AxisPhysicsMSDModel.h",
130    "basic/BasicCompositor.h",
131    "basic/MacIOSurfaceTextureHostBasic.h",
132    "basic/TextureHostBasic.h",
133    "BSPTree.h",
134    "BufferTexture.h",
135    "BuildConstants.h",
136    "CanvasDrawEventRecorder.h",
137    "CanvasRenderer.h",
138    "client/CanvasClient.h",
139    "client/CompositableClient.h",
140    "client/ContentClient.h",
141    "client/GPUVideoTextureClient.h",
142    "client/ImageClient.h",
143    "client/MultiTiledContentClient.h",
144    "client/SingleTiledContentClient.h",
145    "client/TextureClient.h",
146    "client/TextureClientPool.h",
147    "client/TextureClientRecycleAllocator.h",
148    "client/TextureClientSharedSurface.h",
149    "client/TextureRecorded.h",
150    "client/TiledContentClient.h",
151    "composite/AsyncCompositionManager.h",
152    "composite/CanvasLayerComposite.h",
153    "composite/ColorLayerComposite.h",
154    "composite/ContainerLayerComposite.h",
155    "composite/ContentHost.h",
156    "composite/Diagnostics.h",
157    "composite/FPSCounter.h",
158    "composite/FrameUniformityData.h",
159    "composite/GPUVideoTextureHost.h",
160    "composite/ImageComposite.h",
161    "composite/ImageHost.h",
162    "composite/ImageLayerComposite.h",
163    "composite/LayerManagerComposite.h",
164    "composite/LayerManagerCompositeUtils.h",
165    "composite/PaintedLayerComposite.h",
166    "composite/TextRenderer.h",
167    "composite/TextureHost.h",
168    "composite/TiledContentHost.h",
169    "CompositionRecorder.h",
170    "Compositor.h",
171    "CompositorAnimationStorage.h",
172    "CompositorTypes.h",
173    "D3D11ShareHandleImage.h",
174    "D3D11YCbCrImage.h",
175    "D3D9SurfaceImage.h",
176    "DirectionUtils.h",
177    "Effects.h",
178    "ImageDataSerializer.h",
179    "ipc/APZChild.h",
180    "ipc/APZCTreeManagerChild.h",
181    "ipc/APZCTreeManagerParent.h",
182    "ipc/APZInputBridgeChild.h",
183    "ipc/APZInputBridgeParent.h",
184    "ipc/CanvasChild.h",
185    "ipc/CanvasThread.h",
186    "ipc/CanvasTranslator.h",
187    "ipc/CompositableForwarder.h",
188    "ipc/CompositableTransactionParent.h",
189    "ipc/CompositorBridgeChild.h",
190    "ipc/CompositorBridgeParent.h",
191    "ipc/CompositorManagerChild.h",
192    "ipc/CompositorManagerParent.h",
193    "ipc/CompositorThread.h",
194    "ipc/CompositorVsyncScheduler.h",
195    "ipc/CompositorVsyncSchedulerOwner.h",
196    "ipc/ContentCompositorBridgeParent.h",
197    "ipc/ImageBridgeChild.h",
198    "ipc/ImageBridgeParent.h",
199    "ipc/ISurfaceAllocator.h",
200    "ipc/KnowsCompositor.h",
201    "ipc/LayerAnimationUtils.h",
202    "ipc/LayersMessageUtils.h",
203    "ipc/LayerTransactionChild.h",
204    "ipc/LayerTransactionParent.h",
205    "ipc/LayerTreeOwnerTracker.h",
206    "ipc/RefCountedShmem.h",
207    "ipc/RemoteContentController.h",
208    "ipc/ShadowLayers.h",
209    "ipc/SharedPlanarYCbCrImage.h",
210    "ipc/SharedRGBImage.h",
211    "ipc/SharedSurfacesChild.h",
212    "ipc/SharedSurfacesMemoryReport.h",
213    "ipc/SharedSurfacesParent.h",
214    "ipc/SynchronousTask.h",
215    "ipc/TextureForwarder.h",
216    "ipc/UiCompositorControllerChild.h",
217    "ipc/UiCompositorControllerMessageTypes.h",
218    "ipc/UiCompositorControllerParent.h",
219    "ipc/VideoBridgeChild.h",
220    "ipc/VideoBridgeParent.h",
221    "ipc/VideoBridgeUtils.h",
222    "LayerAttributes.h",
223    "LayerManager.h",
224    "LayerMetricsWrapper.h",
225    "LayersHelpers.h",
226    "LayersTypes.h",
227    "MemoryPressureObserver.h",
228    "NativeLayer.h",
229    "OOPCanvasRenderer.h",
230    "opengl/CompositingRenderTargetOGL.h",
231    "opengl/CompositorOGL.h",
232    "opengl/MacIOSurfaceTextureClientOGL.h",
233    "opengl/MacIOSurfaceTextureHostOGL.h",
234    "opengl/TextureClientOGL.h",
235    "opengl/TextureHostOGL.h",
236    "PaintThread.h",
237    "PersistentBufferProvider.h",
238    "ProfilerScreenshots.h",
239    "RenderTrace.h",
240    "RepaintRequest.h",
241    "RotatedBuffer.h",
242    "SampleTime.h",
243    "ScreenshotGrabber.h",
244    "ScrollableLayerGuid.h",
245    "ShareableCanvasRenderer.h",
246    "SourceSurfaceSharedData.h",
247    "SourceSurfaceVolatileData.h",
248    "SurfacePool.h",
249    "SyncObject.h",
250    "TextureSourceProvider.h",
251    "TextureWrapperImage.h",
252    "TransactionIdAllocator.h",
253    "TreeTraversal.h",
254    "UpdateImageHelper.h",
255    "wr/AsyncImagePipelineManager.h",
256    "wr/ClipManager.h",
257    "wr/DisplayItemCache.h",
258    "wr/HitTestInfoManager.h",
259    "wr/IpcResourceUpdateQueue.h",
260    "wr/OMTAController.h",
261    "wr/OMTASampler.h",
262    "wr/RenderRootStateManager.h",
263    "wr/RenderRootTypes.h",
264    "wr/StackingContextHelper.h",
265    "wr/WebRenderBridgeChild.h",
266    "wr/WebRenderBridgeParent.h",
267    "wr/WebRenderCanvasRenderer.h",
268    "wr/WebRenderCommandBuilder.h",
269    "wr/WebRenderDrawEventRecorder.h",
270    "wr/WebRenderImageHost.h",
271    "wr/WebRenderLayerManager.h",
272    "wr/WebRenderMessageUtils.h",
273    "wr/WebRenderScrollData.h",
274    "wr/WebRenderScrollDataWrapper.h",
275    "wr/WebRenderTextureHost.h",
276    "wr/WebRenderUserData.h",
277    "ZoomConstraints.h",
278]
279
280if CONFIG["MOZ_X11"]:
281    EXPORTS.mozilla.layers += [
282        "basic/TextureClientX11.h",
283        "basic/X11TextureSourceBasic.h",
284        "composite/X11TextureHost.h",
285        "ipc/ShadowLayerUtilsX11.h",
286        "opengl/X11TextureSourceOGL.h",
287    ]
288    SOURCES += [
289        "basic/TextureClientX11.cpp",
290        "basic/X11BasicCompositor.cpp",
291        "basic/X11TextureSourceBasic.cpp",
292        "composite/X11TextureHost.cpp",
293        "ipc/ShadowLayerUtilsX11.cpp",
294        "opengl/X11TextureSourceOGL.cpp",
295    ]
296
297if CONFIG["MOZ_WAYLAND"]:
298    EXPORTS.mozilla.layers += [
299        "DMABUFSurfaceImage.h",
300        "NativeLayerWayland.h",
301        "opengl/DMABUFTextureClientOGL.h",
302        "opengl/DMABUFTextureHostOGL.h",
303        "SurfacePoolWayland.h",
304    ]
305    UNIFIED_SOURCES += [
306        "NativeLayerWayland.cpp",
307        "SurfacePoolWayland.cpp",
308    ]
309    SOURCES += [
310        "DMABUFSurfaceImage.cpp",
311        "opengl/DMABUFTextureClientOGL.cpp",
312        "opengl/DMABUFTextureHostOGL.cpp",
313    ]
314
315if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
316    EXPORTS.mozilla.layers += [
317        "NativeLayerCA.h",
318        "SurfacePoolCA.h",
319        "TextureSync.h",
320    ]
321    EXPORTS += [
322        "MacIOSurfaceHelpers.h",
323        "MacIOSurfaceImage.h",
324    ]
325    UNIFIED_SOURCES += [
326        "NativeLayerCA.mm",
327        "SurfacePoolCA.mm",
328        "TextureSync.cpp",
329    ]
330    SOURCES += [
331        "ipc/ShadowLayerUtilsMac.cpp",
332        "MacIOSurfaceHelpers.cpp",
333        "MacIOSurfaceImage.cpp",
334    ]
335    OS_LIBS += [
336        "-framework IOSurface",
337    ]
338
339if CONFIG["MOZ_WIDGET_TOOLKIT"] == "android":
340    EXPORTS.mozilla.layers += [
341        "AndroidHardwareBuffer.h",
342    ]
343    UNIFIED_SOURCES += [
344        "AndroidHardwareBuffer.cpp",
345        "apz/src/AndroidAPZ.cpp",
346        "apz/src/AndroidFlingPhysics.cpp",
347        "apz/src/AndroidVelocityTracker.cpp",
348    ]
349
350UNIFIED_SOURCES += [
351    "AnimationHelper.cpp",
352    "AnimationInfo.cpp",
353    "apz/src/APZCTreeManager.cpp",
354    "apz/src/APZInputBridge.cpp",
355    "apz/src/APZPublicUtils.cpp",
356    "apz/src/APZSampler.cpp",
357    "apz/src/APZUpdater.cpp",
358    "apz/src/APZUtils.cpp",
359    "apz/src/AsyncPanZoomController.cpp",
360    "apz/src/AutoscrollAnimation.cpp",
361    "apz/src/Axis.cpp",
362    "apz/src/CheckerboardEvent.cpp",
363    "apz/src/DragTracker.cpp",
364    "apz/src/ExpectedGeckoMetrics.cpp",
365    "apz/src/FlingAccelerator.cpp",
366    "apz/src/FocusState.cpp",
367    "apz/src/FocusTarget.cpp",
368    "apz/src/GenericScrollAnimation.cpp",
369    "apz/src/GestureEventListener.cpp",
370    "apz/src/HitTestingTreeNode.cpp",
371    "apz/src/InputBlockState.cpp",
372    "apz/src/InputQueue.cpp",
373    "apz/src/KeyboardMap.cpp",
374    "apz/src/KeyboardScrollAction.cpp",
375    "apz/src/OverscrollHandoffState.cpp",
376    "apz/src/PotentialCheckerboardDurationTracker.cpp",
377    "apz/src/QueuedInput.cpp",
378    "apz/src/SampledAPZCState.cpp",
379    "apz/src/ScrollThumbUtils.cpp",
380    "apz/src/SimpleVelocityTracker.cpp",
381    "apz/src/SmoothMsdScrollAnimation.cpp",
382    "apz/src/SmoothScrollAnimation.cpp",
383    "apz/src/WheelScrollAnimation.cpp",
384    "apz/testutil/APZTestData.cpp",
385    "apz/util/ActiveElementManager.cpp",
386    "apz/util/APZCCallbackHelper.cpp",
387    "apz/util/APZEventState.cpp",
388    "apz/util/APZThreadUtils.cpp",
389    "apz/util/CheckerboardReportService.cpp",
390    "apz/util/ChromeProcessController.cpp",
391    "apz/util/ContentProcessController.cpp",
392    "apz/util/DoubleTapToZoom.cpp",
393    "apz/util/InputAPZContext.cpp",
394    "apz/util/ScrollLinkedEffectDetector.cpp",
395    "apz/util/TouchActionHelper.cpp",
396    "apz/util/TouchCounter.cpp",
397    "AxisPhysicsModel.cpp",
398    "AxisPhysicsMSDModel.cpp",
399    "basic/BasicCanvasLayer.cpp",
400    "basic/BasicColorLayer.cpp",
401    "basic/BasicContainerLayer.cpp",
402    "basic/BasicImages.cpp",
403    "basic/BasicLayerManager.cpp",
404    "basic/BasicLayersImpl.cpp",
405    "basic/BasicPaintedLayer.cpp",
406    "basic/TextureHostBasic.cpp",
407    "BSPTree.cpp",
408    "BufferTexture.cpp",
409    "CanvasDrawEventRecorder.cpp",
410    "CanvasRenderer.cpp",
411    "client/CanvasClient.cpp",
412    "client/ClientCanvasLayer.cpp",
413    "client/ClientCanvasRenderer.cpp",
414    "client/ClientColorLayer.cpp",
415    "client/ClientContainerLayer.cpp",
416    "client/ClientImageLayer.cpp",
417    "client/ClientLayerManager.cpp",
418    "client/ClientPaintedLayer.cpp",
419    "client/ClientTiledPaintedLayer.cpp",
420    "client/CompositableClient.cpp",
421    "client/ContentClient.cpp",
422    "client/GPUVideoTextureClient.cpp",
423    "client/ImageClient.cpp",
424    "client/MultiTiledContentClient.cpp",
425    "client/SingleTiledContentClient.cpp",
426    "client/TextureClientPool.cpp",
427    "client/TextureClientRecycleAllocator.cpp",
428    "client/TextureClientSharedSurface.cpp",
429    "client/TextureRecorded.cpp",
430    "client/TiledContentClient.cpp",
431    "composite/AsyncCompositionManager.cpp",
432    "composite/CanvasLayerComposite.cpp",
433    "composite/ColorLayerComposite.cpp",
434    "composite/CompositableHost.cpp",
435    "composite/ContainerLayerComposite.cpp",
436    "composite/ContentHost.cpp",
437    "composite/Diagnostics.cpp",
438    "composite/FPSCounter.cpp",
439    "composite/FrameUniformityData.cpp",
440    "composite/GPUVideoTextureHost.cpp",
441    "composite/ImageComposite.cpp",
442    "composite/ImageHost.cpp",
443    "composite/ImageLayerComposite.cpp",
444    "composite/LayerManagerComposite.cpp",
445    "composite/PaintedLayerComposite.cpp",
446    "composite/TextRenderer.cpp",
447    "composite/TextureHost.cpp",
448    "composite/TiledContentHost.cpp",
449    "CompositionRecorder.cpp",
450    "Compositor.cpp",
451    "CompositorAnimationStorage.cpp",
452    "CompositorTypes.cpp",
453    "Effects.cpp",
454    "FrameMetrics.cpp",
455    "GLImages.cpp",
456    "ImageDataSerializer.cpp",
457    "ImageLayers.cpp",
458    "ipc/APZChild.cpp",
459    "ipc/APZCTreeManagerChild.cpp",
460    "ipc/APZCTreeManagerParent.cpp",
461    "ipc/APZInputBridgeChild.cpp",
462    "ipc/APZInputBridgeParent.cpp",
463    "ipc/CanvasChild.cpp",
464    "ipc/CanvasThread.cpp",
465    "ipc/CanvasTranslator.cpp",
466    "ipc/CompositableForwarder.cpp",
467    "ipc/CompositableTransactionParent.cpp",
468    "ipc/CompositorBench.cpp",
469    "ipc/CompositorBridgeChild.cpp",
470    "ipc/CompositorBridgeParent.cpp",
471    "ipc/CompositorManagerChild.cpp",
472    "ipc/CompositorManagerParent.cpp",
473    "ipc/CompositorThread.cpp",
474    "ipc/CompositorVsyncScheduler.cpp",
475    "ipc/ContentCompositorBridgeParent.cpp",
476    "ipc/ImageBridgeChild.cpp",
477    "ipc/ImageBridgeParent.cpp",
478    "ipc/ISurfaceAllocator.cpp",
479    "ipc/LayerAnimationUtils.cpp",
480    "ipc/LayerTransactionChild.cpp",
481    "ipc/LayerTransactionParent.cpp",
482    "ipc/LayerTreeOwnerTracker.cpp",
483    "ipc/RefCountedShmem.cpp",
484    "ipc/RemoteContentController.cpp",
485    "ipc/ShadowLayers.cpp",
486    "ipc/SharedPlanarYCbCrImage.cpp",
487    "ipc/SharedRGBImage.cpp",
488    "ipc/SharedSurfacesChild.cpp",
489    "ipc/SharedSurfacesParent.cpp",
490    "ipc/UiCompositorControllerChild.cpp",
491    "ipc/UiCompositorControllerParent.cpp",
492    "ipc/VideoBridgeChild.cpp",
493    "ipc/VideoBridgeParent.cpp",
494    "LayerManager.cpp",
495    "Layers.cpp",
496    "LayerScope.cpp",
497    "LayersHelpers.cpp",
498    "LayerSorter.cpp",
499    "LayersTypes.cpp",
500    "LayerTreeInvalidation.cpp",
501    "MemoryPressureObserver.cpp",
502    "opengl/CompositingRenderTargetOGL.cpp",
503    "opengl/CompositorOGL.cpp",
504    "opengl/GLBlitTextureImageHelper.cpp",
505    "opengl/OGLShaderProgram.cpp",
506    "opengl/TextureClientOGL.cpp",
507    "opengl/TextureHostOGL.cpp",
508    "PaintThread.cpp",
509    "ProfilerScreenshots.cpp",
510    "ReadbackProcessor.cpp",
511    "RenderTrace.cpp",
512    "RepaintRequest.cpp",
513    "RotatedBuffer.cpp",
514    "SampleTime.cpp",
515    "ScreenshotGrabber.cpp",
516    "ScrollableLayerGuid.cpp",
517    "ShareableCanvasRenderer.cpp",
518    "SourceSurfaceSharedData.cpp",
519    "SourceSurfaceVolatileData.cpp",
520    "SyncObject.cpp",
521    "TextureSourceProvider.cpp",
522    "TextureWrapperImage.cpp",
523    "wr/AsyncImagePipelineManager.cpp",
524    "wr/ClipManager.cpp",
525    "wr/DisplayItemCache.cpp",
526    "wr/HitTestInfoManager.cpp",
527    "wr/IpcResourceUpdateQueue.cpp",
528    "wr/OMTAController.cpp",
529    "wr/OMTASampler.cpp",
530    "wr/RenderRootStateManager.cpp",
531    "wr/RenderRootTypes.cpp",
532    "wr/StackingContextHelper.cpp",
533    "wr/WebRenderBridgeChild.cpp",
534    "wr/WebRenderBridgeParent.cpp",
535    "wr/WebRenderCanvasRenderer.cpp",
536    "wr/WebRenderCommandBuilder.cpp",
537    "wr/WebRenderDrawEventRecorder.cpp",
538    "wr/WebRenderImageHost.cpp",
539    "wr/WebRenderLayerManager.cpp",
540    "wr/WebRenderScrollData.cpp",
541    "wr/WebRenderUserData.cpp",
542    "ZoomConstraints.cpp",
543    # XXX here are some unified build error.
544    #'wr/WebRenderTextureHost.cpp'
545]
546
547SOURCES += [
548    "basic/BasicCompositor.cpp",
549    "basic/BasicImageLayer.cpp",
550    "client/TextureClient.cpp",
551    "ImageContainer.cpp",
552    "PersistentBufferProvider.cpp",
553    "protobuf/LayerScopePacket.pb.cc",
554    "wr/WebRenderTextureHost.cpp",
555]
556
557DEFINES["GOOGLE_PROTOBUF_NO_RTTI"] = True
558DEFINES["GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER"] = True
559DEFINES["MOZ_APP_VERSION"] = CONFIG["MOZ_APP_VERSION"]
560
561if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
562    SOURCES += [
563        "basic/MacIOSurfaceTextureHostBasic.cpp",
564        "opengl/MacIOSurfaceTextureClientOGL.cpp",
565        "opengl/MacIOSurfaceTextureHostOGL.cpp",
566    ]
567
568IPDL_SOURCES += [
569    "ipc/LayersMessages.ipdlh",
570    "ipc/LayersSurfaces.ipdlh",
571    "ipc/PAPZ.ipdl",
572    "ipc/PAPZCTreeManager.ipdl",
573    "ipc/PAPZInputBridge.ipdl",
574    "ipc/PCanvas.ipdl",
575    "ipc/PCompositorBridge.ipdl",
576    "ipc/PCompositorBridgeTypes.ipdlh",
577    "ipc/PCompositorManager.ipdl",
578    "ipc/PImageBridge.ipdl",
579    "ipc/PLayerTransaction.ipdl",
580    "ipc/PTexture.ipdl",
581    "ipc/PUiCompositorController.ipdl",
582    "ipc/PVideoBridge.ipdl",
583    "ipc/PWebRenderBridge.ipdl",
584    "ipc/WebRenderMessages.ipdlh",
585]
586
587include("/ipc/chromium/chromium-config.mozbuild")
588
589if CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows":
590    GeneratedFile(
591        "CompositorD3D11Shaders.h",
592        script="d3d11/genshaders.py",
593        inputs=["d3d11/shaders.manifest"],
594    )
595
596LOCAL_INCLUDES += [
597    "/docshell/base",  # for nsDocShell.h
598    "/dom/canvas",  # for intertwined WebGL headers
599    "/layout/base",  # for TouchManager.h
600    "/layout/generic",  # for nsTextFrame.h
601    "/media/libyuv/libyuv/include",  # for libyuv.h
602]
603
604FINAL_LIBRARY = "xul"
605
606if CONFIG["MOZ_DEBUG"]:
607    DEFINES["D3D_DEBUG_INFO"] = True
608
609if CONFIG["MOZ_ENABLE_D3D10_LAYER"]:
610    DEFINES["MOZ_ENABLE_D3D10_LAYER"] = True
611
612if CONFIG["ENABLE_TESTS"]:
613    DIRS += ["apz/test/gtest"]
614    DIRS += ["apz/test/gtest/mvm"]
615
616MOCHITEST_MANIFESTS += ["apz/test/mochitest/mochitest.ini"]
617BROWSER_CHROME_MANIFESTS += ["apz/test/mochitest/browser.ini"]
618
619CXXFLAGS += CONFIG["MOZ_CAIRO_CFLAGS"]
620CXXFLAGS += CONFIG["TK_CFLAGS"]
621CXXFLAGS += ["-Werror=switch"]
622
623LOCAL_INCLUDES += CONFIG["SKIA_INCLUDES"]
624
625if CONFIG["CC_TYPE"] in ("clang", "gcc"):
626    CXXFLAGS += ["-Wno-error=shadow"]
627    # Suppress warnings in third-party code.
628    CXXFLAGS += ["-Wno-maybe-uninitialized"]
629
630if CONFIG["MOZ_ENABLE_SKIA"]:
631    UNIFIED_SOURCES += [
632        "composite/PaintCounter.cpp",
633    ]
634
635if CONFIG["FUZZING"] and CONFIG["FUZZING_INTERFACES"]:
636    TEST_DIRS += ["ipc/fuzztest"]
637
638# Add libFuzzer configuration directives
639include("/tools/fuzzing/libfuzzer-config.mozbuild")
640