symforce-org / symforce

Fast symbolic computation, code generation, and nonlinear optimization for robotics
https://symforce.org
Apache License 2.0
1.44k stars 147 forks source link

Should add an option to find external metis #271

Open chao-qu-skydio opened 1 year ago

chao-qu-skydio commented 1 year ago

Either this or we need to add its license in the repo for creating conda package.

212

aaron-skydio commented 1 year ago

Can we clarify exactly what this means? Do we just need to add an initial attempt to find_package(metis <some min version?> QUIET) here like we do for other dependencies? And then have some ability to build wheels (or just a conda package) that dynamically link against libmetis.so? I believe we currently statically link against libmetis in wheel builds.

Or do we just need to include a notice in LICENSE that binary distributions of symforce contain METIS with a reference to its license?

I'd be fine with either of these, we should probably have an option to do the first one (at least for cmake builds if not all the piping for wheels) either way?

chao-qu-skydio commented 1 year ago

Yeah, I meant adding a find_package(METIS). We could use (or modify) the cmake file from here https://github.com/ceres-solver/ceres-solver/blob/master/cmake/FindMETIS.cmake

aaron-skydio commented 1 year ago

SGTM, feel free to go for it