widget/moz.build
author Chris H-C <chutten@mozilla.com>
Mon, 04 Jul 2016 11:16:05 -0400
changeset 312997 df28918fe2361f0b54ca9ce4773a29c4c0675d06
parent 312593 be4e5ce4a8a4edd40c76b1df76cc8fce765e9655
child 316850 baabb29c04ef0d00cf76a2fc19ddf74e0e474252
permissions -rw-r--r--
bug 1218576 - Support remote accumulation via JS histograms. r=gfritzsche The JS histograms, too, need to dispatch their accumulations from child to parent. JSHistograms_Add now only supports histograms that are in gHistogramsMap or that were created in the parent process. After bug 1288745, maybe we'll be able to change this to be less convoluted. MozReview-Commit-ID: 3qTH89YKbGP

# -*- 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/.

toolkit = CONFIG['MOZ_WIDGET_TOOLKIT']

if toolkit in ('cocoa', 'android', 'gonk', 'uikit'):
    DIRS += [toolkit]
if toolkit in ('android', 'gonk', 'gtk2', 'gtk3'):
    EXPORTS += ['nsIPrintDialogService.h']

if toolkit == 'windows':
    DIRS += ['windows']

    XPIDL_SOURCES += [
        'nsIJumpListBuilder.idl',
        'nsIJumpListItem.idl',
        'nsIPrintSettingsWin.idl',
        'nsITaskbarOverlayIconController.idl',
        'nsITaskbarPreview.idl',
        'nsITaskbarPreviewButton.idl',
        'nsITaskbarPreviewController.idl',
        'nsITaskbarProgress.idl',
        'nsITaskbarTabPreview.idl',
        'nsITaskbarWindowPreview.idl',
        'nsIWindowsUIUtils.idl',
        'nsIWinTaskbar.idl',
    ]
elif toolkit == 'cocoa':
    XPIDL_SOURCES += [
        'nsIMacDockSupport.idl',
        'nsIMacWebAppUtils.idl',
        'nsIStandaloneNativeMenu.idl',
        'nsISystemStatusBar.idl',
        'nsITaskbarProgress.idl',
    ]
    EXPORTS += [
        'nsINativeMenuService.h',
        'nsIPrintDialogService.h',
    ]

TEST_DIRS += ['tests']

# Don't build the DSO under the 'build' directory as windows does.
#
# The DSOs get built in the toolkit dir itself.  Do this so that
# multiple implementations of widget can be built on the same
# source tree.
#
if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
    DIRS += ['gtk']

    if CONFIG['MOZ_X11']:
        DIRS += ['gtkxtbin']

XPIDL_SOURCES += [
    'nsIAppShell.idl',
    'nsIBaseWindow.idl',
    'nsIBidiKeyboard.idl',
    'nsIClipboard.idl',
    'nsIClipboardDragDropHookList.idl',
    'nsIClipboardDragDropHooks.idl',
    'nsIClipboardHelper.idl',
    'nsIClipboardOwner.idl',
    'nsIColorPicker.idl',
    'nsIDatePicker.idl',
    'nsIDisplayInfo.idl',
    'nsIDragService.idl',
    'nsIDragSession.idl',
    'nsIFilePicker.idl',
    'nsIFormatConverter.idl',
    'nsIGfxInfo.idl',
    'nsIGfxInfoDebug.idl',
    'nsIIdleService.idl',
    'nsIIdleServiceInternal.idl',
    'nsIPrintOptions.idl',
    'nsIPrintSession.idl',
    'nsIPrintSettings.idl',
    'nsIPrintSettingsService.idl',
    'nsIScreen.idl',
    'nsIScreenManager.idl',
    'nsISound.idl',
    'nsITransferable.idl',
]

XPIDL_MODULE = 'widget'

EXPORTS += [
    'GfxDriverInfo.h',
    'GfxInfoBase.h',
    'GfxInfoCollector.h',
    'InputData.h',
    'nsBaseScreen.h',
    'nsBaseWidget.h',
    'nsIDeviceContextSpec.h',
    'nsIKeyEventInPluginCallback.h',
    'nsIPluginWidget.h',
    'nsIRollupListener.h',
    'nsIWidget.h',
    'nsIWidgetListener.h',
    'nsWidgetInitData.h',
    'nsWidgetsCID.h',
    'PluginWidgetProxy.h',
    'PuppetWidget.h',
]

EXPORTS.mozilla += [
    'BasicEvents.h',
    'CommandList.h',
    'ContentCache.h',
    'ContentEvents.h',
    'EventClassList.h',
    'EventForwards.h',
    'EventMessageList.h',
    'FontRange.h',
    'LookAndFeel.h',
    'MiscEvents.h',
    'MouseEvents.h',
    'TextEventDispatcher.h',
    'TextEventDispatcherListener.h',
    'TextEvents.h',
    'TextRange.h',
    'TouchEvents.h',
    'VsyncDispatcher.h',
    'WidgetUtils.h',
]

EXPORTS.mozilla.widget += [
    'CompositorWidget.h',
    'IMEData.h',
    'InProcessCompositorWidget.h',
    'PuppetBidiKeyboard.h',
    'WidgetMessageUtils.h',
    'WindowSurface.h'
]

