1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
#
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2020-2022, Intel Corporation
#
cmake_minimum_required(VERSION 3.3)
function(add_example_with_pmem)
set(options USE_LIBPROTOBUFC)
set(oneValueArgs NAME)
set(multiValueArgs SRCS)
cmake_parse_arguments(EXAMPLE
"${options}"
"${oneValueArgs}"
"${multiValueArgs}"
${ARGN})
set(target ${EXAMPLE_NAME})
if (EXAMPLE_USE_LIBPROTOBUFC AND NOT LIBPROTOBUFC_FOUND)
message(STATUS "${target} skipped - no libprotobuf-c found")
return()
endif()
prepend(srcs ${CMAKE_CURRENT_SOURCE_DIR} ${srcs})
set(EXAMPLE_SRCS ${EXAMPLE_SRCS} ../common/common-conn.c ../common/common-hello.c)
if (LIBPMEM_FOUND OR LIBPMEM2_FOUND)
set(EXAMPLE_SRCS ${EXAMPLE_SRCS}
../common/common-map_file_with_signature_check.c)
endif()
if (LIBPMEM2_FOUND)
set(EXAMPLE_SRCS ${EXAMPLE_SRCS} ../common/common-pmem2_map_file.c)
elseif (LIBPMEM_FOUND)
set(EXAMPLE_SRCS ${EXAMPLE_SRCS} ../common/common-pmem_map_file.c)
endif()
add_executable(${target} ${EXAMPLE_SRCS})
target_include_directories(${target} PRIVATE ../common
${LIBRPMA_INCLUDE_DIR} ${LIBIBVERBS_INCLUDE_DIRS})
target_link_libraries(${target} rpma ${LIBIBVERBS_LIBRARIES} ${LIBRT_LIBRARIES})
if(LIBPMEM2_FOUND)
target_include_directories(${target}
PRIVATE ${LIBPMEM2_INCLUDE_DIRS})
target_link_libraries(${target} ${LIBPMEM2_LIBRARIES})
target_compile_definitions(${target}
PRIVATE USE_LIBPMEM2)
elseif(LIBPMEM_FOUND)
target_include_directories(${target}
PRIVATE ${LIBPMEM_INCLUDE_DIRS})
target_link_libraries(${target} ${LIBPMEM_LIBRARIES})
target_compile_definitions(${target}
PRIVATE USE_LIBPMEM)
endif()
if(EXAMPLE_USE_LIBPROTOBUFC)
target_include_directories(${target}
PRIVATE ${LIBPROTOBUFC_INCLUDE_DIRS})
target_link_libraries(${target} ${LIBPROTOBUFC_LIBRARIES})
endif()
if(IBV_ADVISE_MR_FLAGS_SUPPORTED)
target_compile_definitions(${target} PRIVATE IBV_ADVISE_MR_FLAGS_SUPPORTED=1)
endif()
endfunction()
|