gfx/thebes/moz.build
author Alex Gaynor <agaynor@mozilla.com>
Mon, 27 Nov 2017 14:37:34 -0600
changeset 403385 bcc0a91dd43feae18d4bf04d7db3d146035aa416
parent 401690 001c306fa281dccbd1c5aed5a3dda5cede58a6b8
child 410660 d328d8eda8e68d669ebc77184c8d8d870cafcb7c
permissions -rw-r--r--
Bug 1407693 - Part 2 - when a child process crashes, write extra annotation data to a pre-opened file descriptor instead of creating a new file; r=gsvelto,rbarker This removes the need for the content process to have permissions to create new files on macOS, allowing more aggressive sandboxing. MozReview-Commit-ID: 8agL5jwxDSL

# -*- 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')

EXPORTS += [
    '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',
    'gfxFontFamilyList.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',
    'gfxPattern.h',
    'gfxPlatform.h',
    'gfxPlatformFontList.h',
    'gfxPoint.h',
    'gfxPrefs.h',
    'gfxQuad.h',
    'gfxQuaternion.h',
    'gfxRect.h',
    'gfxSharedImageSurface.h',
    'gfxSkipChars.h',
    'gfxSVGGlyphs.h',
    'gfxTextRun.h',
    'gfxTypes.h',
    'gfxUserFontSet.h',
    'gfxUtils.h',
    'RoundedRect.h',
    'SoftwareVsyncSource.h',
    'VsyncSource.h',
]

EXPORTS.mozilla.gfx += [
    'D3D11Checks.h',
    'DeviceManagerDx.h',
    'PrintTarget.h',
    'PrintTargetThebes.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 += [
        'gfxPlatformMac.h',
        'gfxQuartzNativeDrawing.h',
        'gfxQuartzSurface.h',
    ]
    EXPORTS.mozilla.gfx += [
        'PrintTargetCG.h',
    ]
    SOURCES += [
        'gfxCoreTextShaper.cpp',
        'gfxMacFont.cpp',
        'gfxPlatformMac.cpp',
        'gfxQuartzNativeDrawing.cpp',
        'gfxQuartzSurface.cpp',
        'PrintTargetCG.mm',
    ]
elif 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
    EXPORTS += [
        'gfxFT2FontBase.h',
        'gfxGdkNativeRenderer.h',
        'gfxPlatformGtk.h',
    ]
    EXPORTS.mozilla.gfx += [
        'PrintTargetPDF.h',
        'PrintTargetPS.h',
    ]
    SOURCES += [
        'gfxFcPlatformFontList.cpp',
        'gfxFT2FontBase.cpp',
        'gfxFT2Utils.cpp',
        'gfxGdkNativeRenderer.cpp',
        'gfxPlatformGtk.cpp',
        'PrintTargetPDF.cpp',
        'PrintTargetPS.cpp',
    ]

    if CONFIG['MOZ_X11']:
        EXPORTS += [
            'gfxXlibNativeRenderer.h',
            'gfxXlibSurface.h',
        ]
        SOURCES += [
            'gfxXlibNativeRenderer.cpp',
            'gfxXlibSurface.cpp',
        ]

elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
    EXPORTS += [
        'gfxDWriteFonts.h',
        'gfxGDIFont.h',
        'gfxGDIFontList.h',
        'gfxWindowsNativeDrawing.h',
        'gfxWindowsPlatform.h',
        'gfxWindowsSurface.h',
    ]
    EXPORTS.mozilla.gfx += [
        'PrintTargetPDF.h',
        'PrintTargetWindows.h',
    ]
    SOURCES += [
        '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',
    'gfxPrefs.cpp',
    'PrintTarget.cpp',
    'PrintTargetThebes.cpp',
]

UNIFIED_SOURCES += [
    'CJKCompatSVS.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',
    'gfxScriptItemizer.cpp',
    'gfxSkipChars.cpp',
    'gfxSVGGlyphs.cpp',
    'gfxTextRun.cpp',
    'gfxUserFontSet.cpp',
    'gfxUtils.cpp',
    'nsUnicodeRange.cpp',
    'SoftwareVsyncSource.cpp',
    'VsyncSource.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 += [
            'PrintTargetEMF.h',
        ]
        UNIFIED_SOURCES += [
            'PrintTargetEMF.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 += [
    '/dom/base',
    '/dom/xml',
]

if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android', 'gtk3'):
    DEFINES['MOZ_ENABLE_FREETYPE'] = True

if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
    for var in ('MOZ_ENABLE_D3D10_LAYER',):
        if CONFIG[var]:
            DEFINES[var] = True

CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
CXXFLAGS += CONFIG['TK_CFLAGS']
CFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
CFLAGS += CONFIG['TK_CFLAGS']

if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android'):
    CXXFLAGS += CONFIG['CAIRO_FT_CFLAGS']

if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk3':
    CXXFLAGS += CONFIG['MOZ_PANGO_CFLAGS']

LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES']

DEFINES['GRAPHITE2_STATIC'] = True

if CONFIG['CC_TYPE'] == 'clang':
    # Suppress warnings from Skia header files.
    SOURCES['gfxPlatform.cpp'].flags += ['-Wno-implicit-fallthrough']