# 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/. DEPTH = @DEPTH@ topsrcdir = @top_srcdir@ srcdir = @srcdir@ VPATH = @srcdir@ include $(DEPTH)/config/autoconf.mk MODULE = thebes LIBRARY_NAME = thebes LIBXUL_LIBRARY = 1 EXPORT_LIBRARY = 1 ifndef _MSC_VER FAIL_ON_WARNINGS = 1 endif # !_MSC_VER EXPORTS = \ gfx2DGlue.h \ gfx3DMatrix.h \ gfxASurface.h \ gfxAlphaRecovery.h \ gfxBlur.h \ gfxCachedTempSurface.h \ gfxColor.h \ gfxContext.h \ gfxDrawable.h \ gfxFailure.h \ gfxFont.h \ gfxFontConstants.h \ gfxFontFeatures.h \ gfxFontUtils.h \ gfxFontTest.h \ gfxImageSurface.h \ gfxLineSegment.h \ gfxMatrix.h \ gfxPath.h \ gfxPattern.h \ gfxPlatform.h \ gfxPoint.h \ gfxPoint3D.h \ gfxPointH3D.h \ gfxQuad.h \ gfxQuaternion.h \ gfxRect.h \ gfxSkipChars.h \ gfxTeeSurface.h \ gfxTypes.h \ gfxUtils.h \ gfxUserFontSet.h \ nsSurfaceTexture.h \ gfxBaseSharedMemorySurface.h \ gfxSharedImageSurface.h \ gfxSharedQuartzSurface.h \ gfxReusableSurfaceWrapper.h \ gfxSVGGlyphs.h \ RoundedRect.h \ $(NULL) # gfxSVGGlyphs needs nsDOMParser.h LOCAL_INCLUDES += \ -I$(topsrcdir)/content/base/public \ -I$(topsrcdir)/content/xml/document/src \ $(NULL) ifeq ($(MOZ_WIDGET_TOOLKIT),android) EXPORTS += \ gfxAndroidPlatform.h \ gfxFT2Fonts.h \ gfxFT2FontBase.h \ $(NULL) endif ifeq ($(MOZ_WIDGET_TOOLKIT),gonk) EXPORTS += \ gfxAndroidPlatform.h \ gfxFT2Fonts.h \ gfxFT2FontBase.h \ $(NULL) endif ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa) EXPORTS += \ gfxPlatformMac.h \ gfxQuartzSurface.h \ gfxQuartzImageSurface.h \ gfxQuartzNativeDrawing.h \ $(NULL) endif ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2) EXPORTS += \ gfxFT2FontBase.h \ gfxGdkNativeRenderer.h \ gfxPDFSurface.h \ gfxPSSurface.h \ gfxPlatformGtk.h \ $(NULL) ifdef MOZ_X11 EXPORTS += \ gfxXlibSurface.h \ gfxXlibNativeRenderer.h \ $(NULL) endif ifdef MOZ_PANGO EXPORTS += gfxPangoFonts.h else EXPORTS += gfxFT2Fonts.h endif endif ifeq ($(MOZ_WIDGET_TOOLKIT),os2) EXPORTS += \ gfxOS2Fonts.h \ gfxOS2Platform.h \ gfxOS2Surface.h \ gfxPDFSurface.h \ $(NULL) endif ifeq ($(MOZ_WIDGET_TOOLKIT),qt) EXPORTS += \ gfxFT2FontBase.h \ gfxQPainterSurface.h \ gfxQtNativeRenderer.h \ gfxQtPlatform.h \ gfxPDFSurface.h \ $(NULL) ifdef MOZ_X11 EXPORTS += \ gfxXlibSurface.h \ $(NULL) endif ifdef MOZ_PANGO EXPORTS += gfxPangoFonts.h else EXPORTS += gfxFT2Fonts.h endif endif ifeq ($(MOZ_WIDGET_TOOLKIT),windows) EXPORTS += \ gfxPDFSurface.h \ gfxWindowsPlatform.h \ gfxWindowsSurface.h \ gfxWindowsNativeDrawing.h \ gfxDWriteFonts.h \ gfxD2DSurface.h \ gfxGDIFont.h \ gfxGDIFontList.h \ gfxPlatformFontList.h \ $(NULL) endif CPPSRCS = \ gfx3DMatrix.cpp \ gfxASurface.cpp \ gfxAlphaRecovery.cpp \ gfxBlur.cpp \ gfxCachedTempSurface.cpp \ gfxContext.cpp \ gfxDrawable.cpp \ gfxImageSurface.cpp \ gfxFont.cpp \ gfxFontMissingGlyphs.cpp \ gfxFontTest.cpp \ gfxFontUtils.cpp \ gfxMatrix.cpp \ gfxPath.cpp \ gfxPattern.cpp \ gfxPlatform.cpp \ gfxPlatformFontList.cpp \ gfxRect.cpp \ gfxSkipChars.cpp \ gfxTeeSurface.cpp \ gfxUserFontSet.cpp \ gfxUtils.cpp \ gfxScriptItemizer.cpp \ gfxGraphiteShaper.cpp \ gfxHarfBuzzShaper.cpp \ gfxBaseSharedMemorySurface.cpp \ gfxReusableSurfaceWrapper.cpp \ nsSurfaceTexture.cpp \ gfxSVGGlyphs.cpp \ $(NULL) ifeq ($(MOZ_WIDGET_TOOLKIT),$(findstring $(MOZ_WIDGET_TOOLKIT),android gtk2 gonk qt)) DEFINES += -DMOZ_ENABLE_FREETYPE endif # Are we targeting x86 or x64? If so, build gfxAlphaRecoverySSE2.cpp. ifneq (,$(INTEL_ARCHITECTURE)) CPPSRCS += gfxAlphaRecoverySSE2.cpp endif SHARED_LIBRARY_LIBS += \ ../layers/$(LIB_PREFIX)layers.$(LIB_SUFFIX) \ $(NULL) ifeq ($(MOZ_WIDGET_TOOLKIT),windows) CPPSRCS += gfxWindowsPlatform.cpp \ gfxWindowsSurface.cpp \ gfxWindowsNativeDrawing.cpp \ nsUnicodeRange.cpp \ $(NULL) ifdef MOZ_ENABLE_DWRITE_FONT CPPSRCS += gfxDWriteFonts.cpp \ gfxDWriteShaper.cpp \ gfxDWriteTextAnalysis.cpp \ gfxDWriteCommon.cpp \ gfxD2DSurface.cpp \ gfxDWriteFontList.cpp \ $(NULL) endif CPPSRCS += gfxGDIFont.cpp \ gfxGDIFontList.cpp \ gfxGDIShaper.cpp \ gfxUniscribeShaper.cpp \ $(NULL) CPPSRCS += gfxPDFSurface.cpp ifdef MOZ_ENABLE_D3D9_LAYER DEFINES += -DMOZ_ENABLE_D3D9_LAYER endif ifdef MOZ_ENABLE_D3D10_LAYER DEFINES += -DMOZ_ENABLE_D3D10_LAYER endif ACDEFINES += -UWIN32_LEAN_AND_MEAN endif ifeq ($(MOZ_WIDGET_TOOLKIT),android) EXPORTS += \ gfxPDFSurface.h \ $(NULL) CPPSRCS += \ gfxAndroidPlatform.cpp \ gfxFT2Fonts.cpp \ gfxFT2FontBase.cpp \ gfxFT2Utils.cpp \ gfxFT2FontList.cpp \ gfxPDFSurface.cpp \ nsUnicodeRange.cpp \ $(NULL) # This is set for "normal Android", that is, when Gecko is running on # top of the android java runtime. DEFINES += -DMOZ_USING_ANDROID_JAVA_WIDGETS endif ifeq ($(MOZ_WIDGET_TOOLKIT),gonk) EXPORTS += \ gfxPDFSurface.h \ $(NULL) CPPSRCS += \ gfxAndroidPlatform.cpp \ gfxFT2Fonts.cpp \ gfxFT2FontBase.cpp \ gfxFT2Utils.cpp \ gfxFT2FontList.cpp \ gfxPDFSurface.cpp \ nsUnicodeRange.cpp \ $(NULL) endif ifeq ($(MOZ_WIDGET_TOOLKIT),os2) CPPSRCS += gfxOS2Fonts.cpp \ gfxOS2Platform.cpp \ gfxOS2Surface.cpp \ nsUnicodeRange.cpp \ gfxFontconfigUtils.cpp \ $(NULL) CPPSRCS += gfxPDFSurface.cpp endif ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2) ifdef MOZ_PANGO CPPSRCS += gfxPangoFonts.cpp else CPPSRCS += gfxFT2Fonts.cpp endif ifdef MOZ_X11 CPPSRCS += gfxXlibSurface.cpp gfxXlibNativeRenderer.cpp endif CPPSRCS += gfxPlatformGtk.cpp gfxGdkNativeRenderer.cpp CPPSRCS += gfxPDFSurface.cpp gfxPSSurface.cpp CPPSRCS += gfxFontconfigUtils.cpp CPPSRCS += gfxFT2FontBase.cpp CPPSRCS += gfxFT2Utils.cpp CPPSRCS += nsUnicodeRange.cpp endif ifeq ($(MOZ_WIDGET_TOOLKIT),qt) CPPSRCS += gfxQtPlatform.cpp gfxQPainterSurface.cpp ifdef MOZ_X11 CPPSRCS += gfxXlibSurface.cpp gfxQtNativeRenderer.cpp endif ifdef MOZ_PANGO CPPSRCS += gfxPangoFonts.cpp else CPPSRCS += gfxFT2Fonts.cpp endif CPPSRCS += gfxFT2FontBase.cpp CPPSRCS += gfxFT2Utils.cpp CPPSRCS += gfxFontconfigUtils.cpp CPPSRCS += nsUnicodeRange.cpp CPPSRCS += gfxPDFSurface.cpp endif ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa) CPPSRCS += \ gfxQuartzSurface.cpp \ gfxQuartzImageSurface.cpp \ gfxPlatformMac.cpp \ gfxMacFont.cpp \ gfxCoreTextShaper.cpp \ $(NULL) #CPPSRCS += gfxPDFSurface.cpp CPPSRCS += nsUnicodeRange.cpp CPPSRCS += gfxQuartzNativeDrawing.cpp CMMSRCS = \ gfxMacPlatformFontList.mm \ $(NULL) endif DEFINES += \ -DIMPL_THEBES \ -DHB_DONT_DEFINE_STDINT \ -DMOZ_OTS_REPORT_ERRORS \ -DGRAPHITE2_STATIC \ $(NULL) ifeq (WINNT,$(OS_TARGET)) DEFINES += -DOTS_DLL endif include $(topsrcdir)/config/rules.mk include $(topsrcdir)/ipc/chromium/chromium-config.mk DEFINES := $(filter-out -DUNICODE,$(DEFINES)) CXXFLAGS += $(MOZ_CAIRO_CFLAGS) $(MOZ_PIXMAN_CFLAGS) $(TK_CFLAGS) CFLAGS += $(MOZ_CAIRO_CFLAGS) $(MOZ_PIXMAN_CFLAGS) $(TK_CFLAGS) ifeq ($(MOZ_WIDGET_TOOLKIT),android) CXXFLAGS += $(CAIRO_FT_CFLAGS) endif ifeq ($(MOZ_WIDGET_TOOLKIT),gonk) CXXFLAGS += $(CAIRO_FT_CFLAGS) endif ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2) CXXFLAGS += $(MOZ_PANGO_CFLAGS) endif ifeq ($(MOZ_WIDGET_TOOLKIT),os2) CXXFLAGS += $(CAIRO_FT_CFLAGS) endif ifeq ($(MOZ_WIDGET_TOOLKIT),qt) CXXFLAGS += $(CAIRO_FT_CFLAGS) $(MOZ_PANGO_CFLAGS) endif # The file uses SSE2 intrinsics, so it needs special compile flags on some # compilers. ifneq (,$(INTEL_ARCHITECTURE)) ifdef GNU_CC gfxAlphaRecoverySSE2.$(OBJ_SUFFIX): CXXFLAGS+=-msse2 endif ifdef SOLARIS_SUNPRO_CXX gfxAlphaRecoverySSE2.$(OBJ_SUFFIX): OS_CXXFLAGS += -xarch=sse2 -xO4 endif endif PremultiplyTables.h: $(srcdir)/genTables.py $(PYTHON) $(srcdir)/genTables.py gfxUtils.$(OBJ_SUFFIX): PremultiplyTables.h