-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathlitestore.nimble
80 lines (64 loc) · 2.26 KB
/
litestore.nimble
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import
strutils
import os
template thisModuleFile: string = instantiationInfo(fullPaths = true).filename
when fileExists(thisModuleFile.parentDir / "src/litestorepkg/lib/config.nim"):
# In the git repository the Nimble sources are in a ``src`` directory.
import src/litestorepkg/lib/config
else:
# When the package is installed, the ``src`` directory disappears.
import litestorepkg/lib/config
# Package
version = pkgVersion
author = pkgAuthor
description = pkgDescription
license = pkgLicense
bin = @[pkgName]
srcDir = "src"
skipDirs = @["test"]
installExt = @["nim", "c", "h", "json", "ico"]
# Dependencies
requires "nim >= 2.0.0", "db_connector", "nimgen", "duktape"
# Build
const
parallel = "" #"--parallelBuild:1 --verbosity:3"
compile = "nim c -d:release --opt:size " & parallel
linux_x64 = "--cpu:amd64 --os:linux --passL:-static"
windows_x64 = "--cpu:amd64 --os:windows"
macosx_x64 = ""
ls = "litestore"
doc = "LiteStore_UserGuide.htm"
db = "data.db"
ls_file = "litestore.nim"
zip = "zip -X"
proc shell(command, args = "", dest = "") =
exec command & " " & args & " " & dest
proc filename_for(os: string, arch: string): string =
return "litestore" & "_v" & version & "_" & os & "_" & arch & ".zip"
task windows_x64_build, "Build LiteStore for Windows (x64)":
shell compile, windows_x64, ls_file
task linux_x64_build, "Build LiteStore for Linux (x64)":
shell compile, linux_x64, ls_file
task macosx_x64_build, "Build LiteStore for Mac OS X (x64)":
shell compile, macosx_x64, ls_file
task release, "Release LiteStore":
echo "Generating Guide..."
shell "./build_guide"
echo "Preparing Data Store preloaded with Admin App..."
cd "src"
if db.fileExists():
db.rmFile
shell "litestore -d:admin import"
echo "\n\n\n WINDOWS - x64:\n\n"
windows_x64_buildTask()
shell zip, "$1 $2 $3 $4" % [filename_for("windows", "x64"), ls & ".exe", doc, db]
shell "rm", ls & ".exe"
echo "\n\n\n LINUX - x64:\n\n"
linux_x64_buildTask()
shell zip, "$1 $2 $3 $4" % [filename_for("linux", "x64"), ls, doc, db]
shell "rm", ls
echo "\n\n\n MAC OS X - x64:\n\n"
macosx_x64_buildTask()
shell zip, "$1 $2 $3 $4" % [filename_for("macosx", "x64"), ls, doc, db]
shell "rm", ls
echo "\n\n\n ALL DONE!"