BUM

HELP

BUM accepts a list of words using the following grammar:

$ bum BUM Lean 4 build tool invoke = bum | bum list | bum lean-path | bum gitignore list = [] | command [options] list command = app (zero|n2o|nitro) | dep | olean [recur] [force] | compile [force] | clean [recur] | start

Where:

  • (a|…) represents a or …
  • [a|…] represents a or … or nothing

CONFIG FILE

BUM configuration file consists of lines in the folowwing form: {key,value}. In the configuration file should be following keys: app, build, files. Also there can be following optional definitions: deps, src-dir, deps-dir and cpp-libs. This is configuration file for NITRO sample application:

{app, NITRO}. {build, lib}. {deps, [{n2o, {git, "https://github.com/o89/n2o"}}]}. {files, [NITRO/Tags.lean, NITRO/Elements.lean, NITRO/JavaScript.lean, NITRO/Proto.lean, NITRO/Default.lean]}.

Known definitions:

APP

Create a predefined sample application. BUM has three built-in sample applications: zero, n2o and nitro:

$ bum app zero Cloning into '.'... remote: Enumerating objects: 10, done. remote: Counting objects: 100% (10/10), done. remote: Compressing objects: 100% (9/9), done. remote: Total 10 (delta 0), reused 10 (delta 0), pack-reused 0 Unpacking objects: 100% (10/10), done. OK

DEP

Recusively download application dependencies.

$ bum dep ==> downloading n2o (of sample-n2o) Cloning into 'deps/n2o'... remote: Enumerating objects: 144, done. remote: Counting objects: 100% (144/144), done. remote: Compressing objects: 100% (91/91), done. remote: Total 566 (delta 59), reused 116 (delta 39), pack-reused 422 Receiving objects: 100% (566/566), 114.28 KiB | 436.00 KiB/s, done. Resolving deltas: 100% (219/219), done. ==> dependency: n2o OK

COMPILE

Recusively compile application dependencies (that have not yet been compiled) and application. force option turns off checking of last write time.

START

Start application if its build type is exec and it is compiled.

CLEAN

Remove all .olean, .cpp (if they are generated from .lean files) and .o files from current project and all project dependencies if clean was called with the recur option.

OLEAN

Generate .olean files. This is useful when the project is, for example, a mathematical library. recur option behaves in the same way as in the clean command. force behaves as in compile.