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