ZIO Installation
Table of Contents
1 Install ZIO
ZIO installs in the usual Waf way.
$ ./waf configure --prefix=/path/to/install $ ./waf install
To build, these software dependencies will be located via pkg-config.
In addition, ZIO uses cppzmq and nlohmann/json and directly includes copies of these header-only packages.
See also 5 for info on installing the software dependencies.
2 Tests
The default install target will compile and execute units tests. To
avoid running these tests you may add --notests
as:
$ ./waf install --notests
Or, to force their running:
3 Documentation
The generated documentation committed to the repository. With a suitable environment (need Emacs and a recent plantuml) one can rebuild it:
$ cd docs $ make
4 Python
ZIO also provides a Python package.
4.1 Install from source
The ZIO Python package installs in "the usual way" from source but its dependencies need some particular care. ZIO makes use of PyZMQ, the Python bindings to libzmq and because ZIO requires ZeroMQ "draft" sockets, PyZMQ needs to be installed manually in order to enable them as well as point to an installation of libzmq which includes them.
$ python3 -m venv /path/to/venv $ source /path/to/venv/bin/activate $ cd zio/python $ pip install --pre pyzmq \ --install-option=--enable-drafts \ --install-option=--zmq=/path/to/zmq $ pip install -r requirements.txt $ pip install [-e] .
In the above, replace /path/to
with paths suitable for your
environment. Use -e
option to do in-place development on the zio
Python module.
The zio
Python module has unit tests which can be run as:
$ cd zio/python/tests $ python -m unittest
4.2 Python Package Index
At some point ZIO may be placed in PyPI. Currently there is an unsurprising name conflict with "ZIO". For now, just know that the four year untouched package currently holding the name ZIO is totally unrelated to this here project.
5 Installation Details
5.1 spdlog
For now, ZIO uses spdlog after (and not including) version 1.5.0 which
may mean installing from tip of its git master
branch. ZIO will
likely switch to the next explicit release post-1.5.0 when it is
available.
$ git clone https://github.com/gabime/spdlog.git $ mkdir spdlog/build && cd spdlog/build $ cmake .. \ -DCMAKE_INSTALL_PREFIX=$HOME/opt/spdlog \ -DCMAKE_POSITION_INDEPENDENT_CODE=ON $ make -j $ make install
For ZIO to find spdlog
be sure that you add its pkg-config
directory
to the proper variable (along with others). Eg:
$ export PKG_CONFIG_PATH=$HOME/opt/spdlog/lib/pkgconfig:$HOME/opt/zmq/lib/pkgconfig