Mercurial > games > semicongine
comparison 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 |
comparison
equal
deleted
inserted
replaced
1058:7a0d5fc00f4f | 1059:9c364af8d3f0 |
---|---|
1 import std/strformat | 1 import std/strformat |
2 import std/strutils | 2 import std/strutils |
3 import std/os | 3 import std/os |
4 | 4 |
5 const BUILDBASE = "build" | 5 import semicongine/build |
6 const DEBUG = "debug" | |
7 const RELEASE = "release" | |
8 const LINUX = "linux" | |
9 const WINDOWS = "windows" | |
10 | 6 |
11 const PACKAGETYPE* {.strdefine.}: string = "dir" # dir, zip, exe | 7 # TODO: totally update this file!! |
12 const RESOURCEROOT* {.strdefine.}: string = "resources" | |
13 | 8 |
14 switch("d", "nimPreviewHashRef") | |
15 switch("experimental", "strictEffects") | |
16 switch("experimental", "strictFuncs") | |
17 switch("nimblePath", "nimbledeps/pkgs2") | 9 switch("nimblePath", "nimbledeps/pkgs2") |
18 | 10 |
19 task build, "build": | 11 task build_dev, "build dev": |
20 switch("d", "PACKAGETYPE=" & PACKAGETYPE) | 12 semicongine_build_switches(buildname = "dev") |
21 switch("d", "RESOURCEROOT=" & RESOURCEROOT) | 13 setCommand "c" |
22 var buildType = DEBUG | 14 let outdir = semicongine_builddir(buildname = "dev") |
23 var platformDir = "" | 15 semicongine_pack(outdir, bundleType = "exe", resourceRoot = "resources") |
24 if defined(linux): | |
25 switch("define", "VK_USE_PLATFORM_XLIB_KHR") | |
26 platformDir = LINUX | |
27 if defined(windows): | |
28 switch("define", "VK_USE_PLATFORM_WIN32_KHR") | |
29 platformDir = WINDOWS | |
30 if defined(release): | |
31 switch("app", "gui") | |
32 buildType = RELEASE | |
33 else: | |
34 switch("debugger", "native") | |
35 | 16 |
36 var outdir = getCurrentDir() / BUILDBASE / buildType / platformDir / projectName() | 17 task build_release, "build release": |
37 switch("outdir", outdir) | 18 switch "define", "release" |
19 switch "app", "gui" | |
20 semicongine_build_switches(buildname = "release") | |
38 setCommand "c" | 21 setCommand "c" |
39 rmDir(outdir) | 22 let outdir = semicongine_builddir(buildname = "release") |
40 mkDir(outdir) | 23 semicongine_pack(outdir, bundleType = "exe", resourceRoot = "resources") |
41 let resourcedir = joinPath(projectDir(), RESOURCEROOT) | 24 |
42 if dirExists(resourcedir): | |
43 let outdir_resources = joinPath(outdir, RESOURCEROOT) | |
44 if PACKAGETYPE == "dir": | |
45 cpDir(resourcedir, outdir_resources) | |
46 elif PACKAGETYPE == "zip": | |
47 mkDir(outdir_resources) | |
48 for resource in listDirs(resourcedir): | |
49 let | |
50 oldcwd = getCurrentDir() | |
51 outputfile = joinPath(outdir_resources, resource.splitPath().tail & ".zip") | |
52 inputfile = resource.splitPath().tail | |
53 cd(resource) | |
54 if defined(linux): | |
55 exec &"zip -r {outputfile} ." | |
56 elif defined(windows): | |
57 # TODO: test this | |
58 exec &"powershell Compress-Archive * {outputfile}" | |
59 cd(oldcwd) | |
60 | 25 |
61 task build_all_debug, "build all examples for debug": | 26 task build_all_debug, "build all examples for debug": |
62 for file in listFiles("examples"): | 27 for file in listFiles("examples"): |
63 if file.endsWith(".nim"): | 28 if file.endsWith(".nim"): |
64 exec(&"nim build {file}") | 29 exec(&"nim build {file}") |
74 exec(&"nim build --run {file}") | 39 exec(&"nim build --run {file}") |
75 | 40 |
76 exec("nim build -d:BUILD_RESOURCEROOT=tests/resources -d:PACKAGETYPE=dir --run tests/test_resources.nim") | 41 exec("nim build -d:BUILD_RESOURCEROOT=tests/resources -d:PACKAGETYPE=dir --run tests/test_resources.nim") |
77 exec("nim build -d:BUILD_RESOURCEROOT=tests/resources -d:PACKAGETYPE=zip --run tests/test_resources.nim") | 42 exec("nim build -d:BUILD_RESOURCEROOT=tests/resources -d:PACKAGETYPE=zip --run tests/test_resources.nim") |
78 exec("nim build -d:BUILD_RESOURCEROOT=tests/resources -d:PACKAGETYPE=exe --run tests/test_resources.nim") | 43 exec("nim build -d:BUILD_RESOURCEROOT=tests/resources -d:PACKAGETYPE=exe --run tests/test_resources.nim") |
79 | |
80 task clean, "remove all build files": | |
81 exec(&"rm -rf {BUILDBASE}") | |
82 | 44 |
83 task publish, "publish all build": | 45 task publish, "publish all build": |
84 for file in listDirs("build/debug/linux"): | 46 for file in listDirs("build/debug/linux"): |
85 exec(&"scp -r {file} sam@mail.basx.dev:/var/www/public.basx.dev/semicongine/debug/linux/") | 47 exec(&"scp -r {file} sam@mail.basx.dev:/var/www/public.basx.dev/semicongine/debug/linux/") |
86 for file in listDirs("build/release/linux"): | 48 for file in listDirs("build/release/linux"): |