UNIFIED_SOURCES += [
    'CompositorWidget.cpp',
    'ContentCache.cpp',
    'GfxDriverInfo.cpp',
    'GfxInfoBase.cpp',
    'GfxInfoCollector.cpp',
    'GfxInfoWebGL.cpp',
    'InProcessCompositorWidget.cpp',
    'InputData.cpp',
    'nsBaseAppShell.cpp',
    'nsBaseScreen.cpp',
    'nsClipboardHelper.cpp',
    'nsClipboardProxy.cpp',
    'nsColorPickerProxy.cpp',
    'nsContentProcessWidgetFactory.cpp',
    'nsDatePickerProxy.cpp',
    'nsDragServiceProxy.cpp',
    'nsFilePickerProxy.cpp',
    'nsHTMLFormatConverter.cpp',
    'nsIdleService.cpp',
    'nsIWidgetListener.cpp',
    'nsPrimitiveHelpers.cpp',
    'nsPrintSettingsImpl.cpp',
    'nsScreenManagerProxy.cpp',
    'nsTransferable.cpp',
    'nsXPLookAndFeel.cpp',
    'PluginWidgetProxy.cpp',
    'PuppetBidiKeyboard.cpp',
    'PuppetWidget.cpp',
    'ScreenProxy.cpp',
    'SharedWidgetUtils.cpp',
    'TextEventDispatcher.cpp',
    'VsyncDispatcher.cpp',
    'WidgetEventImpl.cpp',
    'WidgetUtils.cpp',
]

if CONFIG['OS_ARCH'] == 'Linux':
    EXPORTS.mozilla.widget += [
        'LSBUtils.h'
    ]
    SOURCES += [
        'LSBUtils.cpp'
    ]

if CONFIG['MOZ_XUL'] and CONFIG['NS_PRINTING']:
    EXPORTS += [
        'nsDeviceContextSpecProxy.h',
        'nsPrintOptionsImpl.h',
    ]
    UNIFIED_SOURCES += [
        'nsDeviceContextSpecProxy.cpp',
        'nsPrintOptionsImpl.cpp',
        'nsPrintSession.cpp',
    ]

# nsBaseWidget.cpp needs to be built separately because of name clashes in the OS X headers
# nsBaseDragService.cpp moved out of UNIFIED to fix xgill crash (bug 1259850) after moving widget/ContentHelper -> apz/util/TouchActionHelper
SOURCES += [
    'nsBaseDragService.cpp',
    'nsBaseWidget.cpp'
]

if CONFIG['MOZ_INSTRUMENT_EVENT_LOOP']:
    EXPORTS.mozilla += [
        'WidgetTraceEvent.h',
    ]

EXPORTS.ipc = ['nsGUIEventIPC.h']

if CONFIG['MOZ_X11']:
    DIRS += ['x11']
    UNIFIED_SOURCES += [
        'GfxInfoX11.cpp'
    ]
    SOURCES += [
        'nsShmImage.cpp',
        'WindowSurfaceX11SHM.cpp',
    ]

if toolkit in ('cocoa', 'windows'):
    UNIFIED_SOURCES += [
        'nsBaseClipboard.cpp',
    ]

if toolkit in {'gtk2', 'gtk3', 'cocoa', 'windows',
               'android', 'gonk', 'uikit'}:
    UNIFIED_SOURCES += [
        'nsBaseFilePicker.cpp',
    ]

if toolkit in ('gtk2', 'gtk3', 'windows', 'cocoa'):
    UNIFIED_SOURCES += [
        'nsNativeTheme.cpp',
    ]
if toolkit == 'gtk3':
    XPIDL_SOURCES += [
        'nsIApplicationChooser.idl',
    ]

if not CONFIG['MOZ_B2G']:
    DEFINES['MOZ_CROSS_PROCESS_IME'] = True

include('/ipc/chromium/chromium-config.mozbuild')

LOCAL_INCLUDES += [
    '/dom/base',
    '/dom/ipc',
    '/layout/base',
    '/layout/forms',
    '/layout/generic',
    '/layout/xul',
    '/view',
    '/widget',
]

if toolkit == 'windows':
    IPDL_SOURCES = [
        'windows/PCompositorWidget.ipdl',
        'windows/PlatformWidgetTypes.ipdlh',
    ]
elif 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT'] and CONFIG['MOZ_X11']:
    IPDL_SOURCES = [
        'gtk/PCompositorWidget.ipdl',
        'gtk/PlatformWidgetTypes.ipdlh',
    ]
else:
    IPDL_SOURCES = [
        'PCompositorWidget.ipdl',
        'PlatformWidgetTypes.ipdlh',
    ]

widget_dir = toolkit
if widget_dir in ('gtk3', 'gtk2'):
    # gtk3 shares includes with gtk2
    widget_dir = 'gtk'

LOCAL_INCLUDES += [
    '/widget/%s' % widget_dir,
]
FINAL_LIBRARY = 'xul'

if CONFIG['MOZ_ENABLE_D3D10_LAYER']:
    DEFINES['MOZ_ENABLE_D3D10_LAYER'] = True

CXXFLAGS += CONFIG['TK_CFLAGS']

if CONFIG['GNU_CXX']:
    CXXFLAGS += ['-Wno-error=shadow']