Skip to content

KISSB Build System

Welcome to KISSB, a pragmatic Script Oriented Build system based on the TCL script language.

KISSB provides users with a scripting language that is close to a classic terminal-based script, while being easy and quick to augment via packages and custom scripts. The goal is not to rewrite build systems for any existing programming language, but to provide a flexible scripted build system environment to run any existing toolchain.

A quick example of a build to run a python script:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
package require kissb.python3

log.info "Welcome to this project build script"


# Load a python venv (python should be installed)
python3.venv.init {
    log.info "Installing Requirements"
    python3.venv.require PySide6
}

# Run
python3.venv.run.script main.py
1
2
3
4
5
6
7
8
9
import sys
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QApplication, QLabel

if __name__ == "__main__":
    app = QApplication(sys.argv)
    label = QLabel("Hello World", alignment=Qt.AlignCenter)
    label.show()
    sys.exit(app.exec())

Then from the command line:

kissb

Language Agnostic Build System

KISSB is a flexible TCL scripting library aimed at building projects no matter which language, tool or output is desired.

It is distributed as a script library, standalone executable or docker image.

1
2
3
4
log.info "Loading script with commands"
source mylib.tcl

foo # Will print success message
1
2
3
def foo args {
    log.success "Done!"
}
1
2
3
4
5
6
7
## mylib.lib.tcl is loaded automatically as well-know named file
foolib # Will print success message

## mypackage.pkg.tcl can be loaded on-demand
package require mypackage 1.0

foopackage
1
2
3
4
# This file is loaded automatically
def foolib args {
    log.success "Done!"
}
1
2
3
4
5
6
package provide mypackage 1.0

# This file is loaded automatically
def foopackage args {
    log.success "Done!"
}

Flexible Language

Based on the TCL language, KISSB offers a very flexible API to create build work flows.

You can use or create build commands, hackable workflows and share your script libraries in your project, user space or directly through git.

KISSB comes with a set of well-known locations and file names for packages and libraries to quickly load scripts.