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', 'Canvas: 2D')
9
10with Files('TexUnpackBlob.cpp'):
11    BUG_COMPONENT = ('Core', 'Canvas: WebGL')
12
13with Files('WebGL*'):
14    BUG_COMPONENT = ('Core', 'Canvas: WebGL')
15
16with Files('test/webgl-conf/**'):
17    BUG_COMPONENT = ('Core', 'Canvas: WebGL')
18
19with Files('test/webgl-mochitest/**'):
20    BUG_COMPONENT = ('Core', 'Canvas: WebGL')
21
22with Files('test/reftest/webgl*'):
23    BUG_COMPONENT = ('Core', 'Canvas: WebGL')
24
25with Files('test/chrome/*webgl*'):
26    BUG_COMPONENT = ('Core', 'Canvas: WebGL')
27
28with Files('test/crossorigin/*webgl*'):
29    BUG_COMPONENT = ('Core', 'Canvas: WebGL')
30
31TEST_DIRS += [
32    'gtest'
33]
34
35# Change the following line(s) to avoid bug 1081323 (clobber after changing a manifest):
36# * Adjust failure errata for webgl-conf.
37
38MOCHITEST_MANIFESTS += [
39    'test/crash/mochitest.ini',
40    'test/crossorigin/mochitest.ini',
41    'test/mochitest.ini',
42    'test/webgl-conf/generated-mochitest.ini',
43    'test/webgl-mochitest/mochitest.ini',
44]
45
46MOCHITEST_CHROME_MANIFESTS += ['test/chrome/chrome.ini']
47
48EXPORTS += [
49    'nsICanvasRenderingContextInternal.h',
50]
51
52EXPORTS.mozilla.dom += [
53    'BasicRenderingContext2D.h',
54    'CanvasGradient.h',
55    'CanvasPath.h',
56    'CanvasPattern.h',
57    'CanvasRenderingContext2D.h',
58    'CanvasRenderingContextHelper.h',
59    'CanvasUtils.h',
60    'ImageBitmap.h',
61    'ImageBitmapRenderingContext.h',
62    'ImageBitmapSource.h',
63    'ImageData.h',
64    'ImageUtils.h',
65    'OffscreenCanvas.h',
66    'TextMetrics.h',
67    'WebGLVertexArrayObject.h',
68]
69
70# Canvas 2D and common sources
71UNIFIED_SOURCES += [
72    'CanvasImageCache.cpp',
73    'CanvasRenderingContext2D.cpp',
74    'CanvasRenderingContextHelper.cpp',
75    'CanvasUtils.cpp',
76    'ImageBitmap.cpp',
77    'ImageBitmapColorUtils.cpp',
78    'ImageBitmapRenderingContext.cpp',
79    'ImageBitmapUtils.cpp',
80    'ImageData.cpp',
81    'OffscreenCanvas.cpp',
82]
83
84SOURCES += [
85    'ImageUtils.cpp',
86]
87
88# WebGL Sources
89UNIFIED_SOURCES += [
90    'CacheMap.cpp',
91    'TexUnpackBlob.cpp',
92    'WebGL1Context.cpp',
93    'WebGL2Context.cpp',
94    'WebGL2ContextBuffers.cpp',
95    'WebGL2ContextFramebuffers.cpp',
96    'WebGL2ContextMRTs.cpp',
97    'WebGL2ContextPrograms.cpp',
98    'WebGL2ContextQueries.cpp',
99    'WebGL2ContextRenderbuffers.cpp',
100    'WebGL2ContextSamplers.cpp',
101    'WebGL2ContextState.cpp',
102    'WebGL2ContextSync.cpp',
103    'WebGL2ContextTextures.cpp',
104    'WebGL2ContextTransformFeedback.cpp',
105    'WebGL2ContextUniforms.cpp',
106    'WebGL2ContextVAOs.cpp',
107    'WebGLActiveInfo.cpp',
108    'WebGLBuffer.cpp',
109    'WebGLContext.cpp',
110    'WebGLContextBuffers.cpp',
111    'WebGLContextDraw.cpp',
112    'WebGLContextExtensions.cpp',
113    'WebGLContextFramebufferOperations.cpp',
114    'WebGLContextGL.cpp',
115    'WebGLContextLossHandler.cpp',
116    'WebGLContextState.cpp',
117    'WebGLContextTextures.cpp',
118    'WebGLContextUnchecked.cpp',
119    'WebGLContextUtils.cpp',
120    'WebGLContextValidate.cpp',
121    'WebGLContextVertexArray.cpp',
122    'WebGLContextVertices.cpp',
123    'WebGLExtensionBase.cpp',
124    'WebGLExtensionBlendMinMax.cpp',
125    'WebGLExtensionColorBufferFloat.cpp',
126    'WebGLExtensionColorBufferHalfFloat.cpp',
127    'WebGLExtensionCompressedTextureASTC.cpp',
128    'WebGLExtensionCompressedTextureATC.cpp',
129    'WebGLExtensionCompressedTextureES3.cpp',
130    'WebGLExtensionCompressedTextureETC1.cpp',
131    'WebGLExtensionCompressedTexturePVRTC.cpp',
132    'WebGLExtensionCompressedTextureS3TC.cpp',
133    'WebGLExtensionCompressedTextureS3TC_SRGB.cpp',
134    'WebGLExtensionDebugRendererInfo.cpp',
135    'WebGLExtensionDebugShaders.cpp',
136    'WebGLExtensionDepthTexture.cpp',
137    'WebGLExtensionDisjointTimerQuery.cpp',
138    'WebGLExtensionDrawBuffers.cpp',
139    'WebGLExtensionElementIndexUint.cpp',
140    'WebGLExtensionEXTColorBufferFloat.cpp',
141    'WebGLExtensionFragDepth.cpp',
142    'WebGLExtensionInstancedArrays.cpp',
143    'WebGLExtensionLoseContext.cpp',
144    'WebGLExtensionMOZDebug.cpp',
145    'WebGLExtensionShaderTextureLod.cpp',
146    'WebGLExtensionSRGB.cpp',
147    'WebGLExtensionStandardDerivatives.cpp',
148    'WebGLExtensionTextureFilterAnisotropic.cpp',
149    'WebGLExtensionTextureFloat.cpp',
150    'WebGLExtensionTextureFloatLinear.cpp',
151    'WebGLExtensionTextureHalfFloat.cpp',
152    'WebGLExtensionTextureHalfFloatLinear.cpp',
153    'WebGLExtensionVertexArray.cpp',
154    'WebGLFormats.cpp',
155    'WebGLFramebuffer.cpp',
156    'WebGLFramebufferAttachable.cpp',
157    'WebGLMemoryTracker.cpp',
158    'WebGLObjectModel.cpp',
159    'WebGLProgram.cpp',
160    'WebGLQuery.cpp',
161    'WebGLRenderbuffer.cpp',
162    'WebGLSampler.cpp',
163    'WebGLShader.cpp',
164    'WebGLShaderPrecisionFormat.cpp',
165    'WebGLShaderValidator.cpp',
166    'WebGLSync.cpp',
167    'WebGLTexelConversions.cpp',
168    'WebGLTexture.cpp',
169    'WebGLTextureUpload.cpp',
170    'WebGLTransformFeedback.cpp',
171    'WebGLUniformLocation.cpp',
172    'WebGLValidateStrings.cpp',
173    'WebGLVertexArray.cpp',
174    'WebGLVertexArrayFake.cpp',
175    'WebGLVertexArrayGL.cpp',
176    'WebGLVertexArrayObject.cpp',
177    'WebGLVertexAttribData.cpp',
178]
179
180SOURCES += [
181    'MurmurHash3.cpp',
182]
183
184# Suppress warnings from third-party code.
185if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
186    SOURCES['MurmurHash3.cpp'].flags += ['-Wno-implicit-fallthrough']
187
188LOCAL_INCLUDES += [
189    '/js/xpconnect/wrappers',
190]
191
192include('/ipc/chromium/chromium-config.mozbuild')
193
194
195USE_LIBS += [ 'translator' ] # Grab the Angle shader translator.
196
197FINAL_LIBRARY = 'xul'
198LOCAL_INCLUDES += [
199    '/dom/base',
200    '/dom/html',
201    '/dom/svg',
202    '/dom/workers',
203    '/dom/xul',
204    '/gfx/angle/checkout/include',
205    '/gfx/gl',
206    '/image',
207    '/js/xpconnect/src',
208    '/layout/generic',
209    '/layout/style',
210    '/layout/xul',
211    '/media/libyuv/libyuv/include',
212]
213
214CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
215CXXFLAGS += CONFIG['TK_CFLAGS']
216
217LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES']
218
219if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
220    CXXFLAGS += ['-Wno-error=shadow', '-Wno-missing-braces']
221