Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[all] Externalize metis #4266

Closed

Conversation

olivier-roussel
Copy link
Contributor

@olivier-roussel olivier-roussel commented Oct 27, 2023

Tackles one point of #4221. Required for the conda-forge package (conda-forge/staged-recipes#23085).
Externalize the previously embedded version of metis (5.1.0) which was statically linked.

Provides a cmake module finder file (FindMetis.cmake), tested successfully with the following ways to provide the library:

  • compile & install from source (v5.1.1) (warning: official repository cmakefiles are broken)
  • APT package libmetis-dev (v5.1.0)
  • conda package (v5.1.0 and v5.1.1)
  • vcpkg package (v2022-07-27)
    All on ubuntu 22.04. Not tested with conan.

Some remarks to embed metis in the CI: The embedded version was compiled with GKlib using the GKRAND option. To the best of my knowledge, this can be provided either from compiling from source or with the conan package with a specific option.


By submitting this pull request, I acknowledge that
I have read, understand, and agree SOFA Developer Certificate of Origin (DCO).


Reviewers will merge this pull-request only if

  • it builds with SUCCESS for all platforms on the CI.
  • it does not generate new warnings.
  • it does not generate new unit test failures.
  • it does not generate new scene test failures.
  • it does not break API compatibility.
  • it is more than 1 week old (or has fast-merge label).

@olivier-roussel olivier-roussel added pr: breaking Change possibly inducing a compilation error pr: status to review To notify reviewers to review this pull-request pr: clean Cleaning the code labels Oct 27, 2023
Copy link
Contributor

@alxbilger alxbilger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GKRAND is rather important if we want to keep the same simulation results across different architectures.

Sofa/Component/LinearSolver/Direct/CMakeLists.txt Outdated Show resolved Hide resolved
@olivier-roussel
Copy link
Contributor Author

GKRAND is rather important if we want to keep the same simulation results across different architectures.

OK. So we can still build our binaries with it by compiling metis from source on the CI and setting GKRAND instead of using distribution package. However, we will have to notify conda users that GKRAND will not be enabled with the SOFA conda package.

@hugtalbot hugtalbot added the pr: status postponed To keep in mind that this PR was interesting but no one has time to make it mergeable now. label Nov 8, 2023
@hugtalbot hugtalbot added the pr: backport todo This PR will be backported into the release preceeding its milestone. label Nov 22, 2023
@hugtalbot hugtalbot added this to the v23.12 milestone Nov 22, 2023
@olivier-roussel
Copy link
Contributor Author

Closed as replaced by #4450

@bakpaul bakpaul removed this from the v23.12 milestone Feb 20, 2024
@bakpaul bakpaul removed the pr: backport todo This PR will be backported into the release preceeding its milestone. label Feb 20, 2024
@hugtalbot hugtalbot removed the pr: status to review To notify reviewers to review this pull-request label Aug 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr: breaking Change possibly inducing a compilation error pr: clean Cleaning the code pr: status postponed To keep in mind that this PR was interesting but no one has time to make it mergeable now.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants