Skip to main content

issundb_graphblas_sys/
lib.rs

1//! Raw FFI bindings to SuiteSparse:GraphBLAS (Apache-2.0).
2//!
3//! The C library source is vendored as the `external/GraphBLAS` git submodule and
4//! built from source by `build.rs` as a position-independent static library with a
5//! dynamically linked OpenMP runtime, so the resulting objects link cleanly into
6//! shared objects (the Python extension `cdylib`). The OpenMP runtime is resolved
7//! per platform (`libgomp` with GCC on Linux, `libomp` with Apple Clang on macOS,
8//! and `vcomp` with MSVC on Windows). Bindings are generated by `bindgen` over
9//! `Include/GraphBLAS.h`.
10//!
11//! This crate replaces the non-permissive `suitesparse_graphblas_sys`. It exposes
12//! the raw C API; the safe surface lives in `issundb-graphblas`.
13
14#![allow(non_upper_case_globals)]
15#![allow(non_camel_case_types)]
16#![allow(non_snake_case)]
17#![allow(dead_code)]
18// bindgen emits `u128` for the C `long double`/complex helpers (`creall`, etc.),
19// which Rust flags as not-FFI-safe. The engine never calls those helpers; silence
20// the noise from the generated bindings.
21#![allow(improper_ctypes)]
22#![allow(clippy::all)]
23
24include!(concat!(env!("OUT_DIR"), "/bindings.rs"));