GithubHelp home page GithubHelp logo

jjdmol / hdbpp-es Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tango-controls-hdbpp/hdbpp-es

0.0 0.0 0.0 768 KB

Tango device server for the HDB++ Event Subscriber. Moved to https://gitlab.com/tango-controls/hdbpp/hdbpp-es

Home Page: http://www.tango-controls.org/community/projects/hdbplus

License: GNU General Public License v3.0

C++ 98.29% CMake 1.71%

hdbpp-es's Introduction

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 HDB++ 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

For more complex build, if you want cmake to fetch the dependencies, or to link against a specific backend, see the examples

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. 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++14 compatible compiler

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
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

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

Custom builds examples

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 ../

License

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

hdbpp-es's People

Contributors

bourtemb avatar chedburgh avatar dlacoste-esrf avatar gscalam avatar lorenzopivetta avatar sergirubio avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.