mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-27 06:43:32 +00:00
0ee36a531c
As a side effect, defaults to empty list for those flags when not set. Differential Revision: https://phabricator.services.mozilla.com/D216096
177 lines
4.5 KiB
Python
177 lines
4.5 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/.
|
|
|
|
with Files("**"):
|
|
BUG_COMPONENT = ("Firefox", "General")
|
|
|
|
with Files("firefox.exe.manifest"):
|
|
BUG_COMPONENT = ("Core", "Widget: Win32")
|
|
with Files("module.ver"):
|
|
BUG_COMPONENT = ("Core", "Widget: Win32")
|
|
with Files("splash.rc"):
|
|
BUG_COMPONENT = ("Core", "Widget: Win32")
|
|
|
|
with Files("macversion.py"):
|
|
BUG_COMPONENT = ("Core", "Widget: Cocoa")
|
|
with Files("macbuild/**"):
|
|
BUG_COMPONENT = ("Core", "Widget: Cocoa")
|
|
|
|
with Files("moz.build"):
|
|
BUG_COMPONENT = ("Firefox Build System", "General")
|
|
with Files("Makefile.in"):
|
|
BUG_COMPONENT = ("Firefox Build System", "General")
|
|
|
|
with Files("profile/channel-prefs.js"):
|
|
BUG_COMPONENT = ("Firefox", "Installer")
|
|
with Files("profile/firefox.js"):
|
|
BUG_COMPONENT = ("Firefox", "General")
|
|
|
|
if CONFIG["MOZ_MACBUNDLE_NAME"]:
|
|
DIRS += ["macbuild/Contents"]
|
|
|
|
browser_linkage = "standalone"
|
|
if CONFIG["FUZZING_SNAPSHOT"] or CONFIG["AFLFUZZ"]:
|
|
browser_linkage = "dependent"
|
|
|
|
if CONFIG["MOZ_NO_PIE_COMPAT"]:
|
|
GeckoProgram(CONFIG["MOZ_APP_NAME"] + "-bin", linkage=browser_linkage)
|
|
|
|
DIRS += ["no-pie"]
|
|
else:
|
|
GeckoProgram(CONFIG["MOZ_APP_NAME"], linkage=browser_linkage)
|
|
|
|
SOURCES += [
|
|
"nsBrowserApp.cpp",
|
|
]
|
|
|
|
# Neither channel-prefs.js nor firefox.exe want to end up in dist/bin/browser.
|
|
DIST_SUBDIR = ""
|
|
|
|
LOCAL_INCLUDES += [
|
|
"!/build",
|
|
"/toolkit/xre",
|
|
"/xpcom/base",
|
|
"/xpcom/build",
|
|
]
|
|
|
|
if CONFIG["LIBFUZZER"]:
|
|
USE_LIBS += ["fuzzer"]
|
|
LOCAL_INCLUDES += [
|
|
"/tools/fuzzing/libfuzzer",
|
|
]
|
|
elif CONFIG["FUZZING_INTERFACES"]:
|
|
USE_LIBS += ["fuzzer-interface"]
|
|
|
|
if CONFIG["MOZ_GECKODRIVER"]:
|
|
DEFINES["MOZ_GECKODRIVER"] = True
|
|
|
|
if CONFIG["CC_TYPE"] == "clang-cl":
|
|
# Always enter a Windows program through wmain, whether or not we're
|
|
# a console application.
|
|
WIN32_EXE_LDFLAGS += ["-ENTRY:wmainCRTStartup"]
|
|
|
|
if CONFIG["OS_ARCH"] == "WINNT":
|
|
RCINCLUDE = "splash.rc"
|
|
DIRS += [
|
|
"pbproxy",
|
|
"winlauncher",
|
|
]
|
|
USE_LIBS += [
|
|
"winlauncher",
|
|
]
|
|
LOCAL_INCLUDES += [
|
|
"/browser/app/winlauncher",
|
|
]
|
|
OS_LIBS += [
|
|
"advapi32",
|
|
"shell32",
|
|
"uuid",
|
|
]
|
|
DELAYLOAD_DLLS += [
|
|
"advapi32.dll",
|
|
"oleaut32.dll",
|
|
"ole32.dll",
|
|
"rpcrt4.dll",
|
|
"shell32.dll",
|
|
"version.dll",
|
|
]
|
|
|
|
if CONFIG["CC_TYPE"] == "clang-cl":
|
|
libpath_flag = "-LIBPATH:"
|
|
else:
|
|
libpath_flag = "-L"
|
|
|
|
WIN32_EXE_LDFLAGS += [
|
|
libpath_flag + OBJDIR + "/winlauncher/freestanding",
|
|
]
|
|
|
|
# Don't build firefox.exe with CETCOMPAT, because we need to be able to
|
|
# only enable it for processes that are not using JIT in xul.dll.
|
|
LINK_FLAGS["CETCOMPAT"] = []
|
|
|
|
if CONFIG["OS_ARCH"] == "Darwin":
|
|
OS_LIBS += [
|
|
"-framework CoreFoundation",
|
|
]
|
|
|
|
if CONFIG["MOZ_SANDBOX"] and CONFIG["OS_ARCH"] == "WINNT":
|
|
# For sandbox includes and the include dependencies those have
|
|
LOCAL_INCLUDES += [
|
|
"/security/sandbox/chromium",
|
|
"/security/sandbox/chromium-shim",
|
|
]
|
|
|
|
USE_LIBS += [
|
|
"sandbox_s",
|
|
]
|
|
|
|
OS_LIBS += [
|
|
"winmm",
|
|
]
|
|
DELAYLOAD_DLLS += [
|
|
"winmm.dll",
|
|
"user32.dll",
|
|
"usp10.dll",
|
|
]
|
|
|
|
if CONFIG["TARGET_OS"] in ("WINNT", "OSX"):
|
|
DIRS += ["nmhproxy"]
|
|
|
|
# Control the default heap size.
|
|
# This is the heap returned by GetProcessHeap().
|
|
# As we use the CRT heap, the default size is too large and wastes VM.
|
|
#
|
|
# The default heap size is 1MB on Win32.
|
|
# The heap will grow if need be.
|
|
#
|
|
# Set it to 256k. See bug 127069.
|
|
if CONFIG["OS_ARCH"] == "WINNT" and CONFIG["CC_TYPE"] not in ("clang", "gcc"):
|
|
LDFLAGS += ["/HEAP:0x40000"]
|
|
|
|
DisableStlWrapping()
|
|
|
|
if CONFIG["HAVE_CLOCK_MONOTONIC"]:
|
|
OS_LIBS += CONFIG["REALTIME_LIBS"]
|
|
|
|
if CONFIG["MOZ_LINUX_32_SSE2_STARTUP_ERROR"]:
|
|
DEFINES["MOZ_LINUX_32_SSE2_STARTUP_ERROR"] = True
|
|
COMPILE_FLAGS["OS_CXXFLAGS"] = [
|
|
f
|
|
for f in COMPILE_FLAGS["OS_CXXFLAGS"]
|
|
if not f.startswith("-march=") and f not in ("-msse", "-msse2", "-mfpmath=sse")
|
|
] + [
|
|
"-mno-sse",
|
|
"-mno-sse2",
|
|
"-mfpmath=387",
|
|
]
|
|
|
|
for icon in ("firefox", "document", "newwindow", "newtab", "pbmode", "document_pdf"):
|
|
DEFINES[icon.upper() + "_ICO"] = '"%s/%s/%s.ico"' % (
|
|
TOPSRCDIR,
|
|
CONFIG["MOZ_BRANDING_DIRECTORY"],
|
|
icon,
|
|
)
|