mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 05:11:16 +00:00
ee9ce3017a
Differential Revision: https://phabricator.services.mozilla.com/D203078
308 lines
7.6 KiB
Python
308 lines
7.6 KiB
Python
# -*- 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")
|