Tango device server for the HDB++ Event Subscriber
- See the Tango documentation here for broader information about the HDB++ archiving system and its integration into Tango Controls
- hdbpp-es CHANGELOG.md contains the latest changes both released and in development.
Please file bug reports above in the issues section.
In its simplest form, clone the repository and assuming a standard install for all dependencies:
cd hdbpp-es
mkdir build
cd build
cmake ../
make
make install
For more complex build, if you want cmake to fetch the dependencies, or to link against a specific backend, see the examples
The build system uses pkg-config to find some dependencies, for example Tango. If Tango is not installed to a standard location, set PKG_CONFIG_PATH, i.e.
export PKG_CONFIG_PATH=/non/standard/tango/install/location
...
cmake ../
...
The pkg-config path can also be set with the cmake argument CMAKE_PREFIX_PATH. This can be set on the command line at configuration time, i.e.:
...
cmake -DCMAKE_PREFIX_PATH=/non/standard/tango/install/location ../
...
Build dependencies:
- libhdbpp version 2 or greater. Not compatible with any version below this.
The build requires the libhdbpp project headers for building. There is two methods to include this dependency:
- libhdbpp can be installed in either a standard or non-standard location and cmake flags used to locate it.
- Enabled the custom cmake flag FETCH_LIBHDBPP (see below) and cmake will download the project at configuration time and integrate it directly into the build. This is ideal for testing the project in isolation from a deployed system.
Ensure the development version of the dependencies are installed. These are as follows:
- Tango Controls 9 or higher development headers and libraries
- omniORB release 4 or higher development headers and libraries
- libzmq3-dev or libzmq5-dev
If they have not been installed to a standard location, then use the pkg-config settings above to inform the build where they are located.
If wishing to build the project, ensure the following dependencies are met:
- CMake 3.6 or higher
- C++14 compatible compiler
Flag | Setting | Default | Description |
---|---|---|---|
ENABLE_CLANG | ON/OFF | OFF | Clang code static analysis and cppcore guideline enforcement |
FETCH_LIBHDBPP | ON/OFF | OFF | Download and build against libhdbpp locally |
LIBHDBPP_BACKEND | "backend_name" | "libhdbpp" | Backend to use for this build. Supported values are libhdbpp, timescale, mysql, cassandra. |
FETCH_LIBHDBPP_TAG | tag/branch | master | When FETCH_LIBHDBPP is enabled, this flag defines the tag/branch to download |
The build system is CMake therefore standard CMake flags can be used to influence the build and installation process. The following is a list of common useful CMake flags and their use:
Flag | Use |
---|---|
CMAKE_INSTALL_PREFIX | Standard CMake flag to modify the install prefix. |
CMAKE_INCLUDE_PATH | Standard CMake flag to add include paths to the search path. |
CMAKE_LIBRARY_PATH | Standard CMake flag to add paths to the library search path |
Here are some examples to demonstrate the use of the project flags.
In all the examples, the backends need to implement libhbpp v2.x at least and set the proper cmake variable as explained in libhdbpp example.
If you want to build and install your backend directly while building this project you can do:
cd hdbpp-es
mkdir build
cd build
cmake -DFETCH_LIBHDBPP=ON ../
make
make install
To fetch and build a specific backend you can use the LIBHDBPP_BACKEND flag to specify wich backend to use. The cmake command will look like (for timescale):
cmake -DFETCH_LIBHDBPP=ON -DLIBHDBPP_BACKEND=timescale ../
Finally, if you want to use a specific backend you already have installed, you don't need to fetch it. The cmake command will look like (for mysql):
cmake -DLIBHDBPP_BACKEND=mysql ../
The code is released under the GPL3 license and a copy of this license is provided with the code.