# -*- 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_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', ] if CONFIG['LIBFUZZER']: USE_LIBS += [ 'fuzzer' ] LOCAL_INCLUDES += [ '/tools/fuzzing/libfuzzer', ] if CONFIG['ENABLE_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 += [ 'winlauncher', ] USE_LIBS += [ 'winlauncher', ] LOCAL_INCLUDES += [ '/browser/app/winlauncher', ] DELAYLOAD_DLLS += [ 'oleaut32.dll', 'ole32.dll', 'rpcrt4.dll', 'version.dll', ] if CONFIG['CC_TYPE'] == 'clang-cl': libpath_flag = '-LIBPATH:' else: libpath_flag = '-L' WIN32_EXE_LDFLAGS += [ libpath_flag + OBJDIR + '/winlauncher/freestanding', ] if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_ARCH'] == 'Darwin': USE_LIBS += [ 'mozsandbox', ] 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', ] DELAYLOAD_DLLS += [ 'winmm.dll', 'user32.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['MOZ_LINKER']: OS_LIBS += CONFIG['MOZ_ZLIB_LIBS'] 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'): DEFINES[icon.upper() + '_ICO'] = '"%s/%s/%s.ico"' % ( TOPSRCDIR, CONFIG['MOZ_BRANDING_DIRECTORY'], icon)