[infrastructure] Rework Trilinos configure process and add TPL dependency variables#1930
Conversation
|
Well, seems like my first try failed miserably. |
d41ccdb to
e17a507
Compare
sebproell
left a comment
There was a problem hiding this comment.
The current approach seems like a valid starting point. I need too think a bit about whether it makes sense that we call the variables FOUR_C_WITH_xxx in this case, since they mark transitive dependencies. One way to approach this is to have a configure_MUMPS.cmake etc file and in there check for the relevant Trilinos stuff. At a later point in time, we may also add support for getting these dependencies differently. Ofc, Trilinos needs to be configured first, but we have control over that in the top-level CMakeLists.txt. Not sure you can easily access the nice Amesos2_ENABLE_xx vars there.
|
How do we use MUMPS/UMFPACK/SuperLu_dist in the code: through Trilinos or their own API? If through Trilinos (which I supect for all three), we should name the variables something like |
@sebproell We purely use it through |
7c83132 to
2d66b7b
Compare
sebproell
left a comment
There was a problem hiding this comment.
This looks very promising now! You might want to add the FOUR_C_WITH_TRILINOS_MUMPS etc variables to the config.h file as well. For that, you need to enhace the configure_dependency() function that calls configure_Trilinos. See my comment below
sebproell
left a comment
There was a problem hiding this comment.
Perfect, exactly how I would want it to work 👍
|
@bennoschoenstein Please check if |
|
Had to fix the ParMETIS variable, should be correctly recognized now. |
mayrmt
left a comment
There was a problem hiding this comment.
Let's give it a try in practice!
Description and Context
This is my "poor man's approach" on introducing a variable
FOUR_C_WITH_TRILINOS_XXXwhich is set during Trilinos configure, to be used asREQUIRED_DEPENDENCYfor testing. The main difficulty is that we indirectly use these TPLs through Trilinos and do not directly configure them in 4C directly.This enables use to skip tests, which use specific TPLs compiled into Trilinos. Example, we want to skip tests using MUMPS as direct solver.
In the same scope, I added checks to find Trilinos packages we have a hard dependency on. This is by no means complete yet, but it helps to directly error out during configure if a "wrong" Trilinos install is used and not during compile time, due to headers not found ...