gecko-dev/widget/moz.build
Jan Horak 4d0cec02a5 Bug 1565401 - return valid screen size on multimonitor setup under Wayland; r=stransky,NeilDeakin
By getting the right screen size we can shrink the popup menus which overflows
the screen size under Wayland. The ScreenManager does not help us, because we
can't get absolute window position, but we can use gdk_display_get_monitor_at_window
and gdk_monitor_get_workarea to get the correct screen rectangle.

Differential Revision: https://phabricator.services.mozilla.com/D49289

--HG--
extra : moz-landing-system : lando
2019-10-17 11:27:08 +00:00

338 lines
8.0 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("*Gfx*"):
BUG_COMPONENT = ("Core", "Graphics")
with Files("*WindowSurface*"):
BUG_COMPONENT = ("Core", "Graphics")
with Files("*FontRange*"):
BUG_COMPONENT = ("Core", "Widget: Cocoa")
toolkit = CONFIG['MOZ_WIDGET_TOOLKIT']
if toolkit in ('cocoa', 'android', 'uikit'):
DIRS += [toolkit]
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',
'nsIMacFinderProgress.idl',
'nsIMacSharingService.idl',
'nsIMacWebAppUtils.idl',
'nsIStandaloneNativeMenu.idl',
'nsISystemStatusBar.idl',
'nsITaskbarProgress.idl',
'nsITouchBarHelper.idl',
'nsITouchBarInput.idl',
'nsITouchBarUpdater.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 CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk':
DIRS += ['gtk']
if CONFIG['MOZ_X11']:
DIRS += ['gtkxtbin']
XPIDL_SOURCES += [
'nsIGtkTaskbarProgress.idl',
'nsITaskbarProgress.idl',
]
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',
'nsIIdleService.idl',
'nsIIdleServiceInternal.idl',
'nsIPrinterEnumerator.idl',
'nsIPrintSession.idl',
'nsIPrintSettings.idl',
'nsIPrintSettingsService.idl',
'nsIScreen.idl',
'nsIScreenManager.idl',
'nsISharePicker.idl',
'nsISound.idl',
'nsITransferable.idl',
]
XPIDL_MODULE = 'widget'
EXPORTS += [
'GfxDriverInfo.h',
'GfxInfoBase.h',
'GfxInfoCollector.h',
'InputData.h',
'nsBaseAppShell.h',
'nsBaseDragService.h',
'nsBaseFilePicker.h',
'nsBaseScreen.h',
'nsBaseWidget.h',
'nsIDeviceContextSpec.h',
'nsIdleService.h',
'nsIKeyEventInPluginCallback.h',
'nsIPluginWidget.h',
'nsIPrintDialogService.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',
'ProcInfo.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',
'IMEData.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',
'nsSoundProxy.cpp',
'nsTransferable.cpp',
'nsXPLookAndFeel.cpp',
'PuppetBidiKeyboard.cpp',
'PuppetWidget.cpp',
'Screen.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',
'nsPrintSettingsService.h',
]
UNIFIED_SOURCES += [
'nsDeviceContextSpecProxy.cpp',
'nsPrintSession.cpp',
'nsPrintSettingsService.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']:
DIRS += ['x11']
SOURCES += [
'GfxInfoX11.cpp',
'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 {'gtk', 'cocoa', 'windows',
'android', 'uikit'}:
UNIFIED_SOURCES += [
'nsBaseFilePicker.cpp',
]
if toolkit in ('gtk', 'windows', 'cocoa', 'android'):
UNIFIED_SOURCES += [
'nsNativeTheme.cpp',
]
if toolkit == 'gtk':
XPIDL_SOURCES += [
'nsIApplicationChooser.idl',
]
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',
'/layout/xul/tree/',
'/view',
'/widget',
'/widget/headless',
]
if toolkit == 'windows':
IPDL_SOURCES = [
'headless/HeadlessWidgetTypes.ipdlh',
'windows/PCompositorWidget.ipdl',
'windows/PlatformWidgetTypes.ipdlh',
]
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk' and CONFIG['MOZ_X11']:
IPDL_SOURCES = [
'gtk/PCompositorWidget.ipdl',
'gtk/PlatformWidgetTypes.ipdlh',
'headless/HeadlessWidgetTypes.ipdlh',
]
else:
IPDL_SOURCES = [
'headless/HeadlessWidgetTypes.ipdlh',
'PCompositorWidget.ipdl',
'PlatformWidgetTypes.ipdlh',
]
LOCAL_INCLUDES += [
'/widget/%s' % toolkit,
]
FINAL_LIBRARY = 'xul'
if CONFIG['MOZ_ENABLE_D3D10_LAYER']:
DEFINES['MOZ_ENABLE_D3D10_LAYER'] = True
CXXFLAGS += CONFIG['TK_CFLAGS']
if CONFIG['MOZ_WAYLAND']:
CXXFLAGS += CONFIG['MOZ_WAYLAND_CFLAGS']