- C 98.5%
- CMake 1.2%
- Shell 0.2%
- Makefile 0.1%
|
All checks were successful
test / test (push) Successful in 9s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .forgejo/workflows | ||
| include | ||
| src | ||
| tests | ||
| .gitignore | ||
| clanggen.sh | ||
| CMakeLists.txt | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
libflint
My personal library of common C data structures and algorithms. Supports Linux, macOS, OpenBSD, and FreeBSD.
Documentation
Extensive documentation can be found here. You can also check out the per-module test files in tests/ for example usage.
Building
libflint requires Cmake to be built. It can then be built using either cmake or make with the provided build files. The Makefile is a wrapper around Cmake for Makefile compatibility.
Cmake
If libflint is in ./lib/libflint
add_subdirectory(lib/libflint)
when building target...
target_include_directories(${TARGET} PRIVATE lib/libflint/include) target_link_libraries(${TARGET} PRIVATE flint )
Testing
cmake -B build && cmake --build build
ctest --test-dir build # run all tests
ctest --test-dir build --parallel # run in parallel
ctest --test-dir build --label-exclude slow # skip slow tests (network, macos)
Requirements
Building on Linux requires libbsd. Building on macOS, OpenBSD, or FreeBSD requires no extra dependencies.
Libraries
libflint includes uthash for a hash table implementation. uthash is a single header file included in the source code of libflint. See the top of include/uthash.h for license information