summaryrefslogtreecommitdiffstats
path: root/gfx/gl/moz.build
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/gl/moz.build')
-rw-r--r--gfx/gl/moz.build164
1 files changed, 164 insertions, 0 deletions
diff --git a/gfx/gl/moz.build b/gfx/gl/moz.build
new file mode 100644
index 000000000..596612bb8
--- /dev/null
+++ b/gfx/gl/moz.build
@@ -0,0 +1,164 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+gl_provider = 'Null'
+
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
+ gl_provider = 'WGL'
+elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
+ gl_provider = 'CGL'
+elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'uikit':
+ gl_provider = 'EAGL'
+elif 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
+ if CONFIG['MOZ_EGL_XRENDER_COMPOSITE']:
+ gl_provider = 'EGL'
+ else:
+ gl_provider = 'GLX'
+elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
+ gl_provider = 'EGL'
+
+if CONFIG['MOZ_GL_PROVIDER']:
+ gl_provider = CONFIG['MOZ_GL_PROVIDER']
+
+EXPORTS += [
+ 'AndroidSurfaceTexture.h',
+ 'DecomposeIntoNoRepeatTriangles.h',
+ 'EGLUtils.h',
+ 'ForceDiscreteGPUHelperCGL.h',
+ 'GfxTexturesReporter.h',
+ 'GLBlitHelper.h',
+ 'GLConsts.h',
+ 'GLContext.h',
+ 'GLContextEGL.h',
+ 'GLContextProvider.h',
+ 'GLContextProviderImpl.h',
+ 'GLContextSymbols.h',
+ 'GLContextTypes.h',
+ 'GLDefs.h',
+ 'GLLibraryEGL.h',
+ 'GLLibraryLoader.h',
+ 'GLReadTexImageHelper.h',
+ 'GLScreenBuffer.h',
+ 'GLTextureImage.h',
+ 'GLTypes.h',
+ 'GLUploadHelpers.h',
+ 'HeapCopyOfStackArray.h',
+ 'ScopedGLHelpers.h',
+ 'SharedSurface.h',
+ 'SharedSurfaceEGL.h',
+ 'SharedSurfaceGL.h',
+ 'SurfaceTypes.h',
+ 'TextureGarbageBin.h',
+]
+
+if CONFIG['MOZ_X11']:
+ EXPORTS += [
+ 'GLContextGLX.h',
+ 'GLXLibrary.h',
+ ]
+
+# Win32 is a special snowflake, for ANGLE
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
+ EXPORTS += [
+ 'GLContextWGL.h',
+ 'SharedSurfaceANGLE.h', # Needs <windows.h> for `HANDLE`.
+ 'SharedSurfaceD3D11Interop.h',
+ 'WGLLibrary.h',
+ ]
+ UNIFIED_SOURCES += [
+ 'GLContextProviderWGL.cpp',
+ 'SharedSurfaceANGLE.cpp',
+ 'SharedSurfaceD3D11Interop.cpp',
+ ]
+if CONFIG['MOZ_ENABLE_SKIA_GPU']:
+ EXPORTS += ['SkiaGLGlue.h']
+ SOURCES += [
+ 'SkiaGLGlue.cpp',
+ ]
+ if CONFIG['CLANG_CXX']:
+ # Suppress warnings from Skia header files.
+ SOURCES['SkiaGLGlue.cpp'].flags += ['-Wno-implicit-fallthrough']
+
+if gl_provider == 'CGL':
+ # These files include Mac headers that are unfriendly to unified builds
+ SOURCES += [
+ "GLContextProviderCGL.mm",
+ ]
+ EXPORTS += [
+ 'GLContextCGL.h',
+ 'SharedSurfaceIO.h',
+ ]
+ # SharedSurfaceIO.cpp includes MacIOSurface.h which include Mac headers
+ # which define Size and Point types in root namespace with often conflict with
+ # our own types. While I haven't actually hit this issue in the present case,
+ # it's been an issue in gfx/layers so let's not risk it.
+ SOURCES += [
+ 'SharedSurfaceIO.cpp',
+ ]
+elif gl_provider == 'EAGL':
+ # These files include ObjC headers that are unfriendly to unified builds
+ SOURCES += [
+ 'GLContextProviderEAGL.mm',
+ ]
+ EXPORTS += [
+ 'GLContextEAGL.h',
+ ]
+
+elif gl_provider == 'GLX':
+ # GLContextProviderGLX.cpp needs to be kept out of UNIFIED_SOURCES
+ # as it includes X11 headers which cause conflicts.
+ SOURCES += [
+ 'GLContextProviderGLX.cpp',
+ 'SharedSurfaceGLX.cpp'
+ ]
+ EXPORTS += [
+ 'SharedSurfaceGLX.h'
+ ]
+
+UNIFIED_SOURCES += [
+ 'AndroidSurfaceTexture.cpp',
+ 'DecomposeIntoNoRepeatTriangles.cpp',
+ 'EGLUtils.cpp',
+ 'GfxTexturesReporter.cpp',
+ 'GLBlitHelper.cpp',
+ 'GLContext.cpp',
+ 'GLContextFeatures.cpp',
+ 'GLContextProviderEGL.cpp',
+ 'GLContextTypes.cpp',
+ 'GLDebugUtils.cpp',
+ 'GLLibraryEGL.cpp',
+ 'GLLibraryLoader.cpp',
+ 'GLReadTexImageHelper.cpp',
+ 'GLScreenBuffer.cpp',
+ 'GLTextureImage.cpp',
+ 'GLUploadHelpers.cpp',
+ 'ScopedGLHelpers.cpp',
+ 'SharedSurface.cpp',
+ 'SharedSurfaceEGL.cpp',
+ 'SharedSurfaceGL.cpp',
+ 'SurfaceTypes.cpp',
+ 'TextureGarbageBin.cpp',
+ 'TextureImageEGL.cpp',
+]
+
+include('/ipc/chromium/chromium-config.mozbuild')
+
+FINAL_LIBRARY = 'xul'
+
+if CONFIG['MOZ_D3DCOMPILER_VISTA_DLL']:
+ DEFINES['MOZ_D3DCOMPILER_VISTA_DLL'] = CONFIG['MOZ_D3DCOMPILER_VISTA_DLL']
+if CONFIG['MOZ_D3DCOMPILER_XP_DLL']:
+ DEFINES['MOZ_D3DCOMPILER_XP_DLL'] = CONFIG['MOZ_D3DCOMPILER_XP_DLL']
+
+CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
+CXXFLAGS += CONFIG['TK_CFLAGS']
+CFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
+CFLAGS += CONFIG['TK_CFLAGS']
+
+LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES']
+
+if CONFIG['GNU_CXX']:
+ CXXFLAGS += ['-Wno-error=shadow']