In rust_q_sim I am using metis-rs as a dependency. Since this crate is a Binding to the Metis-C-Library, the metis-sys crate has a dependency on bindgen v0.58
. The rust_q_sim
project also has a dependency on the rsmpi
crate which itself is a wrapper for the MPI-C api. This project also uses bindgen
but with v0.60
. This version conflict resulted in build errors, where libclan
wasn't loaded correctly. With this fork I changed the libgen
dependency to v0.60
to match the one in rsmpi
. I didn't make a PR into the upstream repository, since the current version of bindgen is v0.63
which means both, metis-rs
and rsmpi
are using outated versions. Since the metis-rs
repo is quite stable I would think that this is ok for now.
Idiomatic bindings to libmetis, a graph and mesh partitioner.
Prerequisites:
- METIS
- clang v3.9 or above
Bindings to METIS are made on the fly. If METIS is installed in a non-standard location, please use the following commands:
export METISDIR=path/to/your/metis/installation
export CPATH="$METISDIR/include"
export RUSTFLAGS="-L$METISDIR/lib"
The environment variable $METISDIR
must point to a directory containing a
lib/
and a include/
directory containing the shared libraries and the
headers of METIS, respectively.
Once these variables are set, you can build the bindings with cargo build
.
If your METIS installation lies in a non-standard path, you will need to set
the RUSTDOCFLAGS
environment variable to build the documentation:
export RUSTDOCFLAGS="-L$METISDIR/lib"
Then you can call cargo doc --no-deps --open
.
This program is distributed under the terms of both the MIT license and the
Apache License (Version 2.0). See LICENSE-APACHE
and LICENSE-MIT
for
details.