Source code
Revision control
Copy as Markdown
Other Tools
# -*- 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
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.toml"]
BROWSER_CHROME_MANIFESTS += ["test/browser.toml"]
XPCSHELL_TESTS_MANIFESTS += ["test/xpcshell.toml"]
MARIONETTE_MANIFESTS += ["test/marionette/manifest.toml"]
XPIDL_SOURCES += [
"nsINativeAppSupport.idl",
"nsIXREDirProvider.idl",
]
if CONFIG["OS_ARCH"] == "WINNT":
XPIDL_SOURCES += [
"nsIWinAppHelper.idl",
]
XPIDL_MODULE = "xulapp"
EXPORTS += [
"nsAppRunner.h",
]
EXPORTS.mozilla += [
"AutoSQLiteLifetime.h",
"Bootstrap.h",
"CmdLineAndEnvUtils.h",
"GeckoArgs.h",
"MultiInstanceLock.h",
"SafeMode.h",
]
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "windows":
EXPORTS.mozilla += [
"AssembleCmdLine.h",
"DllPrefetchExperimentRegistryInfo.h",
"PolicyChecks.h",
"WinTokenUtils.h",
]
UNIFIED_SOURCES += [
"/toolkit/mozapps/update/common/pathhash.cpp",
"/toolkit/mozapps/update/common/updateutils_win.cpp",
"DllPrefetchExperimentRegistryInfo.cpp",
"nsNativeAppSupportWin.cpp",
"WinTokenUtils.cpp",
]
DEFINES["PROXY_PRINTING"] = 1
LOCAL_INCLUDES += [
"../components/printingui",
]
if CONFIG["MOZ_LAUNCHER_PROCESS"]:
EXPORTS.mozilla += [
"LauncherRegistryInfo.h",
]
UNIFIED_SOURCES += [
"LauncherRegistryInfo.cpp",
]
DIRS += [
"dllservices",
]
elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
EXPORTS.mozilla += [
"MacRunFromDmgUtils.h",
"MacUtils.h",
]
UNIFIED_SOURCES += [
"MacApplicationDelegate.mm",
"MacAutoreleasePool.mm",
"MacLaunchHelper.mm",
"MacRunFromDmgUtils.mm",
"MacUtils.mm",
"nsCommandLineServiceMac.mm",
"nsNativeAppSupportCocoa.mm",
"updaterfileutils_osx.mm",
]
DEFINES["PROXY_PRINTING"] = 1
LOCAL_INCLUDES += [
"../components/printingui",
]
elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "uikit":
EXPORTS.GeckoView += [
"IOSBootstrap.h",
]
UNIFIED_SOURCES += [
"IOSBootstrap.mm",
"nsNativeAppSupportDefault.cpp",
"UIKitDirProvider.mm",
]
LOCAL_INCLUDES += [
"!/build",
]
elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
UNIFIED_SOURCES += [
"nsNativeAppSupportUnix.cpp",
]
CXXFLAGS += CONFIG["MOZ_X11_SM_CFLAGS"]
else:
UNIFIED_SOURCES += [
"nsNativeAppSupportDefault.cpp",
]
if CONFIG["MOZ_HAS_REMOTE"]:
LOCAL_INCLUDES += [
"../components/remote",
]
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
UNIFIED_SOURCES += [
"nsGDKErrorHandler.cpp",
]
LOCAL_INCLUDES += [
"/widget",
"/widget/gtk",
]
if CONFIG["MOZ_X11"]:
EXPORTS += ["nsX11ErrorHandler.h"]
UNIFIED_SOURCES += [
"nsX11ErrorHandler.cpp",
]
if CONFIG["MOZ_WIDGET_TOOLKIT"] != "android":
UNIFIED_SOURCES += [
"MultiInstanceLock.cpp",
]
UNIFIED_SOURCES += [
"/toolkit/mozapps/update/common/commonupdatedir.cpp",
"AutoSQLiteLifetime.cpp",
"Bootstrap.cpp",
"CmdLineAndEnvUtils.cpp",
"CreateAppData.cpp",
"GeckoArgs.cpp",
"nsConsoleWriter.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_UPDATER"]:
if CONFIG["MOZ_WIDGET_TOOLKIT"] != "android":
UNIFIED_SOURCES += [
"nsUpdateDriver.cpp",
"nsUpdateMutex.cpp",
"nsUpdateSyncManager.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_WIDGET_TOOLKIT"] == "gtk":
DEFINES["USE_GLX_TEST"] = True
DIRS += ["glxtest"]
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_DEFAULT_BROWSER_AGENT"] and CONFIG["OS_ARCH"] == "WINNT":
DEFINES["MOZ_DEFAULT_BROWSER_AGENT"] = CONFIG["MOZ_DEFAULT_BROWSER_AGENT"]
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"]
DEFINES["MOZ_DISTRIBUTION_ID"] = '"%s"' % CONFIG["MOZ_DISTRIBUTION_ID"]
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
if CONFIG["MOZ_USE_NSS_FOR_MAR"]:
DEFINES["MAR_NSS"] = 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",
"/js/xpconnect/loader",
"/testing/gtest/mozilla",
"/third_party/sqlite3/ext/",
"/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["MOZ_DBUS_CFLAGS"]
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"]
CXXFLAGS += CONFIG["MOZ_PANGO_CFLAGS"]
DEFINES["TOPOBJDIR"] = TOPOBJDIR
FINAL_TARGET_PP_FILES += ["platform.ini"]
if CONFIG["ENABLE_TESTS"]:
DIRS += ["test/gtest"]