Building#

Prerequisites#

OpenFLY requires:

  • A C++17/20 compatible compiler that supports openMP 4.5+

  • cmake 3.14+

  • git

  • MPI installation

  • doxygen 1.9+ [optional, for documentation]

  • python 3.6+ [optional, for documentation]

Additionally openFLY has a number of dependencies which are managed automatically through vcpkg and git submodules.

Getting the source code#

First, download a copy of the source code using git:

git clone --recursive https://github.com/ConorWilliams/openFLY.git
git clone --recursive git@github.com:ConorWilliams/openFLY.git

then cd into the newly created folder:

cd openFLY

Compiling openFLY#

To build openFLY in release mode with:

First configure cmake (this will also fetch and build the vcpkg dependancies):

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=./external/vcpkg/scripts/buildsystems/vcpkg.cmake

Then compile the code:

cmake --build build

First configure cmake (this will also fetch and build the vcpkg dependancies):

cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=./external/vcpkg/scripts/buildsystems/vcpkg.cmake

Then compile the code:

cmake --build build --config Release

Note

MSVC by default is not standards compliant and you need to pass some flags to make it behave properly. See the flags-windows preset in the CMakePresets.json file for the flags and with what variable to provide them to CMake during configuration.

Documentation#

If you want to build a local version of the documentation you will require the optional Prerequisites

First you must install the required python packages:

pip3 install -r docs/requirements.txt

Then the documentation will build automatically when supplying the -DFLY_DOCS=ON to the configure step or in your CMakeUserPresets.json file if using Presets