SimVascular / SimVascular/svMultiPhysics
Remove Eigen from ThirdParty and instead use CMake FetchContent
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 45
- Forks
- 61
- Avg merge
- 5d 23h
- Merged PRs (30d)
- 11
Description
Problem
Currently, the source code for the Eigen Matrix/Tensor library is stored in Code/ThirdParty/eigen. An alternative is to get Eigen during compilation using CMake FetchContent.
We should discuss the pros and cons of this approach. By keeping Eigen in Code/ThirdParty/eigen, we have access to the source code, which could help with debugging and version control, and allow us to optimize the code for our purposes (although this is unlikely). By using FetchContent, we reduce the size of our repo, can more easily upgrade Eigen, and may help with dependency issues.
Solution
Remove Eigen from Code/ThirdParty and get it through CMake using FetchContent.
Additional context
https://github.com/SimVascular/svMultiPhysics/issues/304
https://github.com/SimVascular/svMultiPhysics/issues/307
https://github.com/SimVascular/svMultiPhysics/issues/297
Code of Conduct
- I agree to follow this project's Code of Conduct and Contributing Guidelines
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Review Code/ThirdParty/eigen and the repository's CMake configuration, then compare the approach with the related issues #304, #307, and #297. Determine how Eigen is currently included and where FetchContent should be configured; done means Eigen is no longer stored under Code/ThirdParty and the project still compiles with the fetched dependency.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100