Creating the source distribution from the code in the VCS¶
This section describes how to create an Imebra Source Distribution containing the full C++source code, the Java wrappers for Android, the HTML documentation, the test units code coverage information.
The Imebra image is built on Ubuntu 16.04 with the following apt packages:
Additionally, two Python packages must be present (installable with pip):
In order to install the packages, type the following commands as root or prepend them with sudo:
apt-get install mercurial apt-get install doxygen apt-get install g++ apt-get install lcov apt-get install python apt-get install python-pip apt-get install python-sphinx pip install breathe pip install sphinx_rtd_theme apt-get install libgtest-dev apt-get install ant apt-get install cmake apt-get install swig
Then clone the Imebra mercurial repository:
hg clone https://bitbucket.org/binarno/imebra
Finally, cd into the imebra folder and execute ant to build the source distribution that includes:
full C++ source code
generated Java source code for the Android wrapper
code coverage report
cd imebra ant
Public releases of Imebra V4 are versioned according to the rules defined in Semantic versioning.
Additionally, Imebra distributions contain a 4th number that indicates the branch revision number and is used to identify builds that don’t contain any change in the library’s source code and interface but contains changes in the auxiliary files (e.g. changes in the documentation, tests units, etc).
Nightly releases are versioned as public releases but their minor version or patch number are set to 999 (the master branch or the major version branches have a minor version set to 999, the minor version branches have a patch number set to 999).
version 184.108.40.206 indicates a stable build, built from the revision 23of the branch “4.1.2”
version 4.1.999.45 indicates a nightly build of version 4.1, build from the commit number 45 in the branch.
version 4.999.999.678 indicates a nightly build of version 4 (master branch), build from the commit number 678 in the branch.