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