107 lines
2.2 KiB
Python
107 lines
2.2 KiB
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/.
|
|
|
|
from __future__ import absolute_import, print_function, unicode_literals
|
|
|
|
from mozbuild.util import EnumString
|
|
from collections import OrderedDict
|
|
|
|
|
|
CompilerType = EnumString.subclass(
|
|
'clang',
|
|
'clang-cl',
|
|
'gcc',
|
|
'msvc',
|
|
)
|
|
|
|
OS = EnumString.subclass(
|
|
'Android',
|
|
'DragonFly',
|
|
'FreeBSD',
|
|
'GNU',
|
|
'iOS',
|
|
'NetBSD',
|
|
'OpenBSD',
|
|
'SunOS',
|
|
'OSX',
|
|
'WINNT',
|
|
)
|
|
|
|
Kernel = EnumString.subclass(
|
|
'Darwin',
|
|
'DragonFly',
|
|
'FreeBSD',
|
|
'kFreeBSD',
|
|
'Linux',
|
|
'NetBSD',
|
|
'OpenBSD',
|
|
'SunOS',
|
|
'WINNT',
|
|
)
|
|
|
|
CPU_bitness = {
|
|
'aarch64': 64,
|
|
'Alpha': 32,
|
|
'arm': 32,
|
|
'hppa': 32,
|
|
'ia64': 64,
|
|
'mips32': 32,
|
|
'mips64': 64,
|
|
'ppc': 32,
|
|
'ppc64': 64,
|
|
's390': 32,
|
|
's390x': 64,
|
|
'sparc': 32,
|
|
'sparc64': 64,
|
|
'x86': 32,
|
|
'x86_64': 64,
|
|
}
|
|
|
|
CPU = EnumString.subclass(*CPU_bitness.keys())
|
|
|
|
Endianness = EnumString.subclass(
|
|
'big',
|
|
'little',
|
|
)
|
|
|
|
WindowsBinaryType = EnumString.subclass(
|
|
'win32',
|
|
'win64',
|
|
)
|
|
|
|
# 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__'),
|
|
('ia64', '__ia64__'),
|
|
('s390x', '__s390x__'),
|
|
('s390', '__s390__'),
|
|
('ppc64', '__powerpc64__'),
|
|
('ppc', '__powerpc__'),
|
|
('Alpha', '__alpha__'),
|
|
('hppa', '__hppa__'),
|
|
('sparc64', '__sparc__ && __arch64__'),
|
|
('sparc', '__sparc__'),
|
|
('mips64', '__mips64'),
|
|
('mips32', '__mips__'),
|
|
))
|
|
|
|
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__',
|
|
}
|
|
|
|
assert sorted(kernel_preprocessor_checks.keys()) == sorted(Kernel.POSSIBLE_VALUES)
|