Acrobatomatic Build System - introduction and training

ABS - overview

Generic tool for software builds and deliverable package generation.

Documentation: ABS manual. .

ABS is designed by a lazy coder, for lazy coders.

Project files layout

Never add to revision control:

  • .abs , abs-cache , local.cfg : ABS local copy and configuration
  • build : workspace build output directory
  • dist : deliverable packages output directory

Project configuration files:

  • app.cfg : application level configuration parameters
  • module.cfg : module level configuration parameters

Main configuration parameters

Application level

Parameter Value Description
APPNAME string Application name
VERSION X.Y.Z Application version
USELIB string Dependencies (libA-X.Y.Z libB-X.Y.Z etc)
EXPMOD string List of "public" modules
VABS, ABS_REPO X.Y, URL Version of ABS to use, ABS download repository location

Module level

Parameter Value Description
MODNAME string Module name
MODTYPE exe / library / fileset / ... Module type
USEMOD string list of required modules from the same application
LINKLIB string Libraries to link with (use short name: foo for libfoo.so)

Main targets

Application level:

Target Description
all Default target: build all modules (all target of each module)
clean Clean all outputs (delete build and dist directories)
dist Build the library deliverable package
distinstall Build the application installation package, including all dependencies.

Module level:

Target Description
all Build the module
clean Delete the build outputs (related to the module only)
run Launch application (when module is an executable or a lua binded library)
test build and run unit tests

Exercise 1 - explore sampleprj (1/2)

Checkout abs:

Build project, run some tests...

Edit configuration parameters from app.cfg and module.cfg files and see what happens...

Do not commit, sampleprj is used for ABS validation.

Exercise 1 - explore sampleprj (2/2)

Go back to the project root and remove your local changes

Build installation package and install software to a temporary location

Explore installation and launch installed application

Installed application file layout is a standard unix layout.

No need to set library search path, search path is embedded in the built binaries.

More targets

Application level

Target Argument Description
newmod <module name> Create a new empty module
test Launch all modules' unit tests
cint Full build, test and packaging (designed to be used from jenkins)

Module level

Target Argument Description
newclass <class name> Create a new class (for C/C++/Java modules)
newtest <class name> Create a new Test for the given class name.
debug Run application from gdb
debugtest Run unit tests from gdb
help display online help
checkdep display application dependency graph

Exercise 2 - create new ABS managed project

Perform the following steps:

Writing unit tests with cppunit

Running tests

Good practices, tips and tricks

Test tips:

Short naming:

Project documentation

Project documents can be managed as any source code file:

Current presentation has been written using this feature!

Exercise 3 - Editing HEML documents