-
Notifications
You must be signed in to change notification settings - Fork 8
Building EACirc_eac3
EACirc 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, projects, and 3rd party libs.
EACirc 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 EACirc project the git tools are required and git must be found by CMake (on Windows, this means having git in the system PATH!).
Note: EACirc is mixing plain C and C++ source files (C files included by typical extern "C" method). Beware if you are using some other building system, since problems in linking may occur because of this.
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.
The EACirc output files are build to the run directory
along with their configuration files, ie <build_dir>/run
.
The test
target runs EACirc binary in the run directory as ./eacirc -test
but does not preserve output. To view and preserve output from tests run check
target instead.
You can build EACirc 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.
For development in some IDE (e.g. MS Visual Studio, Qt Creator, ...), use Cmake GUI to configure the project (select your IDE version). Cmake then automatically generates appropriate project files for you.
Some useful notes:
- Qt Creator on CMake uses CodeBlocks project files (.cbp). You can generate it when loading the CMake to Qt Creator and reconfigure it by ccmake later, as desired.
- MS Visual Studio supports multiple build types (e.g. Debug+Release), while in other IDEs (e.g. Qt Creator) you need to have a separate build folder for each type.
- As a back-end low-level build system, you can use ninja-build instead of GNU Make. It automatically runs in parallel and builds the project faster. Just use a different generator for cmake/ccmake (in linux, provide the arguments
-G Ninja
).
- gcc-4.9+
- clang-3.4+ (clang-3.5+ for building Oneclick)
- Apple LLVM version 7.3.0 (clang-703.0.31)
- msvc12 (Microsoft Visual Studio 2013)
- almost any with good c++11 support
See CUDA-support.
Change working directory of eacirc and oneclick targets to target directory for all configurations
Select eacirc target. Go to Project->Properties->Debugging
, change Configuration
to All Configurations
. Set Working Directory
to $(TargetDir)
. For oneclick target do the same.
When installing OpenSSL distribution for Windows, use one from the official website. Note that this site can be unreachable at times.
--
You are on EACirc 3 wiki!
--
Building notes
Running notes
Recommencing computation
--
Framework components
Circuit back-ends
Main computation loop
Projects
Evaluators
CUDA support
Testing
Known bugs
Third party libraries
I/O-Files structure
Java bytecode simulator
--
Project eStream
Project SHA-3
Project CAESAR
Project Files
--