# -*- 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/. GeckoProgram("xpcshell", linkage="dependent") SOURCES += [ "xpcshell.cpp", ] if CONFIG["LIBFUZZER"]: USE_LIBS += ["fuzzer"] if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa": SOURCES += [ "xpcshellMacUtils.mm", ] include("/ipc/chromium/chromium-config.mozbuild") LOCAL_INCLUDES += [ "/toolkit/xre", ] 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"] # DELAYLOAD_DLLS in this block ensure that the DLL blocklist initializes if CONFIG["OS_ARCH"] == "WINNT": if CONFIG["MOZ_SANDBOX"]: # For sandbox includes and the include dependencies those have LOCAL_INCLUDES += [ "/security/sandbox/chromium", "/security/sandbox/chromium-shim", ] OS_LIBS += [ "advapi32", "user32", "version", "winmm", ] USE_LIBS += [ "sandbox_s", ] DELAYLOAD_DLLS += [ "winmm.dll", "user32.dll", ] OS_LIBS += [ "ntdll", ] DELAYLOAD_DLLS += [ "xul.dll", ] # Don't build xpcshell.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_TARGET"] == "Darwin": OS_LIBS += [ "-framework Foundation", ] if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk": CFLAGS += CONFIG["MOZ_GTK3_CFLAGS"] CXXFLAGS += CONFIG["MOZ_GTK3_CFLAGS"] OS_LIBS += CONFIG["MOZ_GTK3_LIBS"]