# -*- 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', 'cocoa', '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', ] TEST_DIRS += ['tests'] DIRS += ['headless'] # 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', 'nsIDisplayInfo.idl', 'nsIDragService.idl', 'nsIDragSession.idl', 'nsIFilePicker.idl', 'nsIFormatConverter.idl', 'nsIGfxInfo.idl', 'nsIGfxInfoDebug.idl', 'nsIIdleService.idl', 'nsIIdleServiceInternal.idl', 'nsIPrinterEnumerator.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', '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', 'nsAutoRollup.h', 'PuppetBidiKeyboard.h', 'Screen.h', 'ScreenManager.h', 'WidgetMessageUtils.h', 'WindowSurface.h' ] UNIFIED_SOURCES += [ 'CompositorWidget.cpp', 'ContentCache.cpp', 'GfxDriverInfo.cpp', 'GfxInfoBase.cpp', 'GfxInfoCollector.cpp', 'GfxInfoWebGL.cpp', 'InProcessCompositorWidget.cpp', 'InputData.cpp', 'nsAutoRollup.cpp', 'nsBaseAppShell.cpp', 'nsBaseScreen.cpp', 'nsClipboardHelper.cpp', 'nsClipboardProxy.cpp', 'nsColorPickerProxy.cpp', 'nsContentProcessWidgetFactory.cpp', 'nsDragServiceProxy.cpp', 'nsFilePickerProxy.cpp', 'nsHTMLFormatConverter.cpp', 'nsIdleService.cpp', 'nsIWidgetListener.cpp', 'nsPrimitiveHelpers.cpp', 'nsPrintSettingsImpl.cpp', 'nsTransferable.cpp', 'nsXPLookAndFeel.cpp', 'PuppetBidiKeyboard.cpp', 'PuppetWidget.cpp', 'Screen.cpp', 'ScreenManager.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 == 'windows': EXPORTS += [ 'PluginWidgetProxy.h', ] SOURCES += [ 'PluginWidgetProxy.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/painting', '/layout/xul', '/view', '/widget', '/widget/headless', ] 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']