OpenMP::OpenMP_<lang> carries no device flags, and for GCC and Clang
links the OpenMP runtime without the OpenMP flag, so target regions
built through it fail to link or silently run on the host. Once
OpenMP_<lang>_OFFLOAD or OpenMP_<lang>_OFFLOAD_FLAGS is set, the new
targets add the device flags, plus the OpenMP flag at link time;
otherwise they match the host targets. FindOpenMP.Offload runs a
target kernel on a GPU and is enabled in the nvhpc job.
Fixes: #21784, #26701
Clang targeting the MSVC ABI has no implicit link directories, so the
search fell through to `LIB` and picked up MSVC's `libomp.lib`, which
needs the non-redistributable `libomp140` DLL, or found nothing outside
a VS environment. The library next to the compiler now comes first,
same as clang's driver, with the old search as a fallback when it
doesn't link, e.g. for a cross target.
The docs now say `OpenMP_RUNTIME_MSVC` is only for `cl`, and clang-cl
no longer tries the GNU-style flags it ignores.
Fixes: #28133
Add the `CrayClang` compiler ID to the list of OpenMP flag candidates and
ensure the flags are propagated to the link step to trigger the Cray OpenMP
offload linker (`cce_omp_offload_linker`) wrapper.
Fixes: #24402, #24962
Run the `clang-format.bash` script to update all our C and C++ code to a
new style defined by `.clang-format`. Use `clang-format` version 6.0.
* If you reached this commit for a line in `git blame`, re-run the blame
operation starting at the parent of this commit to see older history
for the content.
* See the parent commit for instructions to rebase a change across this
style transition commit.