tasks/build.min
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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
#!/usr/bin/env min
"_helpers" load
'helpers import
(
:target-os
:variant
" " :d-variant
"min" :o-variant
(variant length 0 >) (
"-d:$# " (variant) =% @d-variant
"$#min" (variant) =% @o-variant
) when
"nim" required
"Building $# - $# (x64)" (o-variant target-os) =% notice
"" :musl
"musl-gcc" :musl-gcc
(musl-gcc length 0 >)
("--gcc.exe:musl-gcc --gcc.linkerexe:musl-gcc" @musl)
when
"nim c -d:release -d:ssl $# --cpu:amd64 --os:$# $#-o:$# min" (musl target-os d-variant o-variant) =% puts !
{}
target-os %os
config /version %version
o-variant %exe
pack
) :cz
(
:vdata
vdata /exe :exe
(vdata /os "windows" ==) ("$#.exe" (exe) =% @exe) when
"$exe:_v$version:_$os:_x64.zip" :fn
fn vdata dpairs % ":" "" replace @fn
"Compressing: $#" (fn) =% notice
(exe) => fn zip
) :pack
(
"hastyscribe" required
"Building - guide" notice
"hastyscribe Min_DeveloperGuide.md --field/version=$#" (version) =% !
!"cp Min_DeveloperGuide.htm site/output/guide.dev.html"
) :build-guide
(
"hastysite" required
"Building - site" notice
"cd site && hastysite build && cd .." !
) :build-site
(
config /version :min-version
"tasks/templates/min.vim" fread :template
timestamp "dd MMM YYYY" tformat :date
min-symbols " " join :symbols
"min.vim" :out-file
"Building - min.vim" notice
template ("date" date "version" min-version "symbols" symbols) =% out-file fwrite
) :build-vim
; Module symbols
{}
(
"lite" os cz
) %lite
(
"mini" os cz
) %mini
(
"" os cz
) %default
(
"" "linux" cz
) %linux
(
"lite" "linux" cz
) %linux-lite
(
"mini" "linux" cz
) %linux-mini
(
"" "macosx" cz
) %macosx
(
"lite" "macosx" cz
) %macosx-lite
(
"mini" "macosx" cz
) %macosx-mini
(
"" "windows" cz
) %windows
(
"lite" "windows" cz
) %windows-lite
(
"mini" "windows" cz
) %windows-mini
'build-guide %guide
'build-site %site
(
build-guide
build-site
) %docs
(
build-vim
) %vim
+build-tasks
|