README.md 4.57 KB
Newer Older
1 2
dynamic-graph
=============
3

Olivier Stasse's avatar
Olivier Stasse committed
4
[![Building status](https://gepgitlab.laas.fr/stack-of-tasks/dynamic-graph/badges/master/pipeline.svg)](https://gepgitlab.laas.fr/stack-of-tasks/dynamic-graph/commits/master)
Guilhem Saurel's avatar
Guilhem Saurel committed
5
[![Coverage report](https://gepgitlab.laas.fr/stack-of-tasks/dynamic-graph/badges/master/coverage.svg?job=doc-coverage)](http://projects.laas.fr/stack-of-tasks/doc/stack-of-tasks/dynamic-graph/master/coverage/)
6
[![License](https://img.shields.io/badge/License-BSD%202--Clause-green.svg)](https://opensource.org/licenses/BSD-2-Clause)
7

8 9 10
This software provides an efficient way to modelize a C++ data-flow.

A dynamic graph data-flow is composed of:
Thomas Moulard's avatar
Thomas Moulard committed
11 12
 * entities (graph nodes)
 * signals (input/output of a graph action)
13 14 15 16 17 18 19

Output signals can then be plugged into input signals to data
transmission.

An efficient caching mechanism avoid useless data recomputation and a
simple built-in language can be used to control the graph actions.

20
It is released under the [BSD-clause 2](COPYING.LESSER) license.
21 22


Thomas Moulard's avatar
Thomas Moulard committed
23 24 25 26 27
**Warning:** this repository contains [Git
submodules][git-submodules]. Please clone this repository using the
`git clone --recursive` command. If you already have cloned the
repository, you can run `git submodule init && git submodule update`
to retrieve the submodules.
28 29


Thomas Moulard's avatar
Thomas Moulard committed
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
Documentation
-------------

To get started with this library, please read the [online Doxygen
documentation][doxygen-documentation].

It can also be generated locally by running the `make doc`
command. After the package is installed, the documentation will be
located in the `$prefix/share/doc/dynamic-graph` directoy where
`$prefix` is your installation prefix (`/usr/local` by default).


Getting Help
------------

Olivier Stasse's avatar
Olivier Stasse committed
45
Support is provided through issues on the github interface.
Thomas Moulard's avatar
Thomas Moulard committed
46 47 48 49 50 51 52 53 54 55 56

How can I install dynamic-graph?
--------------------------------

### Installing dependencies

The matrix abstract layer depends on several packages which
have to be available on your machine.

 - Libraries:
   - [Boost][] (>= 1.40)
Olivier Stasse's avatar
Olivier Stasse committed
57 58 59
   - Doxygen
   - Eigen3
   - pthread
Thomas Moulard's avatar
Thomas Moulard committed
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
 - System tools:
   - [CMake][] (>=2.6)
   - [pkg-config][]
   - usual compilation tools (GCC/G++, make, etc.)
     If you are using Ubuntu, these tools are gathered in the `build-essential` package.



### Compiling and installing the package

The manual compilation requires two steps:

 1. configuration of the build and generation of the build files
 2. compilation of the sources and installation of the package

dynamic-graph uses [CMake][] to generate build files. It is
recommended to create a separate build directory:

```sh
mkdir _build         # (1) Create a build directory
cd _build            # (2) Go to the newly created build directory
cmake [options] ..   # (3) Generate the build files
```

Options which can be passed to CMake are detailed in the next section.

```sh
make                 # (4) Compile the package
make test            # (5) Execute the package tests
make install         # (6) Install the package into the prefix (see step 3)
```


### Options

Additional options can be set on the command line through the
following command: `-D<option>=<value>`.

For instance: `cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..` will set
the `CMAKE_BUILD_TYPE` option to the value `RelWithDebInfo`.


Available options are:

- `CMAKE_BUILD_TYPE` set the build profile that should be used (debug,
  release, etc.). We recommend `RelWithDebInfo` as it will provide
  performances while keeping debugging symbols enabled.
- `CMAKE_INSTALL_PREFIX` set the installation prefix (the directory
  where the software will be copied to after it has been compiled).


### Running the test suite

The test suite can be run from your build directory by running:

```sh
   make test
```

Please open a ticket if some tests are failing on your computer, it
should not be the case.


Contributing
------------

If you want to contribute, please refer to the
[CONTRIBUTING.md](CONTRIBUTING.md) file

Credits
-------

This package authors are credited in the [AUTHORS](AUTHORS) file.



Available Packages
------------------

Olivier Stasse's avatar
Olivier Stasse committed
139
 * RobotPkg :
Thomas Moulard's avatar
Thomas Moulard committed
140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
   http://robotpkg.openrobots.org/robotpkg/motion/dynamic-graph/index.html


[doxygen-documentation]: http://stack-of-tasks.github.io/dynamic-graph/doxygen/HEAD/

[git-submodules]: http://git-scm.com/book/en/Git-Tools-Submodules

[Boost]: http://www.boost.org/
[CMake]: htttp://www.cmake.org/
[Doxygen]: http://www.stack.nl/~dimitri/doxygen/
[Eigen]: http://eigen.tuxfamily.org/
[Git]: http://git-scm.com/
[Libtool]: https://www.gnu.org/software/libtool/
[RobotPkg]: http://robotpkg.openrobots.org/
[log4cxx]: https://logging.apache.org/log4cxx/
[pkg-config]: http://www.freedesktop.org/wiki/Software/pkg-config/