Building
Cloning
Clone the repository recursively to checkout all dependencies except libsodium:
Important
git clone --recursive https://github.com/aegis4ics/ssp21-cpp.git
Dependencies
All dependencies except for libsodium are provided as gitsubmodules and don't require separate installation.
All dependencies are available under compatible non-copyleft licenses.
Required
The following dependencies are required to build the core library and includes types in the external API:
Library | License | Required | Submodule | Function |
---|---|---|---|---|
ser4cpp | BSD-3 | yes | yes | low-level serialization routines |
exe4cpp | BSD-3 | yes | yes | event-loop (executor) abstractions |
log4cpp | BSD-3 | yes | yes | logging library with extensible log levels |
Optional
The following dependencies are only required for the proxy application, integration tests, etc:
Library | License | Required | Submodule | Function |
---|---|---|---|---|
libsodium | ISC | no | no | default cryptographic backend |
ASIO | Boost | no | yes | event loop + x-platform I/O |
yaml-cpp | MIT | no | yes | config file parsing in proxy |
argagg | MIT | no | yes | cmd line argument parser |
Install libsodium
You'll need to install libsodium if you intend to build the proxy application or run the integration tests.
Debian / Ubuntu
apt install libsodium
On Windows, download and install the prebuilt binaries. When invoking CMake, add the following flag so that libsodium can be located:
Windows
When invoking CMake, tell it where to find the installation, e.g.:
-Dsodium_DIR=C:\libs\libsodium-
<version #>
-msvc
(path will vary based on version)
Invoke CMake
CMake is used to generate a build system for your platform. Create a separate folder for your build artifacts, and then invoke CMake telling it where to find the root CMakeLists.txt file.
> cd ssp21-cpp > mkdir build; cd build > cmake ..
This will create your Makefile, Visual Studio Solution, etc. You can then build and install the library.
Build and install
The actual build command / proceedure depends on your platform, e.g. on Linux:
> sudo make install