Bug 1460771 [wpt PR 10958] - Compute correct sticky box constraints within scrollable...
[gecko.git] / widget / moz.build
blob9398ba07c4774f5cae36c9761c5cee2d971e21fb
1 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
2 # vim: set filetype=python:
3 # This Source Code Form is subject to the terms of the Mozilla Public
4 # License, v. 2.0. If a copy of the MPL was not distributed with this
5 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 with Files("**"):
8     BUG_COMPONENT = ("Core", "Widget")
10 with Files("crashtests/*1128214*"):
11     BUG_COMPONENT = ("Core", "Layout")
13 with Files("crashtests/*303901*"):
14     BUG_COMPONENT = ("Core", "Graphics")
16 with Files("crashtests/*380359*"):
17     BUG_COMPONENT = ("Core", "Widget")
19 with Files("reftests/**"):
20     BUG_COMPONENT = ("Core", "Widget: Cocoa")
22 with Files("reftests/*fallback*"):
23     BUG_COMPONENT = ("Core", "Layout: Form Controls")
25 with Files("*CompositorWidget*"):
26     BUG_COMPONENT = ("Core", "Graphics")
28 with Files("*Gfx*"):
29     BUG_COMPONENT = ("Core", "Graphics")
31 with Files("*WindowSurface*"):
32     BUG_COMPONENT = ("Core", "Graphics")
34 with Files("*FontRange*"):
35     BUG_COMPONENT = ("Core", "Widget: Cocoa")
37 toolkit = CONFIG['MOZ_WIDGET_TOOLKIT']
39 if toolkit in ('cocoa', 'android', 'uikit'):
40     DIRS += [toolkit]
42 if toolkit == 'windows':
43     DIRS += ['windows']
45     XPIDL_SOURCES += [
46         'nsIJumpListBuilder.idl',
47         'nsIJumpListItem.idl',
48         'nsIPrintSettingsWin.idl',
49         'nsITaskbarOverlayIconController.idl',
50         'nsITaskbarPreview.idl',
51         'nsITaskbarPreviewButton.idl',
52         'nsITaskbarPreviewController.idl',
53         'nsITaskbarProgress.idl',
54         'nsITaskbarTabPreview.idl',
55         'nsITaskbarWindowPreview.idl',
56         'nsIWindowsUIUtils.idl',
57         'nsIWinTaskbar.idl',
58     ]
59 elif toolkit == 'cocoa':
60     XPIDL_SOURCES += [
61         'nsIMacDockSupport.idl',
62         'nsIMacSharingService.idl',
63         'nsIMacWebAppUtils.idl',
64         'nsIStandaloneNativeMenu.idl',
65         'nsISystemStatusBar.idl',
66         'nsITaskbarProgress.idl',
67     ]
68     EXPORTS += [
69         'nsINativeMenuService.h',
70     ]
72 TEST_DIRS += ['tests']
74 DIRS += ['headless']
76 # Don't build the DSO under the 'build' directory as windows does.
78 # The DSOs get built in the toolkit dir itself.  Do this so that
79 # multiple implementations of widget can be built on the same
80 # source tree.
82 if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
83     DIRS += ['gtk']
85     if CONFIG['MOZ_X11']:
86         DIRS += ['gtkxtbin']
88     XPIDL_SOURCES += [
89         'nsIGtkTaskbarProgress.idl',
90         'nsITaskbarProgress.idl',
91     ]
93 XPIDL_SOURCES += [
94     'nsIAppShell.idl',
95     'nsIBaseWindow.idl',
96     'nsIBidiKeyboard.idl',
97     'nsIClipboard.idl',
98     'nsIClipboardHelper.idl',
99     'nsIClipboardOwner.idl',
100     'nsIColorPicker.idl',
101     'nsIDisplayInfo.idl',
102     'nsIDragService.idl',
103     'nsIDragSession.idl',
104     'nsIFilePicker.idl',
105     'nsIFormatConverter.idl',
106     'nsIGfxInfo.idl',
107     'nsIGfxInfoDebug.idl',
108     'nsIIdleService.idl',
109     'nsIIdleServiceInternal.idl',
110     'nsIPrinterEnumerator.idl',
111     'nsIPrintSession.idl',
112     'nsIPrintSettings.idl',
113     'nsIPrintSettingsService.idl',
114     'nsIScreen.idl',
115     'nsIScreenManager.idl',
116     'nsISound.idl',
117     'nsITransferable.idl',
120 XPIDL_MODULE = 'widget'
122 EXPORTS += [
123     'GfxDriverInfo.h',
124     'GfxInfoBase.h',
125     'GfxInfoCollector.h',
126     'InputData.h',
127     'nsBaseScreen.h',
128     'nsBaseWidget.h',
129     'nsIDeviceContextSpec.h',
130     'nsIKeyEventInPluginCallback.h',
131     'nsIPluginWidget.h',
132     'nsIPrintDialogService.h',
133     'nsIRollupListener.h',
134     'nsIWidget.h',
135     'nsIWidgetListener.h',
136     'nsWidgetInitData.h',
137     'nsWidgetsCID.h',
138     'PuppetWidget.h',
141 EXPORTS.mozilla += [
142     'BasicEvents.h',
143     'CommandList.h',
144     'ContentCache.h',
145     'ContentEvents.h',
146     'EventClassList.h',
147     'EventForwards.h',
148     'EventMessageList.h',
149     'FontRange.h',
150     'LookAndFeel.h',
151     'MiscEvents.h',
152     'MouseEvents.h',
153     'TextEventDispatcher.h',
154     'TextEventDispatcherListener.h',
155     'TextEvents.h',
156     'TextRange.h',
157     'TouchEvents.h',
158     'VsyncDispatcher.h',
159     'WidgetUtils.h',
162 EXPORTS.mozilla.widget += [
163     'CompositorWidget.h',
164     'IMEData.h',
165     'InProcessCompositorWidget.h',
166     'nsAutoRollup.h',
167     'PuppetBidiKeyboard.h',
168     'Screen.h',
169     'ScreenManager.h',
170     'WidgetMessageUtils.h',
171     'WindowSurface.h'
174 UNIFIED_SOURCES += [
175     'CompositorWidget.cpp',
176     'ContentCache.cpp',
177     'GfxDriverInfo.cpp',
178     'GfxInfoBase.cpp',
179     'GfxInfoCollector.cpp',
180     'InProcessCompositorWidget.cpp',
181     'InputData.cpp',
182     'nsAutoRollup.cpp',
183     'nsBaseAppShell.cpp',
184     'nsBaseScreen.cpp',
185     'nsClipboardHelper.cpp',
186     'nsClipboardProxy.cpp',
187     'nsColorPickerProxy.cpp',
188     'nsContentProcessWidgetFactory.cpp',
189     'nsDragServiceProxy.cpp',
190     'nsFilePickerProxy.cpp',
191     'nsHTMLFormatConverter.cpp',
192     'nsIdleService.cpp',
193     'nsIWidgetListener.cpp',
194     'nsPrimitiveHelpers.cpp',
195     'nsPrintSettingsImpl.cpp',
196     'nsSoundProxy.cpp',
197     'nsTransferable.cpp',
198     'nsXPLookAndFeel.cpp',
199     'PuppetBidiKeyboard.cpp',
200     'PuppetWidget.cpp',
201     'Screen.cpp',
202     'ScreenManager.cpp',
203     'SharedWidgetUtils.cpp',
204     'TextEventDispatcher.cpp',
205     'VsyncDispatcher.cpp',
206     'WidgetEventImpl.cpp',
207     'WidgetUtils.cpp',
210 if CONFIG['OS_ARCH'] == 'Linux':
211     EXPORTS.mozilla.widget += [
212         'LSBUtils.h'
213     ]
214     SOURCES += [
215         'LSBUtils.cpp'
216     ]
218 if CONFIG['MOZ_XUL'] and CONFIG['NS_PRINTING']:
219     EXPORTS += [
220         'nsDeviceContextSpecProxy.h',
221         'nsPrintSettingsService.h',
222     ]
223     UNIFIED_SOURCES += [
224         'nsDeviceContextSpecProxy.cpp',
225         'nsPrintSession.cpp',
226         'nsPrintSettingsService.cpp',
227     ]
229 # nsBaseWidget.cpp needs to be built separately because of name clashes in the OS X headers
230 # nsBaseDragService.cpp moved out of UNIFIED to fix xgill crash (bug 1259850) after moving widget/ContentHelper -> apz/util/TouchActionHelper
231 SOURCES += [
232     'nsBaseDragService.cpp',
233     'nsBaseWidget.cpp',
236 if CONFIG['MOZ_INSTRUMENT_EVENT_LOOP']:
237     EXPORTS.mozilla += [
238         'WidgetTraceEvent.h',
239     ]
241 EXPORTS.ipc = ['nsGUIEventIPC.h']
243 if CONFIG['MOZ_X11']:
244     DIRS += ['x11']
245     UNIFIED_SOURCES += [
246         'GfxInfoX11.cpp'
247     ]
248     SOURCES += [
249         'nsShmImage.cpp',
250         'WindowSurfaceX11SHM.cpp',
251     ]
253 if toolkit == 'windows':
254     EXPORTS += [
255         'PluginWidgetProxy.h',
256     ]
257     SOURCES += [
258         'PluginWidgetProxy.cpp',
259     ]
261 if toolkit in ('cocoa', 'windows'):
262     UNIFIED_SOURCES += [
263         'nsBaseClipboard.cpp',
264     ]
266 if toolkit in {'gtk3', 'cocoa', 'windows',
267                'android', 'uikit'}:
268     UNIFIED_SOURCES += [
269         'nsBaseFilePicker.cpp',
270     ]
272 if toolkit in ('gtk3', 'windows', 'cocoa', 'android'):
273     UNIFIED_SOURCES += [
274         'nsNativeTheme.cpp',
275     ]
276 if toolkit == 'gtk3':
277     XPIDL_SOURCES += [
278         'nsIApplicationChooser.idl',
279     ]
281 DEFINES['MOZ_CROSS_PROCESS_IME'] = True
283 include('/ipc/chromium/chromium-config.mozbuild')
285 LOCAL_INCLUDES += [
286     '/dom/base',
287     '/dom/ipc',
288     '/layout/base',
289     '/layout/forms',
290     '/layout/generic',
291     '/layout/painting',
292     '/layout/xul',
293     '/view',
294     '/widget',
295     '/widget/headless',
298 if toolkit == 'windows':
299     IPDL_SOURCES = [
300         'headless/HeadlessWidgetTypes.ipdlh',
301         'windows/PCompositorWidget.ipdl',
302         'windows/PlatformWidgetTypes.ipdlh',
303     ]
304 elif 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT'] and CONFIG['MOZ_X11']:
305     IPDL_SOURCES = [
306         'gtk/PCompositorWidget.ipdl',
307         'gtk/PlatformWidgetTypes.ipdlh',
308         'headless/HeadlessWidgetTypes.ipdlh',
309     ]
310 else:
311     IPDL_SOURCES = [
312         'headless/HeadlessWidgetTypes.ipdlh',
313         'PCompositorWidget.ipdl',
314         'PlatformWidgetTypes.ipdlh',
315     ]
317 widget_dir = toolkit
318 if widget_dir == 'gtk3':
319     widget_dir = 'gtk'
321 LOCAL_INCLUDES += [
322     '/widget/%s' % widget_dir,
324 FINAL_LIBRARY = 'xul'
326 if CONFIG['MOZ_ENABLE_D3D10_LAYER']:
327     DEFINES['MOZ_ENABLE_D3D10_LAYER'] = True
329 CXXFLAGS += CONFIG['TK_CFLAGS']