Suggestion: CheckFunctionExists, CheckSymbolExists, CheckCSourceCompiles, ... work with (imported) targets
Using functions such as
check_function_exists() usually requires modifying the CMAKE_REQUIRED_* variables. These variables are inconvenient to set when working with (imported) targets. Debugging (imported) targets or asserting that (imported) targets work as expected would become easier if the
check*() functions would allow for linking against imported targets. It would be easier to write and use modules such as FindBLAS.cmake or FindLAPACK.cmake.