-
Notifications
You must be signed in to change notification settings - Fork 9
Build
EACirc-streams can be comfortably build using CMake (cmake.org) on Linux and Windows. The minimal supported version of CMake is 3.4.
The EACirc framework consists of core files, stream projects, and 3rd party libs.
EACirc-streams tool is self-version aware: to ease experiment replication, hash of the current git commit is build in the binary. The commit information is saved in file Version.h
and updated during generation of CMake files. To successfully configure, generate and build the project the git tools are required and git must be found by CMake.
Note: version tag is not updated automatically correctly, you need to reconfigure the project to update the tag.
If you are not familiar with basic workflow and usage of CMake please read the CMake Wiki.
To set debug or release mode for build please use standard CMake macro for it, ie. in terminal use cmake -DCMAKE_BUILD_TYPE=Release <source_dir>
or cmake -DCMAKE_BUILD_TYPE=Debug <source_dir>
.
By default all targets builds (3rd party libs, EACirc, and all projects). If you don't want or don't need to build any project there is a CMake option for it called BUILD_<TARGET>
, ie. BUILD_CAESAR
, BUILD_SHA3
, BUILD_ESTREAM
. You can turn on/off this option in cmake-gui or ccmake during configuration.
Note: CAESAR project is not supported now.
The EACirc output files are build to the run directory
along with their configuration files, ie <build_dir>/run
.
There are test
targets that are described at testing wiki page.
You can build EACirc-streams on Linux using cmake with the following sequence in the root project directory:
$ mkdir build && cd build
$ ccmake ..
(configure, alter settings as desired, generate)
$ make
You can use Cmake GUI (or CLI version called ccmake) to configure the project before the build if you feel uncomfortable with the command line. Modern IDEs cooperate with cmake out of the box.
- gcc-5+
- clang-3.4+
- Apple LLVM version 7.3.0 (clang-703.0.31)
- almost any with good c++14 support
We do not support build for MS VS. If you want help with MS VS build, write us or create an issue ;).
TODO
Getting started
Building notes
Running notes
Recommended scenarios
Configuration file structure
Developer notes
Framework components
Submodules
Third party libraries
Coding guide
Testing
Known bugs
User notes
List of streams
Block ciphers
Stream ciphers
Hash functions
PRNGs
WIP CAESAR
Useful links