# -*- Mode: python; c-basic-offset: 4; 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/. # Any changes that affect Android need to be made in pie/moz.build as well. if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android': Program(CONFIG['MOZ_CHILD_PROCESS_NAME']) SOURCES += [ 'MozillaRuntimeMainAndroid.cpp', ] DIRS += ['pie'] else: kwargs = { 'linkage': None, } if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_ARCH'] == 'WINNT' and not CONFIG['MOZ_ASAN']: kwargs['msvcrt'] = 'static' if not CONFIG['GNU_CC']: USE_LIBS += [ 'mozalloc_staticruntime', ] GeckoProgram(CONFIG['MOZ_CHILD_PROCESS_NAME'], **kwargs) SOURCES += [ 'MozillaRuntimeMain.cpp', ] USE_LIBS += [ 'nspr', 'xul', ] include('/ipc/chromium/chromium-config.mozbuild') LOCAL_INCLUDES += [ '/toolkit/xre', '/xpcom/base', ] # We link GMPLoader into plugin-container on desktop so that its code is # covered by the desktop DRM vendor's voucher. if CONFIG['OS_TARGET'] != 'Android': SOURCES += [ '../../dom/media/gmp/GMPLoader.cpp', ] 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 += [ 'rlz', ] if CONFIG['MOZ_ASAN']: USE_LIBS += [ 'sandbox_s', ] else: USE_LIBS += [ 'sandbox_staticruntime_s', ] # clang-cl can't deal with this delay-load due to bug 1188045 # (also filed as https://llvm.org/bugs/show_bug.cgi?id=24291) if not CONFIG['CLANG_CL']: DELAYLOAD_DLLS += [ 'nss3.dll', 'xul.dll' ] DEFINES['HASH_NODE_ID_WITH_DEVICE_ID'] = 1; SOURCES += [ 'sha256.c', ] if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_TARGET'] in ('Linux', 'Android'): USE_LIBS += [ 'mozsandbox', ] # gcc lto likes to put the top level asm in syscall.cc in a different partition # from the function using it which breaks the build. Work around that by # forcing there to be only one partition. if '-flto' in CONFIG['OS_CXXFLAGS'] and not CONFIG['CLANG_CXX']: LDFLAGS += ['--param lto-partitions=1'] if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_TARGET'] == 'Darwin': # For sandbox includes and the include dependencies those have LOCAL_INCLUDES += [ '/security/sandbox/chromium', '/security/sandbox/chromium-shim', ] USE_LIBS += [ 'mozsandbox', 'rlz', ] DEFINES['HASH_NODE_ID_WITH_DEVICE_ID'] = 1; SOURCES += [ 'sha256.c', ] if CONFIG['_MSC_VER']: # Always enter a Windows program through wmain, whether or not we're # a console application. WIN32_EXE_LDFLAGS += ['-ENTRY:wmainCRTStartup'] LDFLAGS += CONFIG['MOZ_ALLOW_HEAP_EXECUTE_FLAGS'] # 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 not CONFIG['GNU_CC']: LDFLAGS += ['/HEAP:0x40000'] if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk': OS_LIBS += [ 'binder', 'utils', ] if CONFIG['GNU_CXX']: CXXFLAGS += ['-Wshadow']