# -*- 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") with Files("*IMContextWrapper*"): BUG_COMPONENT = ("Core", "DOM: UI Events & Focus Handling") with Files("*nsGtkKeyUtils*"): BUG_COMPONENT = ("Core", "DOM: UI Events & Focus Handling") if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": DIRS += ["mozgtk"] if CONFIG["MOZ_WAYLAND"]: DIRS += ["wayland", "mozwayland"] EXPORTS += [ "MozContainer.h", "nsGTKToolkit.h", "nsIImageToPixbuf.h", ] EXPORTS.mozilla += ["WidgetUtilsGtk.h"] UNIFIED_SOURCES += [ "IMContextWrapper.cpp", "MozContainer.cpp", "MPRISServiceHandler.cpp", "NativeKeyBindings.cpp", "nsAppShell.cpp", "nsBidiKeyboard.cpp", "nsColorPicker.cpp", "nsFilePicker.cpp", "nsGtkKeyUtils.cpp", "nsImageToPixbuf.cpp", "nsLookAndFeel.cpp", "nsNativeBasicThemeGTK.cpp", "nsNativeThemeGTK.cpp", "nsSound.cpp", "nsToolkit.cpp", "nsWidgetFactory.cpp", "ScreenHelperGTK.cpp", "TaskbarProgress.cpp", "WakeLockListener.cpp", "WidgetTraceEvent.cpp", "WidgetUtilsGtk.cpp", ] SOURCES += [ "MediaKeysEventSourceFactory.cpp", "nsWindow.cpp", # conflicts with X11 headers "WaylandVsyncSource.cpp", # conflicts with X11 headers ] if CONFIG["MOZ_X11"]: UNIFIED_SOURCES += [ "CompositorWidgetChild.cpp", "CompositorWidgetParent.cpp", "GtkCompositorWidget.cpp", "InProcessGtkCompositorWidget.cpp", "nsUserIdleServiceGTK.cpp", ] EXPORTS.mozilla.widget += [ "CompositorWidgetChild.h", "CompositorWidgetParent.h", "GtkCompositorWidget.h", "InProcessGtkCompositorWidget.h", ] if CONFIG["NS_PRINTING"]: UNIFIED_SOURCES += [ "nsDeviceContextSpecG.cpp", "nsPrintDialogGTK.cpp", "nsPrintSettingsGTK.cpp", "nsPrintSettingsServiceGTK.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 += [ "DMABufLibWrapper.cpp", "DMABufSurface.cpp", "MozContainerWayland.cpp", "nsClipboardWayland.cpp", "nsWaylandDisplay.cpp", "WindowSurfaceWayland.cpp", ] EXPORTS.mozilla.widget += [ "DMABufLibWrapper.h", "DMABufSurface.h", "MozContainerWayland.h", "nsWaylandDisplay.h", ] if CONFIG["ACCESSIBILITY"]: UNIFIED_SOURCES += [ "maiRedundantObjectFactory.c", ] UNIFIED_SOURCES += [ "gtk3drawing.cpp", "nsApplicationChooser.cpp", "WidgetStyleCache.cpp", ] XPCOM_MANIFESTS += [ "components.conf", ] include("/ipc/chromium/chromium-config.mozbuild") FINAL_LIBRARY = "xul" LOCAL_INCLUDES += [ "/layout/base", "/layout/forms", "/layout/generic", "/layout/xul", "/other-licenses/atk-1.0", "/third_party/cups/include", "/widget", "/widget/headless", ] if CONFIG["MOZ_X11"]: LOCAL_INCLUDES += [ "/widget/x11", ] DEFINES["CAIRO_GFX"] = True DEFINES["MOZ_APP_NAME"] = '"%s"' % CONFIG["MOZ_APP_NAME"] # 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"] == "gtk" and CONFIG["MOZ_TREE_CAIRO"]): CXXFLAGS += CONFIG["MOZ_CAIRO_CFLAGS"] CFLAGS += CONFIG["TK_CFLAGS"] CXXFLAGS += CONFIG["TK_CFLAGS"] if CONFIG["MOZ_WAYLAND"]: CFLAGS += CONFIG["MOZ_WAYLAND_CFLAGS"] CXXFLAGS += CONFIG["MOZ_WAYLAND_CFLAGS"] if CONFIG["MOZ_ENABLE_DBUS"]: CXXFLAGS += CONFIG["MOZ_DBUS_GLIB_CFLAGS"] CXXFLAGS += ["-Wno-error=shadow"]