widget/gtk/moz.build
author Jonathan Watt <jwatt@jwatt.org>
Thu, 18 Oct 2018 01:16:39 +0100
changeset 442779 5722affcf49d606d48cd70349443baea978caa98
parent 431189 3a54c28335c447bac5ce3b1dbad39ff7a724f8d1
child 446850 29ffc266326bffc33dfe8ba03b5c748627f65040
permissions -rw-r--r--
Bug 1500637. Remove MOZ_WIDGET_TOOLKIT==gtk2 code. r=karlt Differential Revision: https://phabricator.services.mozilla.com/D9326

# -*- 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',
    ]

UNIFIED_SOURCES += [
    'gtk3drawing.cpp',
    'nsApplicationChooser.cpp',
    'WidgetStyleCache.cpp',
]

include('/ipc/chromium/chromium-config.mozbuild')

FINAL_LIBRARY = 'xul'

LOCAL_INCLUDES += [
    '/layout/base',
    '/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']