Mercurial > games > semicongine
comparison config.nims @ 899:ad961543994b
did: refactor and improve packaging API
author | Sam <sam@basx.dev> |
---|---|
date | Wed, 14 Feb 2024 21:58:43 +0700 |
parents | 094342d38c69 |
children | fe48b091e83f |
comparison
equal
deleted
inserted
replaced
898:6924c2cf94e5 | 899:ad961543994b |
---|---|
6 const DEBUG = "debug" | 6 const DEBUG = "debug" |
7 const RELEASE = "release" | 7 const RELEASE = "release" |
8 const LINUX = "linux" | 8 const LINUX = "linux" |
9 const WINDOWS = "windows" | 9 const WINDOWS = "windows" |
10 | 10 |
11 const BUNDLETYPE* {.strdefine.}: string = "dir" # dir, zip, exe | 11 const PACKAGETYPE* {.strdefine.}: string = "dir" # dir, zip, exe |
12 const RESOURCEROOT* {.strdefine.}: string = "resources" | 12 const RESOURCEROOT* {.strdefine.}: string = "resources" |
13 | 13 |
14 switch("d", "nimPreviewHashRef") | 14 switch("d", "nimPreviewHashRef") |
15 switch("experimental", "strictEffects") | 15 switch("experimental", "strictEffects") |
16 switch("experimental", "strictFuncs") | 16 switch("experimental", "strictFuncs") |
17 switch("nimblePath", "nimbledeps/pkgs2") | 17 switch("nimblePath", "nimbledeps/pkgs2") |
18 | 18 |
19 task build, "build": | 19 task build, "build": |
20 switch("d", "BUNDLETYPE=" & BUNDLETYPE) | 20 switch("d", "PACKAGETYPE=" & PACKAGETYPE) |
21 switch("d", "RESOURCEROOT=" & RESOURCEROOT) | 21 switch("d", "RESOURCEROOT=" & RESOURCEROOT) |
22 var buildType = DEBUG | 22 var buildType = DEBUG |
23 var platformDir = "" | 23 var platformDir = "" |
24 if defined(linux): | 24 if defined(linux): |
25 switch("define", "VK_USE_PLATFORM_XLIB_KHR") | 25 switch("define", "VK_USE_PLATFORM_XLIB_KHR") |
39 rmDir(outdir) | 39 rmDir(outdir) |
40 mkDir(outdir) | 40 mkDir(outdir) |
41 let resourcedir = joinPath(projectDir(), RESOURCEROOT) | 41 let resourcedir = joinPath(projectDir(), RESOURCEROOT) |
42 if dirExists(resourcedir): | 42 if dirExists(resourcedir): |
43 let outdir_resources = joinPath(outdir, RESOURCEROOT) | 43 let outdir_resources = joinPath(outdir, RESOURCEROOT) |
44 if BUNDLETYPE == "dir": | 44 if PACKAGETYPE == "dir": |
45 cpDir(resourcedir, outdir_resources) | 45 cpDir(resourcedir, outdir_resources) |
46 elif BUNDLETYPE == "zip": | 46 elif PACKAGETYPE == "zip": |
47 mkDir(outdir_resources) | 47 mkDir(outdir_resources) |
48 for resource in listDirs(resourcedir): | 48 for resource in listDirs(resourcedir): |
49 let | 49 let |
50 oldcwd = getCurrentDir() | 50 oldcwd = getCurrentDir() |
51 outputfile = joinPath(outdir_resources, resource.splitPath().tail & ".zip") | 51 outputfile = joinPath(outdir_resources, resource.splitPath().tail & ".zip") |
68 if file.endsWith(".nim"): | 68 if file.endsWith(".nim"): |
69 exec(&"nim build -d:release {file}") | 69 exec(&"nim build -d:release {file}") |
70 | 70 |
71 task test_all, "Run all test programs": | 71 task test_all, "Run all test programs": |
72 for file in listFiles("tests"): | 72 for file in listFiles("tests"): |
73 if file.endsWith(".nim"): | 73 if file.endsWith(".nim") and not file.endsWith("test_resources.nim"): |
74 exec(&"nim build --run {file}") | 74 exec(&"nim build --run {file}") |
75 | |
76 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") | |
78 exec("nim build -d:BUILD_RESOURCEROOT=tests/resources -d:PACKAGETYPE=exe --run tests/test_resources.nim") | |
75 | 79 |
76 task clean, "remove all build files": | 80 task clean, "remove all build files": |
77 exec(&"rm -rf {BUILDBASE}") | 81 exec(&"rm -rf {BUILDBASE}") |
78 | 82 |
79 task publish, "publish all build": | 83 task publish, "publish all build": |
123 cpFile "src/vulkan_api/output/api.nim", "src/semicongine/core/api.nim" | 127 cpFile "src/vulkan_api/output/api.nim", "src/semicongine/core/api.nim" |
124 cpDir "src/vulkan_api/output/platform", "src/semicongine/vulkan/platform" | 128 cpDir "src/vulkan_api/output/platform", "src/semicongine/vulkan/platform" |
125 | 129 |
126 if getCommand() in ["c", "compile", "r", "dump", "check", "idetools"]: | 130 if getCommand() in ["c", "compile", "r", "dump", "check", "idetools"]: |
127 if defined(linux): | 131 if defined(linux): |
128 --d:VK_USE_PLATFORM_XLIB_KHR | 132 --d: VK_USE_PLATFORM_XLIB_KHR |
129 if defined(windows): | 133 if defined(windows): |
130 --d:VK_USE_PLATFORM_WIN32_KHR | 134 --d: VK_USE_PLATFORM_WIN32_KHR |