# -*- 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: Gtk") with Files("*CompositorWidget*"): BUG_COMPONENT = ("Core", "Graphics") with Files("*WindowSurface*"): BUG_COMPONENT = ("Core", "Graphics") if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk3': DIRS += ['mozgtk'] if CONFIG['MOZ_WAYLAND']: if CONFIG['GLIB_LIBS']: DIRS += ['wayland', 'mozwayland'] else: error('We support Wayland on glibc systems only, see Bug 1409707 for reference.') EXPORTS += [ 'mozcontainer.h', 'nsGTKToolkit.h', 'nsIImageToPixbuf.h', ] EXPORTS.mozilla += [ 'WidgetUtilsGtk.h' ] UNIFIED_SOURCES += [ 'IMContextWrapper.cpp', 'mozcontainer.cpp', 'NativeKeyBindings.cpp', 'nsAppShell.cpp', 'nsBidiKeyboard.cpp', 'nsColorPicker.cpp', 'nsFilePicker.cpp', 'nsGtkKeyUtils.cpp', 'nsImageToPixbuf.cpp', 'nsLookAndFeel.cpp', 'nsNativeThemeGTK.cpp', 'nsSound.cpp', 'nsToolkit.cpp', 'nsWidgetFactory.cpp', 'ScreenHelperGTK.cpp', 'TaskbarProgress.cpp', 'WakeLockListener.cpp', 'WidgetTraceEvent.cpp', 'WidgetUtilsGtk.cpp', ] SOURCES += [ 'nsWindow.cpp', # conflicts with X11 headers ] if CONFIG['MOZ_X11']: UNIFIED_SOURCES += [ 'CompositorWidgetChild.cpp', 'CompositorWidgetParent.cpp', 'GtkCompositorWidget.cpp', 'InProcessGtkCompositorWidget.cpp', 'nsIdleServiceGTK.cpp', ] EXPORTS.mozilla.widget += [ 'CompositorWidgetChild.h', 'CompositorWidgetParent.h', 'GtkCompositorWidget.h', 'InProcessGtkCompositorWidget.h', ] if CONFIG['NS_PRINTING']: UNIFIED_SOURCES += [ 'nsCUPSShim.cpp', 'nsDeviceContextSpecG.cpp', 'nsPrintDialogGTK.cpp', 'nsPrintSettingsGTK.cpp', 'nsPrintSettingsServiceGTK.cpp', 'nsPSPrinters.cpp', ] if CONFIG['MOZ_X11']: UNIFIED_SOURCES += [ 'nsClipboard.cpp', 'nsClipboardX11.cpp', 'nsDragService.cpp', 'WindowSurfaceProvider.cpp', 'WindowSurfaceX11.cpp', 'WindowSurfaceX11Image.cpp', 'WindowSurfaceXRender.cpp', ] EXPORTS.mozilla.widget += [ 'WindowSurfaceProvider.h', ] if CONFIG['MOZ_WAYLAND']: UNIFIED_SOURCES += [ 'nsClipboardWayland.cpp', 'WindowSurfaceWayland.cpp', ] if CONFIG['ACCESSIBILITY']: UNIFIED_SOURCES += [ 'maiRedundantObjectFactory.c', ] if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk2': UNIFIED_SOURCES += [ 'gtk2drawing.c', ] else: UNIFIED_SOURCES += [ 'gtk3drawing.cpp', 'nsApplicationChooser.cpp', 'WidgetStyleCache.cpp', ] include('/ipc/chromium/chromium-config.mozbuild') FINAL_LIBRARY = 'xul' LOCAL_INCLUDES += [ '/layout/generic', '/layout/xul', '/other-licenses/atk-1.0', '/widget', '/widget/headless', ] if CONFIG['MOZ_X11']: LOCAL_INCLUDES += [ '/widget/x11', ] DEFINES['CAIRO_GFX'] = True DEFINES['MOZ_APP_NAME'] = '"%s"' % CONFIG['MOZ_APP_NAME'] CFLAGS += CONFIG['MOZ_STARTUP_NOTIFICATION_CFLAGS'] # When building with GTK3, the widget code always needs to use # system Cairo headers, regardless of whether we are also linked # against and using in-tree Cairo. By not using in-tree Cairo # headers, we avoid picking up our renamed symbols, and instead # use only system Cairo symbols that GTK3 uses. This allows that # any Cairo objects created can be freely passed back and forth # between the widget code and GTK3. if not (CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk3' and CONFIG['MOZ_TREE_CAIRO']): CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS'] CXXFLAGS += CONFIG['MOZ_STARTUP_NOTIFICATION_CFLAGS'] CFLAGS += CONFIG['TK_CFLAGS'] CXXFLAGS += CONFIG['TK_CFLAGS'] if CONFIG['MOZ_ENABLE_DBUS']: CXXFLAGS += CONFIG['MOZ_DBUS_GLIB_CFLAGS'] CXXFLAGS += ['-Wno-error=shadow']