README.md 1.81 KB
Newer Older
Erwan Croze's avatar
Erwan Croze committed
1 2
[![pipeline status](https://gitlab.linphone.org/BC/public/belr/badges/master/pipeline.svg)](https://gitlab.linphone.org/BC/public/belr/commits/master)

François Grisez's avatar
François Grisez committed
3 4 5
What's Belr
===========

Simon Morlat's avatar
Simon Morlat committed
6
Belr is Belledonne Communications' language recognition library, written in C++11.
François Grisez's avatar
François Grisez committed
7 8
It aims at parsing any input formatted according to a language defined by an ABNF grammar,
such as the protocols standardized at IETF.
Simon Morlat's avatar
Simon Morlat committed
9
The recognized language elements are notified to the application through std::function provided to the parser by the application.
10 11 12 13

It is based on finite state machine theory and heavily relies on recursivity from an implementation standpoint.


François Grisez's avatar
François Grisez committed
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
Dependencies
============

- *bctoolbox[1]*: our portability layer


Build Belr
==========

		cmake . -DCMAKE_INSTALL_PREFIX=<prefix> -DCMAKE_PREFIX_PATH=<search_prefixes>
		
		make
		make install


Build options
=============

* `CMAKE_INSTALL_PREFIX=<string>`: install prefix
* `CMAKE_PREFIX_PATH=<string>`: column-separated list of prefixes where to search for dependencies
* `ENABLE_SHARED=NO`: do not build the shared library
* `ENABLE_STATIC=NO`: do not build the static library
* `ENABLE_STRICT=NO`: build without strict compilation flags (-Wall -Werror)
* `ENABLE_TOOLS=NO`: do not build tools (belr-demo, belr-parse)


Note for packagers
==================

Our CMake scripts may automatically add some paths into research paths of generated binaries.
To ensure that the installed binaries are striped of any rpath, use `-DCMAKE_SKIP_INSTALL_RPATH=ON`
while you invoke cmake.

jehan's avatar
jehan committed
47 48 49 50 51 52 53 54 55
Rpm packaging
belr can be generated with cmake3 using the following command:
mkdir WORK
cd WORK
cmake3 ../
make package_source
rpmbuild -ta --clean --rmsource --rmspec belr-<version>-<release>.tar.gz


56

François Grisez's avatar
François Grisez committed
57
-----------------------
58

Simon Morlat's avatar
Simon Morlat committed
59
* [1] git://git.linphone.org/bctoolbox.git or <http://www.linphone.org/releases/sources/bctoolbox>