diff options
Diffstat (limited to 'widget/moz.build')
-rw-r--r-- | widget/moz.build | 396 |
1 files changed, 396 insertions, 0 deletions
diff --git a/widget/moz.build b/widget/moz.build new file mode 100644 index 0000000000..54a231c67d --- /dev/null +++ b/widget/moz.build @@ -0,0 +1,396 @@ +# -*- 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("**"): + BUG_COMPONENT = ("Core", "Widget") + +with Files("crashtests/*1128214*"): + BUG_COMPONENT = ("Core", "Layout") + +with Files("crashtests/*303901*"): + BUG_COMPONENT = ("Core", "Graphics") + +with Files("crashtests/*380359*"): + BUG_COMPONENT = ("Core", "Widget") + +with Files("reftests/**"): + BUG_COMPONENT = ("Core", "Widget: Cocoa") + +with Files("reftests/*fallback*"): + BUG_COMPONENT = ("Core", "Layout: Form Controls") + +with Files("*CompositorWidget*"): + BUG_COMPONENT = ("Core", "Graphics") + +with Files("*ContentCache*"): + BUG_COMPONENT = ("Core", "DOM: UI Events & Focus Handling") + +with Files("*ContentData*"): + BUG_COMPONENT = ("Core", "DOM: UI Events & Focus Handling") + +with Files("*Events.h"): + BUG_COMPONENT = ("Core", "DOM: UI Events & Focus Handling") + +with Files("*FontRange*"): + BUG_COMPONENT = ("Core", "Widget: Cocoa") + +with Files("*Gfx*"): + BUG_COMPONENT = ("Core", "Graphics") + +with Files("*IMEData*"): + BUG_COMPONENT = ("Core", "DOM: UI Events & Focus Handling") + +with Files("*TextEventDispatcher*"): + BUG_COMPONENT = ("Core", "DOM: UI Events & Focus Handling") + +with Files("*NativeKeyBindings*"): + BUG_COMPONENT = ("Core", "DOM: UI Events & Focus Handling") + +toolkit = CONFIG["MOZ_WIDGET_TOOLKIT"] + +XPCOM_MANIFESTS += [ + "components.conf", +] + +if toolkit in ("android", "cocoa", "gtk", "uikit", "windows"): + DIRS += [toolkit] + +if toolkit == "cocoa": + XPIDL_SOURCES += [ + "nsIMacDockSupport.idl", + "nsIMacFinderProgress.idl", + "nsIMacSharingService.idl", + "nsIMacUserActivityUpdater.idl", + "nsIMacWebAppUtils.idl", + "nsIStandaloneNativeMenu.idl", + "nsITaskbarProgress.idl", + "nsITouchBarHelper.idl", + "nsITouchBarInput.idl", + "nsITouchBarUpdater.idl", + ] +elif toolkit == "gtk": + XPIDL_SOURCES += [ + "nsIApplicationChooser.idl", + "nsIGtkTaskbarProgress.idl", + "nsITaskbarProgress.idl", + ] +elif toolkit == "windows": + XPIDL_SOURCES += [ + "nsIJumpListBuilder.idl", + "nsILegacyJumpListBuilder.idl", + "nsILegacyJumpListItem.idl", + "nsIPrintSettingsWin.idl", + "nsITaskbarOverlayIconController.idl", + "nsITaskbarPreview.idl", + "nsITaskbarPreviewButton.idl", + "nsITaskbarPreviewController.idl", + "nsITaskbarProgress.idl", + "nsITaskbarTabPreview.idl", + "nsITaskbarWindowPreview.idl", + "nsIWindowsUIUtils.idl", + "nsIWinTaskbar.idl", + ] + +if CONFIG["NS_PRINTING"]: + # Needs to go before the XPIDL_MODULE line. + XPIDL_SOURCES += [ + "nsIPrintDialogService.idl", + ] + +TEST_DIRS += ["tests", "tests/gtest"] + +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. +# + +XPIDL_SOURCES += [ + "nsIAppShell.idl", + "nsIBaseWindow.idl", + "nsIBidiKeyboard.idl", + "nsIClipboard.idl", + "nsIClipboardHelper.idl", + "nsIClipboardOwner.idl", + "nsIColorPicker.idl", + "nsIDisplayInfo.idl", + "nsIDragService.idl", + "nsIDragSession.idl", + "nsIFilePicker.idl", + "nsIFormatConverter.idl", + "nsIGfxInfo.idl", + "nsIGfxInfoDebug.idl", + "nsIPaper.idl", + "nsIPaperMargin.idl", + "nsIPrinter.idl", + "nsIPrinterList.idl", + "nsIPrintSettings.idl", + "nsIPrintSettingsService.idl", + "nsIScreen.idl", + "nsIScreenManager.idl", + "nsISharePicker.idl", + "nsISound.idl", + "nsISystemStatusBar.idl", + "nsITransferable.idl", + "nsIUserIdleService.idl", + "nsIUserIdleServiceInternal.idl", +] + +XPIDL_MODULE = "widget" + +EXPORTS += [ + "GfxDriverInfo.h", + "GfxInfoBase.h", + "GfxInfoCollector.h", + "InputData.h", + "nsBaseAppShell.h", + "nsBaseClipboard.h", + "nsBaseDragService.h", + "nsBaseFilePicker.h", + "nsBaseWidget.h", + "nsIDeviceContextSpec.h", + "nsIRollupListener.h", + "nsIWidget.h", + "nsIWidgetListener.h", + "nsPaper.h", + "nsPrinterListBase.h", + "nsUserIdleService.h", + "nsWidgetsCID.h", + "PuppetWidget.h", +] + +EXPORTS.mozilla += [ + "BasicEvents.h", + "ClipboardReadRequestChild.h", + "ClipboardReadRequestParent.h", + "ClipboardWriteRequestChild.h", + "ClipboardWriteRequestParent.h", + "ColorScheme.h", + "CommandList.h", + "ContentCache.h", + "ContentData.h", + "ContentEvents.h", + "DimensionRequest.h", + "EventClassList.h", + "EventForwards.h", + "EventMessageList.h", + "FontRange.h", + "LookAndFeel.h", + "MiscEvents.h", + "MouseEvents.h", + "NativeKeyBindingsType.h", + "SwipeTracker.h", + "TextEventDispatcher.h", + "TextEventDispatcherListener.h", + "TextEvents.h", + "TextRange.h", + "TouchEvents.h", + "VsyncDispatcher.h", + "WidgetUtils.h", + "WindowButtonType.h", +] + +EXPORTS.mozilla.widget += [ + "CompositorWidget.h", + "IconLoader.h", + "IMEData.h", + "InitData.h", + "InProcessCompositorWidget.h", + "MediaKeysEventSourceFactory.h", + "NativeMenu.h", + "NativeMenuSupport.h", + "nsAutoRollup.h", + "nsXPLookAndFeel.h", + "PuppetBidiKeyboard.h", + "RemoteLookAndFeel.h", + "Screen.h", + "ScreenManager.h", + "TextRecognition.h", + "ThemeChangeKind.h", + "WidgetMessageUtils.h", + "WindowOcclusionState.h", +] + +UNIFIED_SOURCES += [ + "ClipboardReadRequestParent.cpp", + "ClipboardWriteRequestChild.cpp", + "ClipboardWriteRequestParent.cpp", + "CompositorWidget.cpp", + "ContentCache.cpp", + "ContentData.cpp", + "DimensionRequest.cpp", + "GfxDriverInfo.cpp", + "GfxInfoBase.cpp", + "GfxInfoCollector.cpp", + "IconLoader.cpp", + "IMEData.cpp", + "InProcessCompositorWidget.cpp", + "InputData.cpp", + "nsAutoRollup.cpp", + "nsBaseAppShell.cpp", + "nsBaseClipboard.cpp", + "nsClipboardHelper.cpp", + "nsClipboardProxy.cpp", + "nsColorPickerProxy.cpp", + "nsDragServiceProxy.cpp", + "nsFilePickerProxy.cpp", + "nsHTMLFormatConverter.cpp", + "nsIBaseWindow.cpp", + "nsIDeviceContextSpec.cpp", + "nsIWidgetListener.cpp", + "nsPrimitiveHelpers.cpp", + "nsPrintSettingsImpl.cpp", + "nsTransferable.cpp", + "nsUserIdleService.cpp", + "nsXPLookAndFeel.cpp", + "PuppetBidiKeyboard.cpp", + "PuppetWidget.cpp", + "RemoteLookAndFeel.cpp", + "Screen.cpp", + "ScrollbarDrawing.cpp", + "ScrollbarDrawingAndroid.cpp", + "ScrollbarDrawingCocoa.cpp", + "ScrollbarDrawingGTK.cpp", + "ScrollbarDrawingWin.cpp", + "ScrollbarDrawingWin11.cpp", + "SharedWidgetUtils.cpp", + "SwipeTracker.cpp", + "TextEventDispatcher.cpp", + "TextRecognition.cpp", + "Theme.cpp", + "ThemeCocoa.cpp", + "ThemeColors.cpp", + "ThemeDrawing.cpp", + "TouchResampler.cpp", + "VsyncDispatcher.cpp", + "WidgetEventImpl.cpp", + "WidgetUtils.cpp", +] + +if CONFIG["OS_ARCH"] == "Linux": + EXPORTS.mozilla.widget += ["LSBUtils.h"] + SOURCES += ["LSBUtils.cpp"] + +if CONFIG["NS_PRINTING"]: + EXPORTS += [ + "nsDeviceContextSpecProxy.h", + "nsPrintSettingsService.h", + ] + UNIFIED_SOURCES += [ + "nsDeviceContextSpecProxy.cpp", + "nsPaper.cpp", + "nsPaperMargin.cpp", + "nsPrinterBase.cpp", + "nsPrinterListBase.cpp", + "nsPrintSettingsService.cpp", + ] + + if toolkit in ("cocoa", "gtk"): + UNIFIED_SOURCES += [ + "nsCUPSShim.cpp", + "nsPrinterCUPS.cpp", + "nsPrinterListCUPS.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", + "ScreenManager.cpp", +] + +if CONFIG["MOZ_INSTRUMENT_EVENT_LOOP"]: + EXPORTS.mozilla += [ + "WidgetTraceEvent.h", + ] + +EXPORTS.ipc = [ + "nsGUIEventIPC.h", +] + +if CONFIG["MOZ_X11"] or CONFIG["MOZ_WAYLAND"]: + DIRS += ["x11"] + +if toolkit in {"gtk", "cocoa", "windows", "android", "uikit"}: + UNIFIED_SOURCES += [ + "nsBaseFilePicker.cpp", + ] + +if toolkit in ("gtk", "windows", "cocoa", "android"): + UNIFIED_SOURCES += [ + "nsNativeTheme.cpp", + ] + +DEFINES["MOZ_CROSS_PROCESS_IME"] = True + +include("/ipc/chromium/chromium-config.mozbuild") + +LOCAL_INCLUDES += [ + "/dom/base", + "/dom/ipc", + "/gfx/2d", + "/layout/base", + "/layout/forms", + "/layout/generic", + "/layout/painting", + "/layout/xul", + "/layout/xul/tree/", + "/view", + "/widget", + "/widget/headless", +] + +# We use the CUPS headers on Cocoa and GTK, but on GTK we don't depend on there being system headers. +if toolkit == "gtk": + LOCAL_INCLUDES += ["/third_party/cups/include"] + +if toolkit == "windows": + IPDL_SOURCES = [ + "headless/HeadlessWidgetTypes.ipdlh", + "windows/PCompositorWidget.ipdl", + "windows/PlatformWidgetTypes.ipdlh", + ] +elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": + IPDL_SOURCES = [ + "gtk/PCompositorWidget.ipdl", + "gtk/PlatformWidgetTypes.ipdlh", + "headless/HeadlessWidgetTypes.ipdlh", + ] +elif toolkit == "android": + IPDL_SOURCES = [ + "android/PCompositorWidget.ipdl", + "android/PlatformWidgetTypes.ipdlh", + "headless/HeadlessWidgetTypes.ipdlh", + ] +else: + IPDL_SOURCES = [ + "generic/PCompositorWidget.ipdl", + "generic/PlatformWidgetTypes.ipdlh", + "headless/HeadlessWidgetTypes.ipdlh", + ] + +IPDL_SOURCES += [ + "LookAndFeelTypes.ipdlh", + "PClipboardReadRequest.ipdl", + "PClipboardWriteRequest.ipdl", +] + +LOCAL_INCLUDES += [ + "/widget/%s" % toolkit, +] +FINAL_LIBRARY = "xul" + +if CONFIG["MOZ_ENABLE_D3D10_LAYER"]: + DEFINES["MOZ_ENABLE_D3D10_LAYER"] = True + +if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": + CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"] +if CONFIG["MOZ_WAYLAND"]: + CXXFLAGS += CONFIG["MOZ_WAYLAND_CFLAGS"] |