/hdbpp-es

Tango device server for the HDB++ Event Subscriber

Primary LanguageC++GNU General Public License v3.0GPL-3.0

hdbpp-es

TangoControls License: GPL v3 Download

Tango device server for the HDB++ Event Subscriber

Documentation

  • See the Tango documentation here for broader information about the HB++ archiving system and its integration into Tango Controls
  • hdbpp-es CHANGELOG.md contains the latest changes both released and in development.

Bugs Reports

Please file bug reports above in the issues section.

Building and Installation

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

pkg-config Settings

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

Build dependencies:

  • libhdbpp version 2 or greater. Not compatible with any version below this.

The build requires the libhdbpp project headers for building and shared library to link against. 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.

Toolchain Dependencies

If wishing to build the project, ensure the following dependencies are met:

  • CMake 3.6 or higher
  • C++11 compatible compiler (Tango dependency requires CX11)

Project Flags

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
FETCH_LIBHDBPP_TAG tag/branch master When FETCH_LIBHDBPP is enabled, this flag defines the tag/branch to download

Standard CMake Flags

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

License

The code is released under the GPL3 license and a copy of this license is provided with the code.