1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
|
# -*- 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 += [
"installation_dir_layout",
"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,
)
|