mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-26 22:32:46 +00:00
f6f0434b71
This patch turns the various nsIGfxInfo::FEATURE_* constants into macros that can be included to generate C++ code at runtime. This has been done to automatically generate the necessary bindings for the downloadable blocklist. This way we will never miss adding the necessary prerequisities as we have in the past. Differential Revision: https://phabricator.services.mozilla.com/D224056
411 lines
10 KiB
Python
411 lines
10 KiB
Python
# -*- 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",
|
|
"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"]
|