Source code

Revision control

Copy as Markdown

Other Tools

# -*- 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/.
FINAL_LIBRARY = "mozglue"
EXPORTS.mozilla += [
"AutoProfilerLabel.h",
"AwakeTimeStamp.h",
"decimal/Decimal.h",
"decimal/DoubleConversion.h",
"IntegerPrintfMacros.h",
"LoggingCore.h",
"MmapFaultHandler.h",
"PlatformConditionVariable.h",
"PlatformMutex.h",
"PlatformRWLock.h",
"Printf.h",
"SIMD.h",
"Sprintf.h",
"SSE.h",
"StackWalk.h",
"TimeStamp.h",
"Uptime.h",
]
EXPORTS.mozilla.glue += [
"Debug.h",
"WinUtils.h",
]
if CONFIG["OS_ARCH"] == "WINNT":
EXPORTS.mozilla += [
"GetKnownFolderPath.h",
"PreXULSkeletonUI.h",
"StackWalk_windows.h",
"StackWalkThread.h",
"TimeStamp_windows.h",
"WindowsDpiAwareness.h",
]
SOURCES += [
"AutoProfilerLabel.cpp",
"AwakeTimeStamp.cpp",
"Debug.cpp",
"LoggingCore.cpp",
"MmapFaultHandler.cpp",
"Printf.cpp",
"SIMD.cpp",
"StackWalk.cpp",
"TimeStamp.cpp",
"Uptime.cpp",
]
if CONFIG["TARGET_CPU"].startswith("x86"):
SOURCES += [
"SIMD_avx2.cpp",
"SSE.cpp",
]
SOURCES["SIMD_avx2.cpp"].flags += ["-mavx2"]
if not CONFIG["JS_STANDALONE"]:
EXPORTS.mozilla += [
"ProcessType.h",
"RuntimeExceptionModule.h",
]
SOURCES += [
"ProcessType.cpp",
"RuntimeExceptionModule.cpp",
]
OS_LIBS += CONFIG["REALTIME_LIBS"]
if CONFIG["OS_ARCH"] == "WINNT":
EXPORTS.mozilla += [
"DynamicallyLinkedFunctionPtr.h",
"ImportDir.h",
"NativeNt.h",
"WindowsDiagnostics.h",
"WindowsDpiInitialization.h",
"WindowsEnumProcessModules.h",
"WindowsMapRemoteView.h",
"WindowsProcessMitigations.h",
"WindowsStackCookie.h",
"WindowsUnwindInfo.h",
]
EXPORTS.mozilla.glue += [
"WindowsUnicode.h",
]
SOURCES += [
"GetKnownFolderPath.cpp",
"TimeStamp_windows.cpp",
"WindowsDiagnostics.cpp",
"WindowsDllMain.cpp",
"WindowsDpiInitialization.cpp",
"WindowsMapRemoteView.cpp",
"WindowsProcessMitigations.cpp",
"WindowsUnicode.cpp",
]
OS_LIBS += ["dbghelp", "oleaut32", "ole32", "mincore"]
if not CONFIG["JS_STANDALONE"]:
SOURCES += [
"/ipc/mscom/COMWrappers.cpp",
"/ipc/mscom/ProcessRuntime.cpp",
"PreXULSkeletonUI.cpp",
]
elif CONFIG["OS_ARCH"] == "Darwin":
SOURCES += [
"TimeStamp_darwin.cpp",
]
elif CONFIG["HAVE_CLOCK_MONOTONIC"]:
SOURCES += [
"TimeStamp_posix.cpp",
]
elif CONFIG["COMPILE_ENVIRONMENT"]:
error("No TimeStamp implementation on this platform. Build will not succeed")
if CONFIG["OS_ARCH"] == "WINNT":
SOURCES += [
"ConditionVariable_windows.cpp",
"Mutex_windows.cpp",
"RWLock_windows.cpp",
]
# WASI hasn't supported cond vars and mutexes yet so noop implementation is used.
elif CONFIG["OS_ARCH"] == "WASI":
SOURCES += [
"ConditionVariable_noop.cpp",
"Mutex_noop.cpp",
]
else:
SOURCES += [
"ConditionVariable_posix.cpp",
"Mutex_posix.cpp",
"RWLock_posix.cpp",
]
if CONFIG["MOZ_LINKER"] and CONFIG["MOZ_WIDGET_TOOLKIT"] == "android":
LOCAL_INCLUDES += [
"/mozglue/linker",
]
SOURCES += [
"decimal/Decimal.cpp",
]
if CONFIG["CC_TYPE"] in ("clang", "clang-cl"):
# Suppress warnings from third-party V8 Decimal code.
SOURCES["decimal/Decimal.cpp"].flags += ["-Wno-implicit-fallthrough"]
for var in ("MOZ_APP_BASENAME", "MOZ_APP_VENDOR"):
DEFINES[var] = '"%s"' % CONFIG[var]