Mercurial > games > semicongine
annotate config.nims @ 207:81fab407a479
add: some adjustment to the last refactoring :P
author | Sam <sam@basx.dev> |
---|---|
date | Tue, 09 May 2023 01:18:01 +0700 |
parents | 93f661a20f74 |
children | b5d9410a8184 |
rev | line source |
---|---|
33
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
1 import std/strformat |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
2 import std/strutils |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
3 import std/os |
18 | 4 |
33
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
5 const BUILDBASE = "build" |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
6 const DEBUG = "debug" |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
7 const RELEASE = "release" |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
8 const LINUX = "linux" |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
9 const WINDOWS = "windows" |
18 | 10 |
11 proc compilerFlags() = | |
12 switch("path", "src") | |
13 switch("mm", "orc") | |
14 switch("experimental", "strictEffects") | |
15 switch("threads", "on") | |
83
5e19aead2b61
add: new vulkan api wrapper, not done yet
Sam <sam@basx.dev>
parents:
82
diff
changeset
|
16 if defined(linux): |
5e19aead2b61
add: new vulkan api wrapper, not done yet
Sam <sam@basx.dev>
parents:
82
diff
changeset
|
17 switch("define", "VK_USE_PLATFORM_XLIB_KHR") |
5e19aead2b61
add: new vulkan api wrapper, not done yet
Sam <sam@basx.dev>
parents:
82
diff
changeset
|
18 if defined(windows): |
5e19aead2b61
add: new vulkan api wrapper, not done yet
Sam <sam@basx.dev>
parents:
82
diff
changeset
|
19 switch("define", "VK_USE_PLATFORM_WIN32_KHR") |
5e19aead2b61
add: new vulkan api wrapper, not done yet
Sam <sam@basx.dev>
parents:
82
diff
changeset
|
20 |
18 | 21 |
22 proc compilerFlagsDebug() = | |
23 switch("debugger", "native") | |
24 | |
25 proc compilerFlagsRelease() = | |
26 switch("define", "release") | |
54 | 27 switch("app", "gui") |
18 | 28 |
33
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
29 task single_linux_debug, "build linux debug": |
21
316923e9247c
add: clean examples, update build configs
Sam <sam@basx.dev>
parents:
19
diff
changeset
|
30 compilerFlags() |
18 | 31 compilerFlagsDebug() |
33
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
32 switch("outdir", BUILDBASE / DEBUG / LINUX) |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
33 setCommand "c" |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
34 mkDir(BUILDBASE / DEBUG / LINUX) |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
35 |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
36 task single_linux_release, "build linux release": |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
37 compilerFlags() |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
38 compilerFlagsRelease() |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
39 switch("outdir", BUILDBASE / RELEASE / LINUX) |
18 | 40 setCommand "c" |
33
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
41 mkDir(BUILDBASE / RELEASE / LINUX) |
18 | 42 |
33
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
43 task single_windows_debug, "build windows debug": |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
44 compilerFlags() |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
45 compilerFlagsDebug() |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
46 switch("outdir", BUILDBASE & "/" & DEBUG & "/" & WINDOWS) |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
47 setCommand "c" |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
48 mkDir(BUILDBASE & "/" & DEBUG & "/" & WINDOWS) |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
49 |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
50 task single_windows_release, "build windows release": |
21
316923e9247c
add: clean examples, update build configs
Sam <sam@basx.dev>
parents:
19
diff
changeset
|
51 compilerFlags() |
18 | 52 compilerFlagsRelease() |
33
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
53 switch("outdir", BUILDBASE & "/" & RELEASE & "/" & WINDOWS) |
21
316923e9247c
add: clean examples, update build configs
Sam <sam@basx.dev>
parents:
19
diff
changeset
|
54 setCommand "c" |
33
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
55 mkDir(BUILDBASE & "/" & RELEASE & "/" & WINDOWS) |
21
316923e9247c
add: clean examples, update build configs
Sam <sam@basx.dev>
parents:
19
diff
changeset
|
56 |
33
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
57 task build_all_linux_debug, "build all examples with linux/debug": |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
58 for file in listFiles("examples"): |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
59 if file.endsWith(".nim"): |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
60 selfExec(&"single_linux_debug {file}") |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
61 |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
62 task build_all_linux_release, "build all examples with linux/release": |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
63 for file in listFiles("examples"): |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
64 if file.endsWith(".nim"): |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
65 selfExec(&"single_linux_release {file}") |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
66 |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
67 task build_all_windows_debug, "build all examples with windows/debug": |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
68 for file in listFiles("examples"): |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
69 if file.endsWith(".nim"): |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
70 exec(&"nim single_windows_debug --define:mingw {file}") |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
71 |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
72 task build_all_windows_release, "build all examples with windows/release": |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
73 for file in listFiles("examples"): |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
74 if file.endsWith(".nim"): |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
75 exec(&"nim single_windows_release --define:mingw {file}") |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
76 |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
77 task build_all_debug, "build all examples with */debug": |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
78 build_all_linux_debugTask() |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
79 build_all_windows_debugTask() |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
80 |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
81 task build_all_release, "build all examples with */release": |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
82 build_all_linux_releaseTask() |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
83 build_all_windows_releaseTask() |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
84 |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
85 task build_all_linux, "build all examples with linux/*": |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
86 build_all_linux_debugTask() |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
87 build_all_linux_releaseTask() |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
88 |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
89 task build_all_windows, "build all examples with windows/*": |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
90 build_all_windows_debugTask() |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
91 build_all_windows_releaseTask() |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
92 |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
93 task build_all, "build all examples": |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
94 build_all_linuxTask() |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
95 build_all_windowsTask() |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
96 |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
97 task clean, "remove all build files": |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
98 exec(&"rm -rf {BUILDBASE}") |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
99 |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
100 task publish, "publish all build": |
53 | 101 for file in listFiles("build/debug/linux"): |
102 exec(&"scp {file} sam@mail.basx.dev:/var/www/public.basx.dev/semicongine/debug/linux/") | |
103 for file in listFiles("build/release/linux"): | |
104 exec(&"scp {file} sam@mail.basx.dev:/var/www/public.basx.dev/semicongine/release/linux/") | |
105 for file in listFiles("build/debug/windows"): | |
106 exec(&"scp {file} sam@mail.basx.dev:/var/www/public.basx.dev/semicongine/debug/windows/") | |
107 for file in listFiles("build/release/windows"): | |
108 exec(&"scp {file} sam@mail.basx.dev:/var/www/public.basx.dev/semicongine/release/windows/") | |
109 | |
36 | 110 task glslangValidator, "Download glslangValidator (required for linux compilation)": |
62
7153eadb07eb
fix: some formatting, bug when opening on windows.
Sam <sam@basx.dev>
parents:
55
diff
changeset
|
111 let dirname = "/tmp/glslang_download" |
36 | 112 exec &"mkdir -p {dirname}" |
113 exec &"cd {dirname} && wget https://github.com/KhronosGroup/glslang/releases/download/master-tot/glslang-master-linux-Release.zip" | |
114 exec &"cd {dirname} && unzip *.zip" | |
115 exec &"mv {dirname}/bin/glslangValidator examples/" | |
116 exec &"rm -rf {dirname}" | |
117 | |
118 task glslangValidator_exe, "Download glslangValidator.exe (required for windows compilation)": | |
62
7153eadb07eb
fix: some formatting, bug when opening on windows.
Sam <sam@basx.dev>
parents:
55
diff
changeset
|
119 let dirname = "/tmp/glslang_download" |
36 | 120 exec &"mkdir -p {dirname}" |
121 exec &"cd {dirname} && wget https://github.com/KhronosGroup/glslang/releases/download/master-tot/glslang-master-windows-x64-Release.zip" | |
122 exec &"cd {dirname} && unzip *.zip" | |
123 exec &"mv {dirname}/bin/glslangValidator.exe examples/" | |
124 exec &"rm -rf {dirname}" | |
33
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
125 |
62
7153eadb07eb
fix: some formatting, bug when opening on windows.
Sam <sam@basx.dev>
parents:
55
diff
changeset
|
126 task run_all, "Run all binaries": |
39 | 127 for file in listFiles("build/debug/linux"): |
128 exec file | |
129 for file in listFiles("build/release/linux"): | |
130 exec file | |
131 for file in listFiles("build/debug/windows"): | |
132 exec &"wine {file}" | |
133 for file in listFiles("build/release/windows"): | |
134 exec &"wine {file}" | |
46
9e81f06a5c57
add: some changes to build on windows host
Sam <sam@basx.dev>
parents:
44
diff
changeset
|
135 |
78
f67496a189cb
add: vulkan api generator, not finished yet
Sam <sam@basx.dev>
parents:
62
diff
changeset
|
136 task get_vulkan_wrapper, "Download vulkan wrapper": |
f67496a189cb
add: vulkan api generator, not finished yet
Sam <sam@basx.dev>
parents:
62
diff
changeset
|
137 exec &"curl https://raw.githubusercontent.com/nimgl/nimgl/master/src/nimgl/vulkan.nim > src/semicongine/vulkan/c_api.nim" |
f67496a189cb
add: vulkan api generator, not finished yet
Sam <sam@basx.dev>
parents:
62
diff
changeset
|
138 |
f67496a189cb
add: vulkan api generator, not finished yet
Sam <sam@basx.dev>
parents:
62
diff
changeset
|
139 task generate_vulkan_api, "Generate Vulkan API": |
194
93f661a20f74
did: a bit of cleanup with the config, also add some documentation
Sam <sam@basx.dev>
parents:
83
diff
changeset
|
140 selfExec &"c -d:ssl --run src/vulkan_api/vulkan_api_generator.nim" |
82
9e7937b7bcc8
did: complete vulkan api generator pipeline for now
Sam <sam@basx.dev>
parents:
78
diff
changeset
|
141 mkDir "src/semicongine/vulkan/" |
207
81fab407a479
add: some adjustment to the last refactoring :P
Sam <sam@basx.dev>
parents:
194
diff
changeset
|
142 mkDir "src/semicongine/core/" |
81fab407a479
add: some adjustment to the last refactoring :P
Sam <sam@basx.dev>
parents:
194
diff
changeset
|
143 cpFile "src/vulkan_api/output/api.nim", "src/semicongine/core/api.nim" |
82
9e7937b7bcc8
did: complete vulkan api generator pipeline for now
Sam <sam@basx.dev>
parents:
78
diff
changeset
|
144 cpDir "src/vulkan_api/output/platform", "src/semicongine/vulkan/platform" |
78
f67496a189cb
add: vulkan api generator, not finished yet
Sam <sam@basx.dev>
parents:
62
diff
changeset
|
145 |
46
9e81f06a5c57
add: some changes to build on windows host
Sam <sam@basx.dev>
parents:
44
diff
changeset
|
146 if getCommand() in ["c", "compile", "r", "dump", "check", "idetools"]: |
9e81f06a5c57
add: some changes to build on windows host
Sam <sam@basx.dev>
parents:
44
diff
changeset
|
147 compilerFlags() |