sandialabs / LCM

Laboratory for Computational Mechanics
Other
12 stars 7 forks source link

TrilinosConfig.cmake not created in nightly Trilinos builds on algol and proxima #74

Closed ikalash closed 1 year ago

ikalash commented 1 year ago

This is a question for @bartlettroscoe . In the Albany-LCM nightlies, a couple days ago, Albany-LCM stopped building due to TrilinosConfig.cmake not being found (NOTE: This is not related to the other Albany issue you commented on having to do with -D Trilinos_USE_GNUINSTALLDIRS=OFF flags). I am not the one who owns the nightly testing, @lxmota does, but what is happening is no TrilinosConfig.cmake file is created by the nightly test scripts. When I build Trilinos from scratch from my own input file, it is there, however. I am thinking there is some option set in the nightly Trilinos that is causing the file to not be created? Is that possible @bartlettroscoe? You can see all the Trilinos configure options in the nightlies here: https://sems-cdash-son.sandia.gov/cdash/build/52981/configure .

bartlettroscoe commented 1 year ago

If find_package(Trilinos ...) is being called, then that should not be too hard to debug. First, how is the CMake configure set up to find Trilinos with find_package(Trilinos ...)? That is, where is is supposed to be found from the list of search paths and variables described in:

?

ikalash commented 1 year ago

Thanks @bartlettroscoe . This is the relevant code for how find_package(Trilinos) is called if this is what you are asking: https://github.com/sandialabs/LCM/blob/main/CMakeLists.txt#L59 . Unfortunately I don't know cmake well enough to know all the magic that happens resulting in the package being found once find_package is called.

bartlettroscoe commented 1 year ago

The way Trilinos is found in this CMakeLists.txt file seem to be by prepending the base Trilinos install dir in the variable ALBANY_TRILINOS_DIR to CMAKE_PREFIX_PATH as shown in:

https://github.com/sandialabs/LCM/blob/4522acb12c7dbc99afd584b19513730a4a057af0/CMakeLists.txt#L53-L60

For some reason, I can't currently get to the site:

from inside of the SNL network to look for any runtime clues. (I have reported this problem to CCHD.)

Debugging this should not be too hard.

What is the value of ${ALBANY_TRILINOS_DIR} when find_package(Trilinos ...) is called and what does:

$ ls <trilinos-install-dir>

show on that machine?

Also, you might try adding the CMake command-line argument --debug-find-pkg=Trilinos. That will show a lot of detail about where find_package(Trilinos ...) is looking for it's TrilinosConfig.cmake file.

ikalash commented 1 year ago

Ross and I looked at things and it appears the cause of the problem is that Trilinos doesn't report any errors to CDash but actually there is a build failure. The theory is that this is why the Trilinos files are not being installed where they are. See https://github.com/trilinos/Trilinos/issues/12374 for the details of the cause of the build failure.

bartlettroscoe commented 1 year ago

@ikalash, I would have to study your driver software to see why the Trilinos build errors are not being reported to CDash.