forked from arturo-lang/arturo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.nims
95 lines (73 loc) · 2.14 KB
/
config.nims
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
import os, strutils
proc defaultConfig() =
--cincludes:extras
--path:src
--hints:on
--verbosity:1
hint "ProcessingStmt":off
hint "XCannotRaiseY":off
hint "ConvFromXtoItselfNotNeeded":off
warning "GcUnsafe":off
warning "CastSizes":off
warning "ProveInit":off
warning "ProveField":off
warning "Uninit":off
warning "BareExcept":off
--threads:off
--skipUserCfg:on
--colors:off
--define:danger
--panics:off
--mm:orc
--define:useMalloc
--checks:off
--cincludes:extras
--opt:speed
--nimcache:".cache"
if hostOS != "windows":
--passL:"-pthread"
--path:src
proc configGMPOnWindows() =
if "windows" == hostOS:
let gccPath = staticExec("pkg-config --libs-only-L gmp")
.strip()
.replace("-L","")
.replace("/lib","/bin")
.normalizedPath()
switch "gcc.path", gccPath
proc configMimalloc() =
let
mimallocPath = projectDir() / "extras" / "mimalloc"
mimallocStatic = "mimallocStatic=\"" & (mimallocPath / "src" / "static.c") & '"'
mimallocIncludePath = "mimallocIncludePath=\"" & (mimallocPath / "include") & '"'
switch "define", mimallocStatic
switch "define", mimallocIncludePath
if get("cc") in @["gcc", "clang", "icc", "icl"]:
--passC:"-ftls-model=initial-exec -fno-builtin-malloc"
"stdlib".patchFile("malloc"):
"src"/"extras"/"mimalloc"
proc configWinPCRE() =
--dynlibOverride:pcre64
proc configMacosPCRE() =
--dynlibOverride:pcre
proc configWinSSL() =
--define:"noOpenSSLHacks"
--define:"sslVersion:("
--dynlibOverride:"ssl-"
--dynlibOverride:"crypto-"
proc configUnixSSL() =
--dynlibOverride:ssl
--dynlibOverride:crypto
proc main() =
defaultConfig()
configGMPOnWindows()
configMimalloc()
if defined(windows):
configWinPCRE()
if defined(macosx):
configMacosPCRE()
if defined(windows) and defined(ssl):
configWinSSL()
if not defined(windows) and defined(ssl):
configUnixSSL()
main()