-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
/
Copy pathplatforms.nim
105 lines (99 loc) · 5.02 KB
/
platforms.nim
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#
#
# Nim's Runtime Library
# (c) Copyright 2015 Andreas Rumpf
#
# See the file "copying.txt", included in this
# distribution, for details about the copyright.
#
## Platform detection for NimScript. This module is included by the system module!
## Do not import it directly!
# CPU architectures have alias names mapped in tools/niminst/makefile.nimf
type
CpuPlatform* {.pure.} = enum ## the CPU this program will run on.
none, ## unknown CPU
i386, ## 32 bit x86 compatible CPU
m68k, ## M68k based processor
alpha, ## Alpha processor
powerpc, ## 32 bit PowerPC
powerpc64, ## 64 bit PowerPC
powerpc64el, ## Little Endian 64 bit PowerPC
sparc, ## Sparc based processor
sparc64, ## 64-bit Sparc based processor
hppa, ## HP PA-RISC
ia64, ## Intel Itanium
amd64, ## x86_64 (AMD64); 64 bit x86 compatible CPU
mips, ## Mips based processor
mipsel, ## Little Endian Mips based processor
mips64, ## 64-bit MIPS processor
mips64el, ## Little Endian 64-bit MIPS processor
arm, ## ARM based processor
arm64, ## ARM64 based processor
vm, ## Some Virtual machine: Nim's VM or JavaScript
avr, ## AVR based processor
msp430, ## TI MSP430 microcontroller
riscv32, ## RISC-V 32-bit processor
riscv64, ## RISC-V 64-bit processor
wasm32, ## WASM, 32-bit
e2k, ## MCST Elbrus 2000
loongarch64, ## LoongArch 64-bit processor
s390x ## IBM Z
OsPlatform* {.pure.} = enum ## the OS this program will run on.
none, dos, windows, os2, linux, morphos, skyos, solaris,
irix, netbsd, freebsd, openbsd, aix, palmos, qnx, amiga,
atari, netware, macos, macosx, haiku, android, js, standalone, nintendoswitch
const
targetOS* = when defined(windows): OsPlatform.windows
elif defined(dos): OsPlatform.dos
elif defined(os2): OsPlatform.os2
elif defined(linux): OsPlatform.linux
elif defined(morphos): OsPlatform.morphos
elif defined(skyos): OsPlatform.skyos
elif defined(solaris): OsPlatform.solaris
elif defined(irix): OsPlatform.irix
elif defined(netbsd): OsPlatform.netbsd
elif defined(freebsd): OsPlatform.freebsd
elif defined(openbsd): OsPlatform.openbsd
elif defined(aix): OsPlatform.aix
elif defined(palmos): OsPlatform.palmos
elif defined(qnx): OsPlatform.qnx
elif defined(amiga): OsPlatform.amiga
elif defined(atari): OsPlatform.atari
elif defined(netware): OsPlatform.netware
elif defined(macosx): OsPlatform.macosx
elif defined(macos): OsPlatform.macos
elif defined(haiku): OsPlatform.haiku
elif defined(android): OsPlatform.android
elif defined(js): OsPlatform.js
elif defined(standalone): OsPlatform.standalone
elif defined(nintendoswitch): OsPlatform.nintendoswitch
else: OsPlatform.none
## the OS this program will run on.
targetCPU* = when defined(i386): CpuPlatform.i386
elif defined(m68k): CpuPlatform.m68k
elif defined(alpha): CpuPlatform.alpha
elif defined(powerpc): CpuPlatform.powerpc
elif defined(powerpc64): CpuPlatform.powerpc64
elif defined(powerpc64el): CpuPlatform.powerpc64el
elif defined(sparc): CpuPlatform.sparc
elif defined(sparc64): CpuPlatform.sparc64
elif defined(hppa): CpuPlatform.hppa
elif defined(ia64): CpuPlatform.ia64
elif defined(amd64): CpuPlatform.amd64
elif defined(mips): CpuPlatform.mips
elif defined(mipsel): CpuPlatform.mipsel
elif defined(mips64): CpuPlatform.mips64
elif defined(mips64el): CpuPlatform.mips64el
elif defined(arm): CpuPlatform.arm
elif defined(arm64): CpuPlatform.arm64
elif defined(vm): CpuPlatform.vm
elif defined(avr): CpuPlatform.avr
elif defined(msp430): CpuPlatform.msp430
elif defined(riscv32): CpuPlatform.riscv32
elif defined(riscv64): CpuPlatform.riscv64
elif defined(wasm32): CpuPlatform.wasm32
elif defined(e2k): CpuPlatform.e2k
elif defined(loongarch64): CpuPlatform.loongarch64
elif defined(s390x): CpuPlatform.s390x
else: CpuPlatform.none
## the CPU this program will run on.