-
Notifications
You must be signed in to change notification settings - Fork 0
/
Elitefile
94 lines (71 loc) · 2.45 KB
/
Elitefile
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
required_version is 0.1
set bin_path as "/usr/bin/"
set output as "{bin_path}enigne"
set sudo as "sudo"
set compiler as "c++"
set standard as std "c++20"
for specific "windows" [
set output as "enigne.exe"
set standard as "/std:c++20 /Zc:__cplusplus"
]
set flag/s as link "stdc++fs"
for signal "start" [
set pre as "src/enigne_lang"
set mod as "src/modules/enigne_lang"
for specific "windows" [
set files as ""
set pre as "src/enigne_lang"
set mod as "src/modules/enigne_lang"
set files as "/Tp{mod}_math.cpp
/Tp{mod}_chars.cpp
/Tp{mod}_system.cpp
/Tp{mod}_fs.cpp
/Tp{pre}_ast.cpp
/Tp{pre}_intptr.cpp
/Tp{pre}_parse.cpp
/Tp{pre}_syntax.cpp"
set main_file as "/Tp{pre}_main.cpp"
]
for specific "linux" [
set files as ""
set files as "{mod}_math.cpp
{mod}_chars.cpp
{mod}_system.cpp
{mod}_fs.cpp
{pre}_ast.cpp
{pre}_intptr.cpp
{pre}_parse.cpp
{pre}_syntax.cpp"
set main_file as "{pre}_main.cpp"
]
for argument "install_as_library" [
for specific "linux" [
use exec "{sudo}
{compiler}
-fPIC -shared
-o /usr/local/lib/libenigne.so
{standard} {files}"
for exists "/usr/local/include/enigne" [
use exec "{sudo} rm -rf /usr/local/include/enigne/"
]
use exec "{sudo} cp -R include /usr/local/include/enigne/"
]
]
for argument "update" [
use exec "git submodule init"
use exec "git submodule update"
]
for argument "install" [
# don't forget to add msvc tools to your PATH environment.
for specific "windows" [
use exec "cl.exe /nologo /EHsc /D_USE_MATH_DEFINES {standard} {files} {main_file} /Fe{output}"
]
for specific "linux" [
use exec "{sudo} {compiler} {flag/s} {standard} {files} {main_file} -o {output}"
]
for exists "{output}" [
println "Installed to {output}"
]
]
use signal "exit"
]