# -*- 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 CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": gl_provider = "Linux" elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "android": gl_provider = "EGL" if CONFIG["MOZ_GL_PROVIDER"]: gl_provider = CONFIG["MOZ_GL_PROVIDER"] EXPORTS += [ "AndroidSurfaceTexture.h", "AutoMappable.h", "Colorspaces.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", "GLVendor.h", "HeapCopyOfStackArray.h", "MozFramebuffer.h", "ScopedGLHelpers.h", "SharedSurface.h", "SharedSurfaceEGL.h", "SharedSurfaceGL.h", "SurfaceTypes.h", ] # Win32 is a special snowflake, for ANGLE if CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows": REQUIRES_UNIFIED_BUILD = True EXPORTS += [ "GLContextWGL.h", "SharedSurfaceANGLE.h", # Needs for `HANDLE`. "SharedSurfaceD3D11Interop.h", "WGLLibrary.h", ] UNIFIED_SOURCES += [ "GLBlitHelperD3D.cpp", "GLContextProviderWGL.cpp", "SharedSurfaceANGLE.cpp", "SharedSurfaceD3D11Interop.cpp", ] if CONFIG["MOZ_WIDGET_TOOLKIT"] == "android": EXPORTS += [ "AndroidNativeWindow.h", "SharedSurfaceAndroidHardwareBuffer.h", ] UNIFIED_SOURCES += [ "SharedSurfaceAndroidHardwareBuffer.cpp", ] 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", ] OS_LIBS += [ "-framework IOSurface", ] elif gl_provider == "EAGL": # These files include ObjC headers that are unfriendly to unified builds SOURCES += [ "GLContextProviderEAGL.mm", ] EXPORTS += [ "GLContextEAGL.h", ] elif gl_provider == "Linux": # GLContextProviderGLX.cpp needs to be kept out of UNIFIED_SOURCES # as it includes X11 headers which cause conflicts. SOURCES += [ "GLContextProviderLinux.cpp", ] EXPORTS += ["GLContextGLX.h", "GLXLibrary.h"] if CONFIG["MOZ_X11"]: SOURCES += ["GLContextProviderGLX.cpp"] if CONFIG["MOZ_WAYLAND"]: SOURCES += ["SharedSurfaceDMABUF.cpp"] UNIFIED_SOURCES += [ "AndroidSurfaceTexture.cpp", "Colorspaces.cpp", "GfxTexturesReporter.cpp", "GLBlitHelper.cpp", "GLContext.cpp", "GLContextFeatures.cpp", "GLContextProviderEGL.cpp", "GLDebugUtils.cpp", "GLLibraryEGL.cpp", "GLLibraryLoader.cpp", "GLReadTexImageHelper.cpp", "GLTextureImage.cpp", "GLUploadHelpers.cpp", "MozFramebuffer.cpp", "ScopedGLHelpers.cpp", "SharedSurface.cpp", "SharedSurfaceEGL.cpp", "SharedSurfaceGL.cpp", ] SOURCES += [ "GLScreenBuffer.cpp", ] TEST_DIRS += [ "gtest", ] 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_WIDGET_TOOLKIT"] == "gtk": CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"] CFLAGS += CONFIG["MOZ_GTK3_CFLAGS"] CXXFLAGS += ["-Werror=switch"] if CONFIG["MOZ_WAYLAND"]: CXXFLAGS += CONFIG["MOZ_WAYLAND_CFLAGS"] CFLAGS += CONFIG["MOZ_WAYLAND_CFLAGS"] LOCAL_INCLUDES += CONFIG["SKIA_INCLUDES"] LOCAL_INCLUDES += [ "/gfx/cairo/cairo/src", ]