toolkit/xre/moz.build
author Jean-Yves Avenard <jyavenard@mozilla.com>
Fri, 17 May 2019 00:01:48 +1000
changeset 2008597 bbe6abfb20cbc75134a697755e03d5366c171a33
parent 1986302 cd1ccb74af7c84aaa8ea43851c6ac74fd00ec276
child 2013079 337a0e9788e49b08de0a7a6c718ae7eee03194ce
permissions -rw-r--r--
Bug 1550422 - P21. Fix Linux compilation. r?karlt! Differential Revision: https://phabricator.services.mozilla.com/D31464

# -*- 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/.

include('../components/telemetry/telemetry-constants.mozbuild')

with Files('**'):
    BUG_COMPONENT = ('Toolkit', 'Startup and Profile System')

if CONFIG['OS_ARCH'] == 'WINNT':
    TEST_DIRS += ['test/win']

MOCHITEST_MANIFESTS += ['test/mochitest.ini']
BROWSER_CHROME_MANIFESTS += ['test/browser.ini']
XPCSHELL_TESTS_MANIFESTS += ['test/xpcshell.ini']

XPIDL_SOURCES += [
    'nsINativeAppSupport.idl',
    'nsIXREDirProvider.idl',
]

if CONFIG['OS_ARCH'] == 'WINNT':
    XPIDL_SOURCES += [
        'nsIWinAppHelper.idl',
    ]

XPIDL_MODULE = 'xulapp'

EXPORTS += [
    'nsAppRunner.h',
    'nsIAppStartupNotifier.h',
]

EXPORTS.mozilla += [
    'AutoSQLiteLifetime.h',
    'Bootstrap.h',
    'CmdLineAndEnvUtils.h',
    'SafeMode.h',
]

if CONFIG['MOZ_INSTRUMENT_EVENT_LOOP']:
    EXPORTS += ['EventTracer.h']

if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
    EXPORTS.mozilla += [
        'LauncherResult.h',
        'ModuleEvaluator_windows.h',
        'ModuleVersionInfo_windows.h',
        'PolicyChecks.h',
        'WinDllServices.h',
    ]
    UNIFIED_SOURCES += [
        '/toolkit/mozapps/update/common/win_dirent.cpp',
        'ModuleEvaluator_windows.cpp',
        'ModuleVersionInfo_windows.cpp',
        'nsNativeAppSupportWin.cpp',
        'WinDllServices.cpp',
    ]
    DEFINES['PROXY_PRINTING'] = 1
    LOCAL_INCLUDES += [
        '../components/printingui',
    ]
    if CONFIG['MOZ_LAUNCHER_PROCESS']:
        EXPORTS.mozilla += [
          'LauncherRegistryInfo.h',
        ]
        UNIFIED_SOURCES += [
          'LauncherRegistryInfo.cpp',
        ]
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
    UNIFIED_SOURCES += [
        'MacApplicationDelegate.mm',
        'MacAutoreleasePool.mm',
        'MacLaunchHelper.mm',
        'nsCommandLineServiceMac.mm',
        'nsNativeAppSupportCocoa.mm',
        'updaterfileutils_osx.mm',
    ]
    DEFINES['PROXY_PRINTING'] = 1
    LOCAL_INCLUDES += [
        '../components/printingui',
    ]
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'uikit':
    UNIFIED_SOURCES += [
        'nsNativeAppSupportDefault.cpp',
        'UIKitDirProvider.mm',
    ]
elif 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
    UNIFIED_SOURCES += [
        'nsNativeAppSupportUnix.cpp',
    ]
else:
    UNIFIED_SOURCES += [
        'nsNativeAppSupportDefault.cpp',
    ]

if CONFIG['MOZ_HAS_REMOTE']:
    LOCAL_INCLUDES += [
        '../components/remote',
    ]

if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gtk3':
    SOURCES += ['nsGDKErrorHandler.cpp']

if CONFIG['MOZ_X11']:
    EXPORTS += ['nsX11ErrorHandler.h']
    SOURCES += ['nsX11ErrorHandler.cpp']

if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
    UNIFIED_SOURCES += [
        'nsAndroidStartup.cpp',
    ]

UNIFIED_SOURCES += [
    '/toolkit/mozapps/update/common/commonupdatedir.cpp',
    'AutoSQLiteLifetime.cpp',
    'Bootstrap.cpp',
    'CmdLineAndEnvUtils.cpp',
    'CreateAppData.cpp',
    'nsAppStartupNotifier.cpp',
    'nsConsoleWriter.cpp',
    'nsEmbeddingModule.cpp',
    'nsNativeAppSupportBase.cpp',
    'nsSigHandlers.cpp',
    'nsXREDirProvider.cpp',
]

