Build and configuration¶
Build¶
xtensor
build supports the following options:
BUILD_TESTS
: enables thextest
andxbenchmark
targets (see below).DOWNLOAD_GTEST
: downloadsgtest
and builds it locally instead of using a binary installation.GTEST_SRC_DIR
: indicates where to find thegtest
sources instead of downloading them.XTENSOR_ENABLE_ASSERT
: activates the assertions inxtensor
.
All these options are disabled by default. Enabling DOWNLOAD_GTEST
or setting GTEST_SRC_DIR
enables BUILD_TESTS
.
If the BUILD_TESTS
option is enabled, the following targets are available:
- xtest: builds an run the test suite.
- xbenchmark: builds and runs the benchmarks.
For instance, building the test suite of xtensor
with assertions enabled:
mkdir build
cd build
cmake -DBUILD_TESTS=ON -DXTENSOR_ENABLE_ASSERT=ON ../
make xtest
Building the test suite of xtensor
where the sources of gtest
are located in e.g. /usr/share/gtest
:
mkdir build
cd build
cmake -DGTEST_SRC_DIR=/usr/share/gtest ../
make xtest
Configuration¶
xtensor
can be configured via macros, which must be defined before including any of its header. Here is a list of
available macros:
XTENSOR_ENABLE_ASSERT
: enables assertions in xtensor, such as bound check.DEFAULT_DATA_CONTAINER(T, A)
: defines the type used as the default data container for tensors and arrays.T
is thevalue_type
of the container andA
itsallocator_type
.DEFAULT_SHAPE_CONTAINER(T, EA, SA)
: defines the type used as the default shape container for tensors and arrays.T
is thevalue_type
of the data container,EA
itsallocator_type
, andSA
is theallocator_type
of the shape container.DEFAULT_LAYOUT
: defines the default layout (row_major, column_major, dynamic) for tensors and arrays. We strongly discourage using this macro, which is provided for testing purpose. Prefer defining alias types on tensor and array containers instead.