Getting Started - osvaldoandrade/ova-lib GitHub Wiki
Getting Started
Read this page first when you need to build the library, run the tests, install headers and libraries, or find a working usage pattern before reading a module page.
Build from Source
If your CMake installation supports presets, configure and build with:
cmake --preset dev
cmake --build build/dev
If you want the direct path, use:
mkdir -p build
cmake -S . -B build
cmake --build build
The build emits a static library and a shared library under the build tree.
Install
If you want headers, libraries, and the pkg-config file under a prefix, run:
cmake --install build/dev --prefix /usr/local
The install step copies public headers into include, libraries into lib, and ova-lib.pc into lib/pkgconfig.
Run the Tests
Run the suite through CTest:
ctest --test-dir build/dev --output-on-failure
If Valgrind was available when the build tree was configured, the extra target is:
cmake --build build/dev --target memcheck
Find Usage Patterns
The fastest way to see how a module is used is to read its matching test file.
test/test_array_list.c, test/test_queue.c, test/test_hash.c, test/test_graph_algorithms.c, test/test_matrix.c, and test/test_solver.c show real constructor calls, empty-case checks, and cleanup patterns. The tests are short enough to read before writing the first call site.
Read the Code in the Right Order
Read include/ for the contract, src/ for the implementation, and test/ for usage and boundary behavior.
If you already know the problem category, go from here to Containers, Associative-Structures, Graphs, or Numerics-and-Optimization. If the real question is ownership or callback semantics, go to API-Conventions first.