Source code
Revision control
Copy as Markdown
Other Tools
# -*- 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
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",
"nsIPrintSettingsWin.idl",
"nsITaskbarOverlayIconController.idl",
"nsITaskbarPreview.idl",
"nsITaskbarPreviewButton.idl",
"nsITaskbarPreviewController.idl",
"nsITaskbarProgress.idl",
"nsITaskbarTabPreview.idl",
"nsITaskbarWindowPreview.idl",
"nsIWindowsUIUtils.idl",
"nsIWinTaskbar.idl",
]
elif toolkit in ("android", "uikit"):
XPIDL_SOURCES += [
"nsIGeckoViewBridge.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",
"nsIMockDragServiceController.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",
"nsDragServiceProxy.h",
"nsIDeviceContextSpec.h",
"nsIRollupListener.h",
"nsIWidget.h",
"nsIWidgetListener.h",
"nsPaper.h",
"nsPrinterListBase.h",
"nsUserIdleService.h",
"nsWidgetsCID.h",
"PuppetWidget.h",
]
EXPORTS.mozilla += [
"BasicEvents.h",
"ClipboardContentAnalysisChild.h",
"ClipboardContentAnalysisParent.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",
"GfxInfoDeviceVendorDefs.h",
"GfxInfoDriverVendorDefs.h",
"GfxInfoDriverVersionCmpDefs.h",
"GfxInfoFeatureDefs.h",
"GfxInfoFeatureStatusDefs.h",
"GfxInfoOperatingSystemDefs.h",
"GfxInfoWindowProtocolDefs.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 += [
"ClipboardContentAnalysisChild.cpp",
"ClipboardContentAnalysisParent.cpp",
"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",
]
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", "uikit", "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",
"PClipboardContentAnalysis.ipdl",
"PClipboardReadRequest.ipdl",
"PClipboardWriteRequest.ipdl",
]
LOCAL_INCLUDES += [
"/widget/%s" % toolkit,
]
if CONFIG["ENABLE_TESTS"]:
UNIFIED_SOURCES += [
"MockDragServiceController.cpp",
]
FINAL_LIBRARY = "xul"
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"]
if CONFIG["MOZ_WAYLAND"]:
CXXFLAGS += CONFIG["MOZ_WAYLAND_CFLAGS"]