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

Remove Eigen from ThirdParty and instead use CMake FetchContent #319

Open
1 task done
aabrown100-git opened this issue Dec 19, 2024 · 1 comment
Open
1 task done
Labels
enhancement New feature or request

Comments

@aabrown100-git
Copy link
Collaborator

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

#304
#307
#297

Code of Conduct

  • I agree to follow this project's Code of Conduct and Contributing Guidelines
@aabrown100-git aabrown100-git added the enhancement New feature or request label Dec 19, 2024
@ktbolt
Copy link
Collaborator

ktbolt commented Dec 19, 2024

@aabrown100-git I don't see any reason to use FetchContent besides modernizing our CMake code, will just add more CMake obfuscation.

Using the latest version of software can cause problems that are difficult to track down so we would need to make sure to useGIT_TAG to identify the release.

Also my gut feeling is that this will not work with the current CMake organization and that the build will use the system Eigen installed by VTK. So be sure to test if we are using the local or system Eigen.

Also also FetchContent is inconsistent with the way other external software dependencies in ThirdParty work (e.g. tinyxml). If we use FetchContent for Eigen then need to use it for the other dependencies if we can.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants