Source code

Revision control

Copy as Markdown

Other Tools

# -*- 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"] in ("cocoa", "uikit"):
EXPORTS += [
"gfxMacUtils.h",
"gfxPlatformMac.h",
"gfxQuartzNativeDrawing.h",
"gfxQuartzSurface.h",
]
SOURCES += [
"CoreTextFontList.cpp",
"gfxCoreTextShaper.cpp",
"gfxMacFont.cpp",
"gfxMacUtils.cpp",
"gfxPlatformMac.cpp",
"gfxQuartzNativeDrawing.cpp",
"gfxQuartzSurface.cpp",
]
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
EXPORTS.mozilla.gfx += [
"PrintTargetCG.h",
]
SOURCES += [
"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"] == "uikit":
UNIFIED_SOURCES += [
"IOSPlatformFontList.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")