Issue With Cardinal Installation (Potentially Due to OpenMC Dependencies) #1101
-
|
Hello friends! I'm running into an issue installing Cardinal on WSL (Ubuntu 24.04.1). It appears to be something related to the dependencies of OpenMC (specifically FMT), but I'm certainly no expert in compiling codes, etc. I have looked for similar threads but either there was no solution available or I tried the solution and it didn't work. The error I'm getting:
My suspicion is something isn't going correctly in terms of moving FMT and other dependencies from the contrib/openmc/vendor/ folder (where the I can see the dependencies have been downloaded) to the cardinal/build/openmc/vendor folder (where there is only a Catch2 folder, no FMT folder). Below are the series of commands I executed, and I have attached my console output.
Thanks ahead of time for any help trying to debug this. Very excited to get started in Cardinal! |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
|
Update! I completely re-installed Ubuntu and then follow the procedure I outlined above. Cardinal compiled on the first try! So, that's great. However, I have another machine where it would be much more difficult for me to re-install the OS. So, I'd still like to hear opinions on this problem if anyone has any? My theory is that there must be something in the usr/bin that was affecting the install process? I had previously installed standalone OpenMC from Conda (openmc-dev) so I wonder if there were remnants of that? I'm not sure! |
Beta Was this translation helpful? Give feedback.
-
|
Hi @jcstonehill, @nglaser3 has added a fix into Cardinal which we think solves this issue. Would you be willing to help us test it on your machine to confirm if this solves this problem before we merge this in? (I'm not able to reproduce it on my system so we are trying to find volunteers who have run into this in the past). To test, you'd basically just repeat the same steps to compile Cardinal that you did before, but use @nglaser3's branch. This could be done in a separate directory on your machine, for instance. Thank you! |
Beta Was this translation helpful? Give feedback.
I have identified the issue!
When Cardinal tried to build OpenMC, it uses CMake. Looking at the CMakeLists.txt file (cardinal/contrib/openmc/CMakeLists.txt), it was looking for libraries using the "find_package" function of CMake. It uses this methodology for libraries such as fmt, xtensor, xtl, and Catch2.
Here's a code snippet to illustrate the format in CMakeLists.txt: