Installation

Although xtensor is a header-only library, we provide standardized means to install it, with package managers or with cmake.

Besides the xtensor headers, all these methods place the cmake project configuration file in the right location so that third-party projects can use cmake’s find_package to locate xtensor headers.

_images/conda.svg

Using the conda-forge package

A package for xtensor is available on the mamba (or conda) package manager.

mamba install -c conda-forge xtensor
_images/debian.svg

Using the Debian package

A package for xtensor is available on Debian.

sudo apt-get install xtensor-dev
_images/spack.svg

Using the Spack package

A package for xtensor is available on the Spack package manager.

spack install xtensor
spack load --dependencies xtensor
_images/cmake.svg

From source with cmake

You can also install xtensor from source with cmake. This requires that you have the xtl library installed on your system. On Unix platforms, from the source directory:

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=path_to_prefix ..
make install

On Windows platforms, from the source directory:

mkdir build
cd build
cmake -G "NMake Makefiles" -DCMAKE_INSTALL_PREFIX=path_to_prefix ..
nmake
nmake install

path_to_prefix is the absolute path to the folder where cmake searches for dependencies and installs libraries. xtensor installation from cmake assumes this folder contains include and lib subfolders.

See the Build and configuration section for more details about cmake options.

Although not officially supported, xtensor can be installed with MinGW:

mkdir build
cd build
cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=path_to_prefix ..
mingw32-make
mingw32-make install

Including xtensor in your project

The different packages of xtensor are built with cmake, so whatever the installation mode you choose, you can add xtensor to your project using cmake:

find_package(xtensor REQUIRED)
target_include_directories(your_target PUBLIC ${xtensor_INCLUDE_DIRS})
target_link_libraries(your_target PUBLIC xtensor)