cmake: Simplify the linking of OpenMP library in CMake and set OpenMP_ROOT for macOS CI #8494
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes the issue linking the OpenMP library on macOS, especially when using the macOS default C compiler: AppleClang. This is done by linking the library using the syntax like
target_link_libraries(hello OpenMP::OpenMP_C), instead of manually updating theCMAKE_EXE_LINKER_FLAGS/CMAKE_SHARED_LINKER_FLAGScmake variables.xref: https://gist.github.com/scivision/16c2ca1dc250f54d34f1a1a35596f4a0
In our macOS CI, we also need to define
OpenMP_ROOTso that cmake can find the OpenMP header and library correctly.A new test is also added to make sure that OpenMP is enabled in our CI:
Closes #1926.