Build System Info

Configuring with CMake

See Building in the User Documentation.

Important CMake Targets

  • make: Builds Conduit.
  • make test: Runs unit tests.
  • make docs: Builds sphinx and doxygen documentation.
  • make install: Installs conduit libraries, headers, and documentation to CMAKE_INSTALL_PREFIX

Adding a Unit Test

  • Create a test source file in src/tests/{lib_name}/
  • All test source files should have a t_ prefix on their file name to make them easy to identify.
  • Add the test to build system by editing src/tests/{lib_name}/CMakeLists.txt

Running Unit Tests via Valgrind

We can use ctest’s built-in valgrind support to check for memory leaks in unit tests. Assuming valgrind is automatically detected when you run CMake to configure conduit, you can check for leaks by running:

ctest -D ExperimentalBuild
ctest -D ExperimentalMemCheck

The build system is setup to use src/cmake/valgrind.supp to filter memcheck results. We don’t yet have all spurious issues suppressed, expect to see leaks reported for python and mpi tests.

BLT

Conduit’s CMake-based build system uses BLT (https://github.com/llnl/blt).