blob: 3c486b9aeb1217cfa913a9f034bb2e15a589b7bd [file] [log] [blame] [edit]
publish_headers(infiniband
arch.h
opcode.h
sa-kern-abi.h
sa.h
verbs.h
verbs_api.h
tm_types.h
)
publish_internal_headers(infiniband
cmd_ioctl.h
cmd_write.h
driver.h
kern-abi.h
marshall.h
)
configure_file("libibverbs.map.in"
"${CMAKE_CURRENT_BINARY_DIR}/libibverbs.map" @ONLY)
rdma_library(ibverbs "${CMAKE_CURRENT_BINARY_DIR}/libibverbs.map"
# See Documentation/versioning.md
1 1.14.${PACKAGE_VERSION}
all_providers.c
cmd.c
cmd_ah.c
cmd_counters.c
cmd_cq.c
cmd_device.c
cmd_dm.c
cmd_fallback.c
cmd_flow.c
cmd_flow_action.c
cmd_ioctl.c
cmd_mr.c
cmd_mw.c
cmd_pd.c
cmd_qp.c
cmd_rwq_ind.c
cmd_srq.c
cmd_wq.c
cmd_xrcd.c
compat-1_0.c
device.c
dummy_ops.c
dynamic_driver.c
enum_strs.c
ibdev_nl.c
init.c
marshall.c
memory.c
neigh.c
static_driver.c
sysfs.c
verbs.c
)
target_link_libraries(ibverbs LINK_PRIVATE
${NL_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT}
${CMAKE_DL_LIBS}
kern-abi
)
function(ibverbs_finalize)
if (ENABLE_STATIC)
# In static mode the .pc file lists all of the providers for static
# linking. The user should set RDMA_STATIC_PROVIDERS to select which ones
# to include.
list(LENGTH RDMA_PROVIDER_LIST LEN)
math(EXPR LEN ${LEN}-1)
foreach(I RANGE 0 ${LEN} 2)
list(GET RDMA_PROVIDER_LIST ${I} PROVIDER_NAME)
math(EXPR I ${I}+1)
list(GET RDMA_PROVIDER_LIST ${I} LIB_NAME)
math(EXPR I ${I}+1)
set(PROVIDER_LIBS "${PROVIDER_LIBS} -l${LIB_NAME}")
set(FOR_EACH_PROVIDER "${FOR_EACH_PROVIDER} FOR_PROVIDER(${PROVIDER_NAME})")
endforeach()
if (NOT NL_KIND EQUAL 0)
set(REQUIRES "libnl-3.0, libnl-route-3.0")
endif()
rdma_pkg_config("ibverbs" "${REQUIRES}" "${PROVIDER_LIBS} -libverbs ${CMAKE_THREAD_LIBS_INIT}")
file(WRITE ${BUILD_INCLUDE}/infiniband/all_providers.h "#define FOR_EACH_PROVIDER() ${FOR_EACH_PROVIDER}")
else()
rdma_pkg_config("ibverbs" "" "${CMAKE_THREAD_LIBS_INIT}")
endif()
endfunction()