forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			172 lines
		
	
	
	
		
			4.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			172 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"]
 | |
| 
 | |
| if CONFIG["MOZ_NO_PIE_COMPAT"]:
 | |
|     GeckoProgram(CONFIG["MOZ_APP_NAME"] + "-bin")
 | |
| 
 | |
|     DIRS += ["no-pie"]
 | |
| else:
 | |
|     GeckoProgram(CONFIG["MOZ_APP_NAME"])
 | |
| 
 | |
| 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",
 | |
| ]
 | |
| 
 | |
| # The pthred_create() interposer needs to be linked as early as possible so
 | |
| # that it will appear before libpthread when resolving symbols.
 | |
| if CONFIG["OS_ARCH"] == "Linux" and CONFIG["MOZ_CRASHREPORTER"]:
 | |
|     USE_LIBS += ["pthread_create_interposer"]
 | |
| 
 | |
| 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,
 | |
|     )
 | 
