causal C++ runtime
causal runtime

LICENSE

GNU AFFERO GENERAL PUBLIC LICENSE Version 3

Causal is a runtime written in C++ dedicated to make aspects of information interact in frame of a selfsynchronizing non linear system.

causal-rt.org

Get

git clone --recurse-submodules -j8 https://git.tuxfamily.org/causal/causal-cpp.git
cd causal-cpp

For building examples please see CI/CD

Requirements (Debian/Parrot)

sudo apt install libboost-dev libboost-stacktrace-dev libmsgpack-dev nlohmann-json3-dev liblmdb-dev libgtest-dev libgmock-dev openssl libssl-dev libopendht-dev

Optional (Debian/Parrot)

# for GTK support
sudo apt install libgtkmm-3.0-dev
# for Qt5 Quick support
sudo apt install qtbase5-dev qtdeclarative5-dev qtquickcontrols2-5-dev qml-module-qtquick2 qml-module-qtquick-controls qml-module-qtquick-controls2
# for Doxygen build
sudo apt install doxygen graphviz

Build

# download and install android dependencies (NDK, SDK)
./install.sh android
# download and install cmake 3.21.3
# required for building android version if systems cmake <3.21
./install.sh cmake
# download and build dependencies into ./contrib/x86_64-linux-gnu
# not required when all requirements are provided by system
# contrib system does not provide GTK libraries why causal GTK bindings will not get built
./build.sh dep
# OR
# download and build dependencies for android into ./contrib/aarch64-linux-android
./build.sh depandroid
# you could either use complete builds
## configure and build for linux x64 using provided contrib build and gcc
./build.sh linux_gcc
## OR
## configure and build for linux x64 using provided contrib build and clang
./build.sh linux_clang
## OR
## configure and build for android
./build.sh android
# OR for development you could use separate build steps
## configure for gcc debug build using requirements provided by system
./configure.sh gcc_debug
## OR
## configure for clang release build using requirements provided by system
./configure.sh clang_release
## build
./build.sh
## generate doxygen documentation
./build.sh doc

Compiler Notes

GCC >= 10 and Clang >= 11 are supported.