summaryrefslogtreecommitdiffstats
path: root/browser/app/moz.build
diff options
context:
space:
mode:
Diffstat (limited to 'browser/app/moz.build')
-rw-r--r--browser/app/moz.build171
1 files changed, 171 insertions, 0 deletions
diff --git a/browser/app/moz.build b/browser/app/moz.build
new file mode 100644
index 0000000000..a933a3cb9b
--- /dev/null
+++ b/browser/app/moz.build
@@ -0,0 +1,171 @@
+# -*- 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",
+ ]
+
+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",
+ ]
+
+# 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.get("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,
+ )