diff options
Diffstat (limited to 'cmake/modules/Findverbs.cmake')
-rw-r--r-- | cmake/modules/Findverbs.cmake | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/cmake/modules/Findverbs.cmake b/cmake/modules/Findverbs.cmake new file mode 100644 index 000000000..e266a4ebc --- /dev/null +++ b/cmake/modules/Findverbs.cmake @@ -0,0 +1,36 @@ +# - Find rdma verbs +# Find the rdma verbs library and includes +# +# VERBS_INCLUDE_DIR - where to find ibverbs.h, etc. +# VERBS_LIBRARIES - List of libraries when using ibverbs. +# VERBS_FOUND - True if ibverbs found. +# HAVE_IBV_EXP - True if experimental verbs is enabled. + +find_path(VERBS_INCLUDE_DIR infiniband/verbs.h) +find_library(VERBS_LIBRARIES ibverbs) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(verbs DEFAULT_MSG VERBS_LIBRARIES VERBS_INCLUDE_DIR) + +if(VERBS_FOUND) + include(CheckCXXSourceCompiles) + CHECK_CXX_SOURCE_COMPILES(" + #include <infiniband/verbs.h> + int main() { + struct ibv_context* ctxt; + struct ibv_exp_gid_attr gid_attr; + ibv_exp_query_gid_attr(ctxt, 1, 0, &gid_attr); + return 0; + } " HAVE_IBV_EXP) + if(NOT TARGET IBVerbs::verbs) + add_library(IBVerbs::verbs UNKNOWN IMPORTED) + endif() + set_target_properties(IBVerbs::verbs PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${VERBS_INCLUDE_DIR}" + IMPORTED_LINK_INTERFACE_LANGUAGES "C" + IMPORTED_LOCATION "${VERBS_LIBRARIES}") +endif() + +mark_as_advanced( + VERBS_LIBRARIES +) |