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

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.Regex

  • Boost.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

CMAKE_CXX_COMPILER

Specifies the C++ compiler to use.

CMAKE_PREFIX_PATH

This semicolon-separated list specifies search paths for dependencies (Boost, Range-V3, etc.).

CMAKE_INSTALL_PREFIX

The installation path for SeQuant.

SEQUANT_TESTS

BUILD_TESTING

Enables test targets, e.g. check-sequant.

SEQUANT_EVAL_TESTS

OFF

Enables SeQuant evaluation tests using TiledArray and BTAS.

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 find_package(Boost ...); this is not recommended.

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