# -*- 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/. with Files("*Text*"): BUG_COMPONENT = ("Core", "Graphics: Text") with Files("*DWrite*"): BUG_COMPONENT = ("Core", "Graphics: Text") XPIDL_SOURCES += [ "nsIFontLoadCompleteCallback.idl", ] XPIDL_MODULE = "gfx" EXPORTS += [ "COLRFonts.h", "DrawMode.h", "gfx2DGlue.h", "gfxAlphaRecovery.h", "gfxASurface.h", "gfxBaseSharedMemorySurface.h", "gfxBlur.h", "gfxColor.h", "gfxContext.h", "gfxDrawable.h", "gfxEnv.h", "gfxFailure.h", "gfxFont.h", "gfxFontConstants.h", "gfxFontEntry.h", "gfxFontFeatures.h", "gfxFontInfoLoader.h", "gfxFontPrefLangList.h", "gfxFontSrcPrincipal.h", "gfxFontSrcURI.h", "gfxFontUtils.h", "gfxFontVariations.h", "gfxGradientCache.h", "gfxImageSurface.h", "gfxLineSegment.h", "gfxMathTable.h", "gfxMatrix.h", "gfxOTSUtils.h", "gfxPattern.h", "gfxPlatform.h", "gfxPlatformFontList.h", "gfxPlatformWorker.h", "gfxPoint.h", "gfxQuad.h", "gfxQuaternion.h", "gfxRect.h", "gfxSharedImageSurface.h", "gfxSkipChars.h", "gfxSVGGlyphs.h", "gfxTextRun.h", "gfxTypes.h", "gfxUserFontSet.h", "gfxUtils.h", "SharedFontList.h", "SoftwareVsyncSource.h", "ThebesRLBoxTypes.h", "VsyncSource.h", ] EXPORTS.mozilla.gfx += [ "D3D11Checks.h", "DeviceManagerDx.h", "DisplayConfigWindows.h", "FontPaletteCache.h", "PrintPromise.h", "PrintTarget.h", "PrintTargetThebes.h", "ThebesRLBox.h", ] EXPORTS.mozilla.gfx += ["SkMemoryReporter.h"] if CONFIG["MOZ_WIDGET_TOOLKIT"] == "android": EXPORTS += [ "gfxAndroidPlatform.h", "gfxFT2FontBase.h", "gfxFT2Fonts.h", ] EXPORTS.mozilla.gfx += [ "PrintTargetPDF.h", ] SOURCES += [ "gfxAndroidPlatform.cpp", "gfxFT2FontBase.cpp", "gfxFT2FontList.cpp", "gfxFT2Fonts.cpp", "gfxFT2Utils.cpp", "PrintTargetPDF.cpp", ] elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa": EXPORTS += [ "gfxMacUtils.h", "gfxPlatformMac.h", "gfxQuartzNativeDrawing.h", "gfxQuartzSurface.h", ] EXPORTS.mozilla.gfx += [ "PrintTargetCG.h", ] SOURCES += [ "CoreTextFontList.cpp", "gfxCoreTextShaper.cpp", "gfxMacFont.cpp", "gfxMacUtils.cpp", "gfxPlatformMac.cpp", "gfxQuartzNativeDrawing.cpp", "gfxQuartzSurface.cpp", "PrintTargetCG.mm", ] elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": EXPORTS += [ "gfxFT2FontBase.h", "gfxPlatformGtk.h", ] EXPORTS.mozilla.gfx += [ "PrintTargetPDF.h", ] SOURCES += [ "gfxFcPlatformFontList.cpp", "gfxFT2FontBase.cpp", "gfxFT2Utils.cpp", "gfxPlatformGtk.cpp", "PrintTargetPDF.cpp", ] if CONFIG["MOZ_X11"]: EXPORTS += [ "gfxXlibSurface.h", ] EXPORTS.mozilla.gfx += [ "XlibDisplay.h", ] SOURCES += [ "gfxXlibSurface.cpp", "XlibDisplay.cpp", ] elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows": EXPORTS += [ "gfxDWriteCommon.h", "gfxDWriteFonts.h", "gfxGDIFont.h", "gfxGDIFontList.h", "gfxWindowsNativeDrawing.h", "gfxWindowsPlatform.h", "gfxWindowsSurface.h", ] EXPORTS.mozilla.gfx += [ "PrintTargetPDF.h", "PrintTargetWindows.h", ] SOURCES += [ "DisplayConfigWindows.cpp", "gfxDWriteCommon.cpp", "gfxDWriteFonts.cpp", "gfxGDIFont.cpp", "gfxGDIFontList.cpp", "gfxWindowsNativeDrawing.cpp", "gfxWindowsPlatform.cpp", "gfxWindowsSurface.cpp", "PrintTargetPDF.cpp", "PrintTargetWindows.cpp", ] UNIFIED_SOURCES += [ "gfxDWriteFontList.cpp", ] # Are we targeting x86 or x64? If so, build gfxAlphaRecoverySSE2.cpp. if CONFIG["INTEL_ARCHITECTURE"]: SOURCES += ["gfxAlphaRecoverySSE2.cpp"] # The file uses SSE2 intrinsics, so it needs special compile flags on some # compilers. SOURCES["gfxAlphaRecoverySSE2.cpp"].flags += CONFIG["SSE2_FLAGS"] SOURCES += [ # Includes mac system header conflicting with point/size, # and includes glxXlibSurface.h which drags in Xrender.h "gfxASurface.cpp", # on X11, gfxDrawable.cpp includes X headers for an old workaround which # we could consider removing soon (affects Ubuntus older than 10.04 LTS) # which currently prevent it from joining UNIFIED_SOURCES. "gfxDrawable.cpp", # gfxFontUtils.cpp and gfxPlatform.cpp include mac system header conflicting with point/size "gfxFontUtils.cpp", "gfxPlatform.cpp", "PrintTarget.cpp", "PrintTargetThebes.cpp", ] UNIFIED_SOURCES += [ "CJKCompatSVS.cpp", "COLRFonts.cpp", "FontPaletteCache.cpp", "gfxAlphaRecovery.cpp", "gfxBaseSharedMemorySurface.cpp", "gfxBlur.cpp", "gfxContext.cpp", "gfxFont.cpp", "gfxFontEntry.cpp", "gfxFontFeatures.cpp", "gfxFontInfoLoader.cpp", "gfxFontMissingGlyphs.cpp", "gfxFontSrcPrincipal.cpp", "gfxFontSrcURI.cpp", "gfxGlyphExtents.cpp", "gfxGradientCache.cpp", "gfxGraphiteShaper.cpp", "gfxHarfBuzzShaper.cpp", "gfxImageSurface.cpp", "gfxMathTable.cpp", "gfxPattern.cpp", "gfxPlatformFontList.cpp", "gfxPlatformWorker.cpp", "gfxScriptItemizer.cpp", "gfxSkipChars.cpp", "gfxSVGGlyphs.cpp", "gfxTextRun.cpp", "gfxUserFontSet.cpp", "gfxUtils.cpp", "SharedFontList.cpp", "SoftwareVsyncSource.cpp", "VsyncSource.cpp", ] UNIFIED_SOURCES += [ "SkMemoryReporter.cpp", ] if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa": UNIFIED_SOURCES += [ "gfxMacPlatformFontList.mm", ] elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows": UNIFIED_SOURCES += [ "D3D11Checks.cpp", "DeviceManagerDx.cpp", ] if CONFIG["MOZ_ENABLE_SKIA_PDF"]: EXPORTS.mozilla.gfx += [ "PrintTargetSkPDF.h", ] SOURCES += [ "PrintTargetSkPDF.cpp", ] # We use ICU for normalization functions: USE_LIBS += [ "icu", ] include("/ipc/chromium/chromium-config.mozbuild") FINAL_LIBRARY = "xul" LOCAL_INCLUDES += [ "!/security/rlbox", "/dom/base", "/dom/media/platforms/apple", "/dom/xml", "/gfx/cairo/cairo/src", "/third_party/xsimd/include", "/widget/gtk", ] if CONFIG["MOZ_WIDGET_TOOLKIT"] in ("android", "gtk"): DEFINES["MOZ_ENABLE_FREETYPE"] = True if CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows": for var in ("MOZ_ENABLE_D3D10_LAYER",): if CONFIG[var]: DEFINES[var] = True if CONFIG["MOZ_WIDGET_TOOLKIT"] in ("android"): CXXFLAGS += CONFIG["CAIRO_FT_CFLAGS"] if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"] CFLAGS += CONFIG["MOZ_GTK3_CFLAGS"] CXXFLAGS += CONFIG["MOZ_PANGO_CFLAGS"] if CONFIG["MOZ_WAYLAND"]: CXXFLAGS += CONFIG["MOZ_WAYLAND_CFLAGS"] LOCAL_INCLUDES += CONFIG["SKIA_INCLUDES"] DEFINES["GRAPHITE2_STATIC"] = True CXXFLAGS += ["-Werror=switch"] include("/tools/fuzzing/libfuzzer-config.mozbuild")