all repos — min @ 3291b82eb49fb6268c8d8a7da27e207413c91eb2

A small but practical concatenative programming language.

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
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
#!/usr/bin/env min

"_helpers" load 
'helpers import

(
  :target-os
  :variant
  :stage
  "-d:release" :d-stage
  (stage "dev" ==)
    ("-d:dev" @d-stage)
  when
  " " :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" which :musl-gcc
  (musl-gcc length 0 >)
    ("--gcc.exe:musl-gcc --gcc.linkerexe:musl-gcc" @musl)
  when
  "nim c $# -d:ssl $# --cpu:amd64 --os:$# $#-o:$# min" (d-stage musl target-os d-variant o-variant) =% puts !
  {}
    target-os %os
    config /version %version
    o-variant %exe
  (stage "dev" !=)
    (pack)
  when
) :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
(
  "dev" "" os cz
) %dev
(
  "" "" 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