# nsAppRunner.cpp and ProfileReset.cpp cannot be built in unified mode because
# they pull in OS X system headers.
# nsEmbedFunctions.cpp cannot be built in unified mode because it pulls in X11 headers.
SOURCES += [
    '../../other-licenses/nsis/Contrib/CityHash/cityhash/city.cpp',
    'nsAppRunner.cpp',
    'nsEmbedFunctions.cpp',
    'ProfileReset.cpp',
]

if CONFIG['MOZ_X11']:
    UNIFIED_SOURCES += [
        'glxtest.cpp',
    ]

if CONFIG['MOZ_INSTRUMENT_EVENT_LOOP']:
    UNIFIED_SOURCES += [
        'EventTracer.cpp',
    ]

if CONFIG['MOZ_UPDATER']:
    if CONFIG['MOZ_WIDGET_TOOLKIT'] != 'android':
        UNIFIED_SOURCES += [
            'nsUpdateDriver.cpp',
        ]

if CONFIG['MOZ_PDF_PRINTING']:
    DEFINES['PROXY_PRINTING'] = 1
    LOCAL_INCLUDES += [
        '../components/printingui',
    ]

XPCOM_MANIFESTS += [
    'components.conf',
]

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

FINAL_LIBRARY = 'xul'

if CONFIG['MOZ_X11']:
    DEFINES['USE_GLX_TEST'] = True

for var in ('MOZ_APP_NAME', 'MOZ_APP_BASENAME', 'MOZ_APP_DISPLAYNAME',
            'MOZ_APP_VENDOR', 'MOZ_APP_VERSION', 'OS_TARGET',
            'MOZ_WIDGET_TOOLKIT'):
    DEFINES[var] = '"%s"' % CONFIG[var]

if CONFIG['MOZ_UPDATER'] and CONFIG['MOZ_WIDGET_TOOLKIT'] != 'android':
    DEFINES['MOZ_UPDATER'] = True

if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
    DEFINES['WIN32_LEAN_AND_MEAN'] = True
    DEFINES['UNICODE'] = True
    DEFINES['_UNICODE'] = True

if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
    DEFINES['ANDROID_PACKAGE_NAME'] = '"%s"' % CONFIG['ANDROID_PACKAGE_NAME']

if CONFIG['TARGET_XPCOM_ABI']:
    DEFINES['TARGET_OS_ABI'] = '"%s_%s"' % (CONFIG['OS_TARGET'],
                                            CONFIG['TARGET_XPCOM_ABI'])

if CONFIG['OS_ARCH'] == 'Linux' and 'lib64' in CONFIG['libdir']:
    DEFINES['HAVE_USR_LIB64_DIR'] = True

DEFINES['GRE_MILESTONE'] = CONFIG['GRE_MILESTONE']
DEFINES['MOZ_APP_VERSION_DISPLAY'] = CONFIG['MOZ_APP_VERSION_DISPLAY']

for var in ('APP_VERSION', 'APP_ID'):
    DEFINES[var] = CONFIG['MOZ_%s' % var]

if CONFIG['MOZ_BUILD_APP'] == 'browser':
    DEFINES['MOZ_BUILD_APP_IS_BROWSER'] = True

LOCAL_INCLUDES += [
    '../../other-licenses/nsis/Contrib/CityHash/cityhash',
    '../components/find',
    '../components/printingui/ipc',
    '../components/windowwatcher',
    '../mozapps/update/common',
    '../profile',
    '/config',
    '/dom/base',
    '/dom/commandhandler',
    '/dom/ipc',
    '/dom/webbrowserpersist',
    '/testing/gtest/mozilla',
    '/toolkit/crashreporter',
    '/xpcom/build',
]

if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_ARCH'] == 'WINNT':
    LOCAL_INCLUDES += [
        '/security/sandbox/chromium',
        '/security/sandbox/chromium-shim',
    ]

if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_ARCH'] == 'Linux':
    USE_LIBS += [
        'mozsandbox',
    ]

if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
    LOCAL_INCLUDES += [
        '/widget',
        '/widget/cocoa',
        '/xpcom/base',
    ]

CXXFLAGS += CONFIG['TK_CFLAGS']
CXXFLAGS += CONFIG['MOZ_DBUS_CFLAGS']
CXXFLAGS += CONFIG['MOZ_DBUS_GLIB_CFLAGS']

if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
    CXXFLAGS += CONFIG['MOZ_PANGO_CFLAGS']

DEFINES['TOPOBJDIR'] = TOPOBJDIR
FINAL_TARGET_PP_FILES += [
    'platform.ini'
]

if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
    CXXFLAGS += ['-Wno-error=shadow']

if CONFIG['MOZ_IPDL_TESTS']:
    DEFINES['MOZ_IPDL_TESTS'] = True

if CONFIG['MOZ_PROFILE_GENERATE']:
    DEFINES['MOZ_PROFILE_GENERATE'] = True