Mercurial > games > semicongine
annotate config.nims @ 1059:9c364af8d3f0
did: tons of small improvments, on the way to make GPU sync (more) correct I guess
author | sam <sam@basx.dev> |
---|---|
date | Sun, 31 Mar 2024 22:11:50 +0700 |
parents | 1ab09f8cc68d |
children | 6406766a222d |
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 |
1059
9c364af8d3f0
did: tons of small improvments, on the way to make GPU sync (more) correct I guess
sam <sam@basx.dev>
parents:
438
diff
changeset
|
5 import semicongine/build |
18 | 6 |
1059
9c364af8d3f0
did: tons of small improvments, on the way to make GPU sync (more) correct I guess
sam <sam@basx.dev>
parents:
438
diff
changeset
|
7 # TODO: totally update this file!! |
213
b5d9410a8184
add: resource packaging and loading for different resource types, simplify build commands, update readme
Sam <sam@basx.dev>
parents:
207
diff
changeset
|
8 |
383 | 9 switch("nimblePath", "nimbledeps/pkgs2") |
10 | |
1059
9c364af8d3f0
did: tons of small improvments, on the way to make GPU sync (more) correct I guess
sam <sam@basx.dev>
parents:
438
diff
changeset
|
11 task build_dev, "build dev": |
9c364af8d3f0
did: tons of small improvments, on the way to make GPU sync (more) correct I guess
sam <sam@basx.dev>
parents:
438
diff
changeset
|
12 semicongine_build_switches(buildname = "dev") |
18 | 13 setCommand "c" |
1059
9c364af8d3f0
did: tons of small improvments, on the way to make GPU sync (more) correct I guess
sam <sam@basx.dev>
parents:
438
diff
changeset
|
14 let outdir = semicongine_builddir(buildname = "dev") |
9c364af8d3f0
did: tons of small improvments, on the way to make GPU sync (more) correct I guess
sam <sam@basx.dev>
parents:
438
diff
changeset
|
15 semicongine_pack(outdir, bundleType = "exe", resourceRoot = "resources") |
9c364af8d3f0
did: tons of small improvments, on the way to make GPU sync (more) correct I guess
sam <sam@basx.dev>
parents:
438
diff
changeset
|
16 |
9c364af8d3f0
did: tons of small improvments, on the way to make GPU sync (more) correct I guess
sam <sam@basx.dev>
parents:
438
diff
changeset
|
17 task build_release, "build release": |
9c364af8d3f0
did: tons of small improvments, on the way to make GPU sync (more) correct I guess
sam <sam@basx.dev>
parents:
438
diff
changeset
|
18 switch "define", "release" |
9c364af8d3f0
did: tons of small improvments, on the way to make GPU sync (more) correct I guess
sam <sam@basx.dev>
parents:
438
diff
changeset
|
19 switch "app", "gui" |
9c364af8d3f0
did: tons of small improvments, on the way to make GPU sync (more) correct I guess
sam <sam@basx.dev>
parents:
438
diff
changeset
|
20 semicongine_build_switches(buildname = "release") |
9c364af8d3f0
did: tons of small improvments, on the way to make GPU sync (more) correct I guess
sam <sam@basx.dev>
parents:
438
diff
changeset
|
21 setCommand "c" |
9c364af8d3f0
did: tons of small improvments, on the way to make GPU sync (more) correct I guess
sam <sam@basx.dev>
parents:
438
diff
changeset
|
22 let outdir = semicongine_builddir(buildname = "release") |
9c364af8d3f0
did: tons of small improvments, on the way to make GPU sync (more) correct I guess
sam <sam@basx.dev>
parents:
438
diff
changeset
|
23 semicongine_pack(outdir, bundleType = "exe", resourceRoot = "resources") |
9c364af8d3f0
did: tons of small improvments, on the way to make GPU sync (more) correct I guess
sam <sam@basx.dev>
parents:
438
diff
changeset
|
24 |
18 | 25 |
213
b5d9410a8184
add: resource packaging and loading for different resource types, simplify build commands, update readme
Sam <sam@basx.dev>
parents:
207
diff
changeset
|
26 task build_all_debug, "build all examples for debug": |
33
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
27 for file in listFiles("examples"): |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
28 if file.endsWith(".nim"): |
213
b5d9410a8184
add: resource packaging and loading for different resource types, simplify build commands, update readme
Sam <sam@basx.dev>
parents:
207
diff
changeset
|
29 exec(&"nim build {file}") |
33
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
30 |
213
b5d9410a8184
add: resource packaging and loading for different resource types, simplify build commands, update readme
Sam <sam@basx.dev>
parents:
207
diff
changeset
|
31 task build_all_release, "build all examples for release": |
33
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
32 for file in listFiles("examples"): |
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
33 if file.endsWith(".nim"): |
213
b5d9410a8184
add: resource packaging and loading for different resource types, simplify build commands, update readme
Sam <sam@basx.dev>
parents:
207
diff
changeset
|
34 exec(&"nim build -d:release {file}") |
33
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
35 |
316
b145a05c2459
add: changing rendering system, not finished yet, also upgrading to Nim 2
Sam <sam@basx.dev>
parents:
273
diff
changeset
|
36 task test_all, "Run all test programs": |
b145a05c2459
add: changing rendering system, not finished yet, also upgrading to Nim 2
Sam <sam@basx.dev>
parents:
273
diff
changeset
|
37 for file in listFiles("tests"): |
438 | 38 if file.endsWith(".nim") and not file.endsWith("test_resources.nim"): |
316
b145a05c2459
add: changing rendering system, not finished yet, also upgrading to Nim 2
Sam <sam@basx.dev>
parents:
273
diff
changeset
|
39 exec(&"nim build --run {file}") |
b145a05c2459
add: changing rendering system, not finished yet, also upgrading to Nim 2
Sam <sam@basx.dev>
parents:
273
diff
changeset
|
40 |
438 | 41 exec("nim build -d:BUILD_RESOURCEROOT=tests/resources -d:PACKAGETYPE=dir --run tests/test_resources.nim") |
42 exec("nim build -d:BUILD_RESOURCEROOT=tests/resources -d:PACKAGETYPE=zip --run tests/test_resources.nim") | |
43 exec("nim build -d:BUILD_RESOURCEROOT=tests/resources -d:PACKAGETYPE=exe --run tests/test_resources.nim") | |
44 | |
33
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
45 task publish, "publish all build": |
248 | 46 for file in listDirs("build/debug/linux"): |
252 | 47 exec(&"scp -r {file} sam@mail.basx.dev:/var/www/public.basx.dev/semicongine/debug/linux/") |
48 for file in listDirs("build/release/linux"): | |
49 exec(&"scp -r {file} sam@mail.basx.dev:/var/www/public.basx.dev/semicongine/release/linux/") | |
50 for file in listDirs("build/debug/windows"): | |
51 exec(&"scp -r {file} sam@mail.basx.dev:/var/www/public.basx.dev/semicongine/debug/windows/") | |
52 for file in listDirs("build/release/windows"): | |
53 exec(&"scp -r {file} sam@mail.basx.dev:/var/www/public.basx.dev/semicongine/release/windows/") | |
53 | 54 |
36 | 55 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
|
56 let dirname = "/tmp/glslang_download" |
36 | 57 exec &"mkdir -p {dirname}" |
58 exec &"cd {dirname} && wget https://github.com/KhronosGroup/glslang/releases/download/master-tot/glslang-master-linux-Release.zip" | |
59 exec &"cd {dirname} && unzip *.zip" | |
60 exec &"mv {dirname}/bin/glslangValidator examples/" | |
61 exec &"rm -rf {dirname}" | |
62 | |
63 task glslangValidator_exe, "Download glslangValidator.exe (required for windows compilation)": | |
213
b5d9410a8184
add: resource packaging and loading for different resource types, simplify build commands, update readme
Sam <sam@basx.dev>
parents:
207
diff
changeset
|
64 # TODO: make this work on windows |
62
7153eadb07eb
fix: some formatting, bug when opening on windows.
Sam <sam@basx.dev>
parents:
55
diff
changeset
|
65 let dirname = "/tmp/glslang_download" |
36 | 66 exec &"mkdir -p {dirname}" |
67 exec &"cd {dirname} && wget https://github.com/KhronosGroup/glslang/releases/download/master-tot/glslang-master-windows-x64-Release.zip" | |
68 exec &"cd {dirname} && unzip *.zip" | |
69 exec &"mv {dirname}/bin/glslangValidator.exe examples/" | |
70 exec &"rm -rf {dirname}" | |
33
94c38e4b5782
did: refactoring, move more from make to nimscript
Sam <sam@basx.dev>
parents:
24
diff
changeset
|
71 |
62
7153eadb07eb
fix: some formatting, bug when opening on windows.
Sam <sam@basx.dev>
parents:
55
diff
changeset
|
72 task run_all, "Run all binaries": |
39 | 73 for file in listFiles("build/debug/linux"): |
74 exec file | |
75 for file in listFiles("build/release/linux"): | |
76 exec file | |
77 for file in listFiles("build/debug/windows"): | |
78 exec &"wine {file}" | |
79 for file in listFiles("build/release/windows"): | |
80 exec &"wine {file}" | |
46
9e81f06a5c57
add: some changes to build on windows host
Sam <sam@basx.dev>
parents:
44
diff
changeset
|
81 |
78
f67496a189cb
add: vulkan api generator, not finished yet
Sam <sam@basx.dev>
parents:
62
diff
changeset
|
82 task get_vulkan_wrapper, "Download vulkan wrapper": |
f67496a189cb
add: vulkan api generator, not finished yet
Sam <sam@basx.dev>
parents:
62
diff
changeset
|
83 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
|
84 |
f67496a189cb
add: vulkan api generator, not finished yet
Sam <sam@basx.dev>
parents:
62
diff
changeset
|
85 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
|
86 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
|
87 mkDir "src/semicongine/vulkan/" |
207
81fab407a479
add: some adjustment to the last refactoring :P
Sam <sam@basx.dev>
parents:
194
diff
changeset
|
88 mkDir "src/semicongine/core/" |
81fab407a479
add: some adjustment to the last refactoring :P
Sam <sam@basx.dev>
parents:
194
diff
changeset
|
89 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
|
90 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
|
91 |
46
9e81f06a5c57
add: some changes to build on windows host
Sam <sam@basx.dev>
parents:
44
diff
changeset
|
92 if getCommand() in ["c", "compile", "r", "dump", "check", "idetools"]: |
213
b5d9410a8184
add: resource packaging and loading for different resource types, simplify build commands, update readme
Sam <sam@basx.dev>
parents:
207
diff
changeset
|
93 if defined(linux): |
438 | 94 --d: VK_USE_PLATFORM_XLIB_KHR |
213
b5d9410a8184
add: resource packaging and loading for different resource types, simplify build commands, update readme
Sam <sam@basx.dev>
parents:
207
diff
changeset
|
95 if defined(windows): |
438 | 96 --d: VK_USE_PLATFORM_WIN32_KHR |