Build System Info¶
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).