Quelle constants.py
Sprache: unbekannt
# 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/.
from collections
import OrderedDict
from mozbuild.util
import EnumString
class RaiseErrorOnUse(str):
def __init__(self, msg):
self.msg = msg
def __eq__(self, other):
raise RuntimeError(self.msg)
def __ne__(self, other):
self.__eq__(other)
def __repr__(self):
return f
"{self.__class__.__name__}({self.msg!r})"
class CompilerType(EnumString):
POSSIBLE_VALUES = (
"clang" ,
"clang-cl" ,
"gcc" ,
"msvc" ,
)
class OS(EnumString):
POSSIBLE_VALUES = (
"Android" ,
"DragonFly" ,
"FreeBSD" ,
"GNU" ,
"iOS" ,
"NetBSD" ,
"OpenBSD" ,
"OSX" ,
"SunOS" ,
"WINNT" ,
"WASI" ,
)
class Kernel(EnumString):
POSSIBLE_VALUES = (
"Darwin" ,
"DragonFly" ,
"FreeBSD" ,
"kFreeBSD" ,
"Linux" ,
"NetBSD" ,
"OpenBSD" ,
"SunOS" ,
"WINNT" ,
"WASI" ,
)
CPU_bitness = {
"aarch64" : 64,
"Alpha" : 64,
"arm" : 32,
"hppa" : 32,
"ia64" : 64,
"loongarch64" : 64,
"m68k" : 32,
"mips32" : 32,
"mips64" : 64,
"ppc" : 32,
"ppc64" : 64,
"riscv64" : 64,
"s390" : 32,
"s390x" : 64,
"sh4" : 32,
"sparc" : 32,
"sparc64" : 64,
"x86" : 32,
"x86_64" : 64,
"wasm32" : 32,
}
class CPU(EnumString):
POSSIBLE_VALUES = CPU_bitness.keys()
class Endianness(EnumString):
POSSIBLE_VALUES = (
"big" ,
"little" ,
)
class WindowsBinaryType(EnumString):
POSSIBLE_VALUES = (
"win32" ,
"win64" ,
)
class Abi(EnumString):
POSSIBLE_VALUES = (
"msvc" ,
"mingw" ,
)
# The order of those checks matter
CPU_preprocessor_checks = OrderedDict(
(
(
"x86" ,
"__i386__ || _M_IX86" ),
(
"x86_64" ,
"__x86_64__ || _M_X64" ),
(
"arm" ,
"__arm__ || _M_ARM" ),
(
"aarch64" ,
"__aarch64__ || _M_ARM64" ),
(
"ia64" ,
"__ia64__" ),
(
"s390x" ,
"__s390x__" ),
(
"s390" ,
"__s390__" ),
(
"ppc64" ,
"__powerpc64__" ),
(
"ppc" ,
"__powerpc__" ),
(
"Alpha" ,
"__alpha__" ),
(
"hppa" ,
"__hppa__" ),
(
"sparc64" ,
"__sparc__ && __arch64__" ),
(
"sparc" ,
"__sparc__" ),
(
"m68k" ,
"__m68k__" ),
(
"mips64" ,
"__mips64" ),
(
"mips32" ,
"__mips__" ),
(
"riscv64" ,
"__riscv && __riscv_xlen == 64" ),
(
"loongarch64" ,
"__loongarch64" ),
(
"sh4" ,
"__sh__" ),
(
"wasm32" ,
"__wasm32__" ),
)
)
assert sorted(CPU_preprocessor_checks.keys()) == sorted(CPU.POSSIBLE_VALUES)
kernel_preprocessor_checks = {
"Darwin" :
"__APPLE__" ,
"DragonFly" :
"__DragonFly__" ,
"FreeBSD" :
"__FreeBSD__" ,
"kFreeBSD" :
"__FreeBSD_kernel__" ,
"Linux" :
"__linux__" ,
"NetBSD" :
"__NetBSD__" ,
"OpenBSD" :
"__OpenBSD__" ,
"SunOS" :
"__sun__" ,
"WINNT" :
"_WIN32 || __CYGWIN__" ,
"WASI" :
"__wasi__" ,
}
assert sorted(kernel_preprocessor_checks.keys()) == sorted(Kernel.POSSIBLE_VALUES)
OS_preprocessor_checks = {
"Android" :
"__ANDROID__" ,
}
# We intentionally don't include all possible OSes in our checks, because we
# only care about OS mismatches for specific target OSes.
# assert sorted(OS_preprocessor_checks.keys()) == sorted(OS.POSSIBLE_VALUES)
Messung V0.5 C=98 H=100 G=98
[ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet)
]
2026-04-02