I opened a MR proposing a FindMKL module: !4504
The current MKL logic is contained in FindBLAS and FindLAPACK. There are three toggle parameters: BLA_STATIC, BLA_VENDOR and BLA_F95 which influence how MKL is found. There are a few issues with the current approach:
- The current MKL module defines no imported targets, everything is propagated via variables.
- The BLA_STATIC and BLA_VENDOR variables impose some user overhead and restrict the simultaneously available MKL combinations. I user should be able to use both static and dynamic or parallel and sequential libraries in their project at the same time. A MKL installation ships all combinations, all possible combinations should be available.
- There is no support for ScaLAPACK
- There is no support for BLACS
- There is no support TBB parallel back-end.
- MKL does not only provide BLAS libraries, it also provides LAPACK and FFT libraries. I don't see the benefit of bundling vastly different BLAS and LAPACK libraries into the same Find modules.