# -*- Mode: python; c-basic-offset: 4; 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', 'qt', 'android', 'gonk', 'uikit'): DIRS += [toolkit] if toolkit in ('qt', '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 CONFIG['MOZ_ENABLE_GTK']: 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', 'nsIIMEPicker.idl', 'nsIPrintOptions.idl', 'nsIPrintSession.idl', 'nsIPrintSettings.idl', 'nsIPrintSettingsService.idl', 'nsIScreen.idl', 'nsIScreenManager.idl', 'nsISound.idl', 'nsITimePicker.idl', 'nsITransferable.idl', ] XPIDL_MODULE = 'widget' EXPORTS += [ 'ContentHelper.h', 'GfxDriverInfo.h', 'GfxInfoBase.h', 'GfxInfoCollector.h', 'InputData.h', 'nsBaseScreen.h', 'nsBaseWidget.h', 'nsIDeviceContextSpec.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 += [ 'IMEData.h', 'PuppetBidiKeyboard.h', 'WidgetMessageUtils.h', ] UNIFIED_SOURCES += [ 'ContentCache.cpp', 'ContentHelper.cpp', 'GfxDriverInfo.cpp', 'GfxInfoBase.cpp', 'GfxInfoCollector.cpp', 'GfxInfoWebGL.cpp', 'InputData.cpp', 'nsBaseAppShell.cpp', 'nsBaseDragService.cpp', 'nsBaseScreen.cpp', 'nsClipboardHelper.cpp', 'nsClipboardProxy.cpp', 'nsColorPickerProxy.cpp', 'nsContentProcessWidgetFactory.cpp', 'nsDragServiceProxy.cpp', 'nsFilePickerProxy.cpp', 'nsHTMLFormatConverter.cpp', 'nsIdleService.cpp', 'nsIWidgetListener.cpp', 'nsPrimitiveHelpers.cpp', 'nsPrintSession.cpp', 'nsPrintSettingsImpl.cpp', 'nsScreenManagerProxy.cpp', 'nsShmImage.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['MOZ_XUL'] and CONFIG['NS_PRINTING']: EXPORTS += [ 'nsPrintOptionsImpl.h', ] UNIFIED_SOURCES += [ 'nsPrintOptionsImpl.cpp', ] # nsBaseWidget.cpp needs to be built separately because of name clashes in the OS X headers SOURCES += [ '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' ] # Do not put nsDatePickerProxy.cpp etc. into unified sources, or we get weird # build problems due to an inexplicable dependency in nsPrimitiveHelpers.cpp. if toolkit == 'cocoa': SOURCES += [ 'nsBaseDatePicker.cpp', 'nsBaseTimePicker.cpp', 'nsDatePickerProxy.cpp', 'nsTimePickerProxy.cpp', ] if toolkit in ('cocoa', 'windows'): UNIFIED_SOURCES += [ 'nsBaseClipboard.cpp', ] if toolkit in {'qt', 'gtk2', 'gtk3', 'cocoa', 'windows', 'android', 'gonk', 'uikit'}: UNIFIED_SOURCES += [ 'nsBaseFilePicker.cpp', ] if toolkit in ('qt', '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', ] 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']