summaryrefslogtreecommitdiffstats
path: root/widget/gtk/moz.build
diff options
context:
space:
mode:
Diffstat (limited to 'widget/gtk/moz.build')
-rw-r--r--widget/gtk/moz.build141
1 files changed, 141 insertions, 0 deletions
diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
new file mode 100644
index 000000000..baccb6ccd
--- /dev/null
+++ b/widget/gtk/moz.build
@@ -0,0 +1,141 @@
+# -*- 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/.
+
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk3':
+ DIRS += ['mozgtk']
+
+EXPORTS += [
+ 'mozcontainer.h',
+ 'nsGTKToolkit.h',
+ 'nsIImageToPixbuf.h',
+]
+
+EXPORTS.mozilla += [
+ 'WidgetUtilsGtk.h'
+]
+
+UNIFIED_SOURCES += [
+ 'IMContextWrapper.cpp',
+ 'mozcontainer.c',
+ 'NativeKeyBindings.cpp',
+ 'nsAppShell.cpp',
+ 'nsBidiKeyboard.cpp',
+ 'nsColorPicker.cpp',
+ 'nsFilePicker.cpp',
+ 'nsGtkKeyUtils.cpp',
+ 'nsImageToPixbuf.cpp',
+ 'nsLookAndFeel.cpp',
+ 'nsNativeThemeGTK.cpp',
+ 'nsScreenGtk.cpp',
+ 'nsScreenManagerGtk.cpp',
+ 'nsSound.cpp',
+ 'nsToolkit.cpp',
+ 'nsWidgetFactory.cpp',
+ 'WakeLockListener.cpp',
+ 'WidgetTraceEvent.cpp',
+ 'WidgetUtilsGtk.cpp',
+]
+
+SOURCES += [
+ 'nsWindow.cpp', # conflicts with X11 headers
+]
+
+if CONFIG['MOZ_X11']:
+ UNIFIED_SOURCES += [
+ 'CompositorWidgetChild.cpp',
+ 'CompositorWidgetParent.cpp',
+ 'InProcessX11CompositorWidget.cpp',
+ 'nsIdleServiceGTK.cpp',
+ 'X11CompositorWidget.cpp',
+ ]
+ EXPORTS.mozilla.widget += [
+ 'CompositorWidgetChild.h',
+ 'CompositorWidgetParent.h',
+ 'InProcessX11CompositorWidget.h',
+ 'X11CompositorWidget.h',
+ ]
+
+if CONFIG['NS_PRINTING']:
+ UNIFIED_SOURCES += [
+ 'nsCUPSShim.cpp',
+ 'nsDeviceContextSpecG.cpp',
+ 'nsPaperPS.cpp',
+ 'nsPrintDialogGTK.cpp',
+ 'nsPrintOptionsGTK.cpp',
+ 'nsPrintSettingsGTK.cpp',
+ 'nsPSPrinters.cpp',
+ ]
+
+if CONFIG['MOZ_X11']:
+ UNIFIED_SOURCES += [
+ 'nsClipboard.cpp',
+ 'nsDragService.cpp',
+ 'WindowSurfaceProvider.cpp',
+ 'WindowSurfaceX11.cpp',
+ 'WindowSurfaceX11Image.cpp',
+ 'WindowSurfaceXRender.cpp',
+ ]
+ EXPORTS.mozilla.widget += [
+ 'WindowSurfaceProvider.h',
+ ]
+
+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',
+]
+
+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']