comparison semiconginev2/core/buildconfig.nim @ 1218:56781cc0fc7c compiletime-tests

did: renamge main package
author sam <sam@basx.dev>
date Wed, 17 Jul 2024 21:01:37 +0700
parents semicongine/core/buildconfig.nim@a3eb305bcac2
children 55896320c8bf
comparison
equal deleted inserted replaced
1217:f819a874058f 1218:56781cc0fc7c
1 const ENGINENAME = "semicongine"
2
3 # checks required build options:
4 static:
5 assert compileOption("threads"), ENGINENAME & " requires --threads=on"
6 assert defined(nimPreviewHashRef), ENGINENAME & " requires -d:nimPreviewHashRef"
7
8 if defined(release) or defined(windows):
9 assert compileOption("app", "gui"), ENGINENAME & " requires --app=gui for release builds and all windows builds"
10
11
12 if defined(linux):
13 assert defined(VK_USE_PLATFORM_XLIB_KHR), ENGINENAME & " requires --d:VK_USE_PLATFORM_XLIB_KHR for linux builds"
14 elif defined(windows):
15 assert defined(VK_USE_PLATFORM_WIN32_KHR), ENGINENAME & " requires --d:VK_USE_PLATFORM_WIN32_KHR for windows builds"
16 else:
17 assert false, "trying to build on unsupported platform"
18
19 # build configuration
20 # =====================
21
22 # compile-time defines, usefull for build-dependent settings
23 # can be overriden with compiler flags, e.g. -d:Foo=42 -d:Bar=false
24 # pramas: {.intdefine.} {.strdefine.} {.booldefine.}
25
26 # root of where settings files will be searched
27 # must be relative (to the directory of the binary)
28 const DEBUG* {.booldefine.} = not defined(release)
29 const CONFIGROOT* {.strdefine.}: string = "."
30 assert not isAbsolute(CONFIGROOT)
31
32 const CONFIGEXTENSION* {.strdefine.}: string = "ini"
33
34 # by default enable hot-reload of runtime-configuration only in debug builds
35 const CONFIGHOTRELOAD* {.booldefine.}: bool = DEBUG
36
37 # milliseconds to wait between checks for settings hotreload
38 const CONFIGHOTRELOADINTERVAL* {.intdefine.}: int = 1000
39
40 # log level
41 const LOGLEVEL {.strdefine.}: string = "Warn"
42 const ENGINE_LOGLEVEL* = parseEnum[Level]("lvl" & LOGLEVEL)
43
44 # resource bundleing settings, need to be configured per project
45 const PACKAGETYPE* {.strdefine.}: string = "exe" # dir, zip, exe
46 static:
47 assert PACKAGETYPE in ["dir", "zip", "exe"], ENGINENAME & " requires one of -d:PACKAGETYPE=dir -d:PACKAGETYPE=zip -d:PACKAGETYPE=exe"