Mercurial > games > semicongine
comparison config.nims @ 494:0c18638c7217
did: refactoring, move more from make to nimscript
| author | Sam <sam@basx.dev> |
|---|---|
| date | Sun, 15 Jan 2023 23:23:54 +0700 |
| parents | b4a972bd37d5 |
| children | 7f99b21a8777 |
comparison
equal
deleted
inserted
replaced
| 493:680c4b8ca28a | 494:0c18638c7217 |
|---|---|
| 1 import os | 1 import std/strformat |
| 2 import std/strutils | |
| 3 import std/os | |
| 2 | 4 |
| 3 const buildbase = "build" | 5 const BUILDBASE = "build" |
| 6 const DEBUG = "debug" | |
| 7 const RELEASE = "release" | |
| 8 const LINUX = "linux" | |
| 9 const WINDOWS = "windows" | |
| 4 | 10 |
| 5 proc compilerFlags() = | 11 proc compilerFlags() = |
| 6 switch("path", "src") | 12 switch("path", "src") |
| 7 switch("mm", "orc") | 13 switch("mm", "orc") |
| 8 switch("experimental", "strictEffects") | 14 switch("experimental", "strictEffects") |
| 17 proc compilerFlagsRelease() = | 23 proc compilerFlagsRelease() = |
| 18 switch("define", "release") | 24 switch("define", "release") |
| 19 switch("checks", "off") | 25 switch("checks", "off") |
| 20 switch("assertions", "off") | 26 switch("assertions", "off") |
| 21 | 27 |
| 22 task build_linux_debug, "build linux debug": | 28 task single_linux_debug, "build linux debug": |
| 23 compilerFlags() | 29 compilerFlags() |
| 24 compilerFlagsDebug() | 30 compilerFlagsDebug() |
| 25 buildbase.joinPath("debug/linux").mkDir() | 31 switch("outdir", BUILDBASE / DEBUG / LINUX) |
| 26 setCommand "c" | 32 setCommand "c" |
| 33 mkDir(BUILDBASE / DEBUG / LINUX) | |
| 27 | 34 |
| 28 task build_linux_release, "build linux release": | 35 task single_linux_release, "build linux release": |
| 29 compilerFlags() | 36 compilerFlags() |
| 30 compilerFlagsRelease() | 37 compilerFlagsRelease() |
| 31 buildbase.joinPath("release/linux").mkDir() | 38 switch("outdir", BUILDBASE / RELEASE / LINUX) |
| 32 setCommand "c" | 39 setCommand "c" |
| 40 mkDir(BUILDBASE / RELEASE / LINUX) | |
| 33 | 41 |
| 34 task build_windows_debug, "build windows debug": | 42 task single_windows_debug, "build windows debug": |
| 35 compilerFlags() | 43 compilerFlags() |
| 36 compilerFlagsDebug() | 44 compilerFlagsDebug() |
| 45 # for some the --define:mingw does not work from inside here... | |
| 46 # so we need to set it when calling the task and use "/" to prevent | |
| 47 # the use of backslash while crosscompiling | |
| 37 switch("define", "mingw") | 48 switch("define", "mingw") |
| 38 buildbase.joinPath("debug/windows").mkDir() | 49 switch("outdir", BUILDBASE & "/" & DEBUG & "/" & WINDOWS) |
| 39 setCommand "c" | 50 setCommand "c" |
| 51 mkDir(BUILDBASE & "/" & DEBUG & "/" & WINDOWS) | |
| 40 | 52 |
| 41 task build_windows_release, "build windows release": | 53 task single_windows_release, "build windows release": |
| 42 compilerFlags() | 54 compilerFlags() |
| 43 compilerFlagsRelease() | 55 compilerFlagsRelease() |
| 56 switch("outdir", BUILDBASE & "/" & RELEASE & "/" & WINDOWS) | |
| 44 switch("define", "mingw") | 57 switch("define", "mingw") |
| 45 buildbase.joinPath("release/windows").mkDir() | |
| 46 setCommand "c" | 58 setCommand "c" |
| 59 mkDir(BUILDBASE & "/" & RELEASE & "/" & WINDOWS) | |
| 47 | 60 |
| 48 compilerFlags() | 61 task build_all_linux_debug, "build all examples with linux/debug": |
| 62 for file in listFiles("examples"): | |
| 63 if file.endsWith(".nim"): | |
| 64 selfExec(&"single_linux_debug {file}") | |
| 65 | |
| 66 task build_all_linux_release, "build all examples with linux/release": | |
| 67 for file in listFiles("examples"): | |
| 68 if file.endsWith(".nim"): | |
| 69 selfExec(&"single_linux_release {file}") | |
| 70 | |
| 71 task build_all_windows_debug, "build all examples with windows/debug": | |
| 72 for file in listFiles("examples"): | |
| 73 if file.endsWith(".nim"): | |
| 74 exec(&"nim single_windows_debug --define:mingw {file}") | |
| 75 | |
| 76 task build_all_windows_release, "build all examples with windows/release": | |
| 77 for file in listFiles("examples"): | |
| 78 if file.endsWith(".nim"): | |
| 79 exec(&"nim single_windows_release --define:mingw {file}") | |
| 80 | |
| 81 task build_all_debug, "build all examples with */debug": | |
| 82 build_all_linux_debugTask() | |
| 83 build_all_windows_debugTask() | |
| 84 | |
| 85 task build_all_release, "build all examples with */release": | |
| 86 build_all_linux_releaseTask() | |
| 87 build_all_windows_releaseTask() | |
| 88 | |
| 89 task build_all_linux, "build all examples with linux/*": | |
| 90 build_all_linux_debugTask() | |
| 91 build_all_linux_releaseTask() | |
| 92 | |
| 93 task build_all_windows, "build all examples with windows/*": | |
| 94 build_all_windows_debugTask() | |
| 95 build_all_windows_releaseTask() | |
| 96 | |
| 97 task build_all, "build all examples": | |
| 98 build_all_linuxTask() | |
| 99 build_all_windowsTask() | |
| 100 | |
| 101 task clean, "remove all build files": | |
| 102 exec(&"rm -rf {BUILDBASE}") | |
| 103 | |
| 104 task publish, "publish all build": | |
| 105 exec("rsync -rv build/ basx.dev:/var/www/public.basx.dev/zamikongine") | |
| 106 | |
| 107 | |
| 108 if getCommand() == "c": | |
| 109 compilerFlags() |
