diff options
Diffstat (limited to 'src/ceph/cmake/modules/Findrdma.cmake')
-rw-r--r-- | src/ceph/cmake/modules/Findrdma.cmake | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/ceph/cmake/modules/Findrdma.cmake b/src/ceph/cmake/modules/Findrdma.cmake new file mode 100644 index 0000000..eb31f79 --- /dev/null +++ b/src/ceph/cmake/modules/Findrdma.cmake @@ -0,0 +1,49 @@ +# - Find rdma +# Find the rdma library and includes +# +# RDMA_INCLUDE_DIR - where to find ibverbs.h, etc. +# RDMA_LIBRARIES - List of libraries when using ibverbs. +# RDMA_FOUND - True if ibverbs found. + +find_path(RDMA_INCLUDE_DIR infiniband/verbs.h) + +set(RDMA_NAMES ${RDMA_NAMES} ibverbs) +find_library(RDMA_LIBRARY NAMES ${RDMA_NAMES}) + +if (RDMA_INCLUDE_DIR AND RDMA_LIBRARY) + set(RDMA_FOUND TRUE) + set(RDMA_LIBRARIES ${RDMA_LIBRARY}) +else () + set(RDMA_FOUND FALSE) + set( RDMA_LIBRARIES ) +endif () + +if (RDMA_FOUND) + message(STATUS "Found libibverbs: ${RDMA_LIBRARY}") + + 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) + +else () + message(STATUS "Not Found libibverbs: ${RDMA_LIBRARY}") + if (RDMA_FIND_REQUIRED) + message(STATUS "Looked for libibverbs named ${RDMA_NAMES}.") + message(FATAL_ERROR "Could NOT find libibverbs") + endif () +endif () + +# handle the QUIETLY and REQUIRED arguments and set UUID_FOUND to TRUE if +# all listed variables are TRUE +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(ibverbs DEFAULT_MSG RDMA_LIBRARIES RDMA_INCLUDE_DIR) + +mark_as_advanced( + RDMA_LIBRARY +) |