Installation Guide¶
Short Version¶
To build and install SeQuant, run the following commands in the source directory:
cmake -B build -S .
cmake --build build
cmake --build build --target install
Prerequisites¶
Mandatory¶
CMake 3.27 or later
Boost 1.81 or later
Range-V3 0.12.0 or later
Utfcpp 4.0 or later
DTL 1.12 or later - only used for unit tests
CLI11 2.0 or later - only used for external interface
spdlog - only used for external interface
nlohmann::json 3.0 or later - only used for external interface
Note
SeQuant can download and build Boost if configured with Boost_FETCH_IF_MISSING=ON, but the use of Boost provided by the system package manager is recommended. The following non-header-only Boost libraries are required, hence Boost must be configured/built:
Boost.RegexBoost.Locale
Optional¶
TiledArray - for building coupled-cluster evaluation tests
Note
If not found, SeQuant can download and build Range-V3, libperm, polymorphic_variant, DTL and TiledArray.
Useful CMake Variables¶
CMake Variable |
Default |
Description |
|---|---|---|
Specifies the C++ compiler to use. |
||
This semicolon-separated list specifies search paths for dependencies (Boost, Range-V3, etc.). |
||
The installation path for SeQuant. |
||
SEQUANT_TESTS |
Enables test targets, e.g. |
|
SEQUANT_EVAL_TESTS |
OFF |
Enables SeQuant evaluation tests using |
SEQUANT_MIMALLOC |
OFF |
Use mimalloc for fast memory allocation. |
SEQUANT_BUILD_DOCS |
OFF |
Enables building of the documentation. See Documentation Guide for detailed information. |
SEQUANT_PYTHON |
OFF |
Enables building of Python bindings. |
SEQUANT_USE_SYSTEM_BOOST_HASH |
ON |
Use system Boost for hashing? Set to OFF to make hashing independent of Boost, thus value-portable |
SEQUANT_IWYU |
OFF |
Whether to use the include-what-you-use tool (if found) |
Boost_FETCH_IF_MISSING |
OFF |
If set to ON, SeQuant will download and build Boost if it is not found by |
ENABLE_TBB |
OFF |
Enable TBB as an optional prerequisite for C++’s parallel STL |
SEQUANT_CONTEXT_MANIPULATION_THREADSAFE |
ON |
If set to OFF the default context must be initialized and manipulated from single thread only (most users will want to do this). |
Configuring and Building¶
To configure and build SeQuant, you can use various CMake variables to customize the build process. These variables can be set using the -D flag when running the cmake command. For example:
cmake -B build -S . -D<VARIABLE_NAME>=<VALUE>
Now you can build SeQuant running the following command in the source directory:
cmake --build build -S .
cmake --build build --target check-sequant # for testing
cmake --build build --target install