mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 19:04:45 +00:00
e39a3d6b7c
When Android shuts down the ndk process, it doesn't call the registered atexit() handlers, which is normally where the profile data gets written to file. Since the PGO test suite closes the browser when it is finished, the nativeRun routine can manually call out to __llvm_profile_dump() before returning. This method has a downside that only the profile data from the calling library gets written out, rather than for the whole process. Since we are most interested in optimizing libxul, a new hook is added in Bootstrap to make sure we get the profile data for the right library. Differential Revision: https://phabricator.services.mozilla.com/D22817 --HG-- extra : source : 0615c775a0cf6e8f98e1c051cd574c0d602a738a
263 lines
6.7 KiB
Python
263 lines
6.7 KiB
Python
# -*- 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':
|
|
UNIFIED_SOURCES += [
|
|
'nsGDKErrorHandler.cpp',
|
|
]
|
|
|
|
if CONFIG['MOZ_X11']:
|
|
EXPORTS += ['nsX11ErrorHandler.h']
|
|
UNIFIED_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',
|
|
]
|
|
|
|
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
|