summaryrefslogtreecommitdiffstats
path: root/cmake/modules/Findverbs.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/modules/Findverbs.cmake')
-rw-r--r--cmake/modules/Findverbs.cmake36
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
+)