Rewrite FindParMETIS to provide imported targets
Summary
This MR adds imported-targets to the FindParMETIS.cmake
module, following modern cmake guidelines.
Details
Instead of exporting include directories and libraries as variables, the find modules exports an imported target that contains all the necessary information to include and link ParMETIS. The find module introduces the imported target: ParMETIS::ParMETIS
.
The imported target contains the dependencies to METIS and MPI automatically, and if the PARMETIS_LIB_NAME
includes "ptscotch", additionally a link to the PTScotch::PTScotch
target is included. Thus, those libraries do not need to be linked manually.
This is different from the previous strategy where it was guessed that if a parmetis code does not compile, and a symbol is not found, PTScotch must be linked. This wild guessing is replaced with an inspection of the lib-name "ptscotchparmetis" and a link against the package imported target instead of searching for the PTScotch library again.
Depends on !820 (merged) for linking against PTScotch::PTScotch
and !821 (merged) for linking against METIS::METIS
ToDo
-
Check for the failing Pipelines -
Design a proper test for the functionality of ParMETIS -
Test PTScotch backend for ParMETIS