Third Party Libraries and PackagesΒΆ
Ginkgo relies on third party packages in different cases. These third party packages can be turned off by disabling the relevant options.
-DGINKGO_BUILD_TESTS=ON
: Our tests are implemented with Google Test;-DGINKGO_BUILD_BENCHMARKS=ON
: For argument management we use gflags and for JSON parsing we use nlohmann-json;-DGINKGO_BUILD_HWLOC=ON
: hwloc to detect and control cores and devices.-DGINKGO_BUILD_HWLOC=ON
and-DGINKGO_BUILD_TESTS=ON
: libnuma is required when testing the functions provided through MachineTopology.-DGINKGO_BUILD_EXAMPLES=ON
: OpenCV is required for some examples, they are disabled when OpenCV is not available.-DGINKGO_BUILD_DOC=ON
: doxygen is required to build the documentation and additionally graphviz is required to build the class hierarchy graphs.METIS is required when using the
NestedDissection
reordering functionality. If METIS is not found, the functionality is disabled.PAPI (>= 7.1.0) is required when using the
Papi
logger. If PAPI is not found, the functionality is disabled.
Ginkgo attempts to use pre-installed versions of these package if they match
version requirements using find_package
. Otherwise, the configuration step
will download the files for each of the packages GTest
, gflags
, and
nlohmann-json
and build them internally.
Note that, if the external packages were not installed to the default location,
the CMake option -DCMAKE_PREFIX_PATH=<path-list>
needs to be set to the
semicolon (;
) separated list of install paths of these external packages. For
more Information, see the CMake documentation for
CMAKE_PREFIX_PATH
for details.
For convenience, the options GINKGO_INSTALL_RPATH[_.*]
can be used
to bind the installed Ginkgo shared libraries to the path of its dependencies.