Skip to content

Commit 19f5128

Browse files
jalopezg-gitjblomer
authored andcommitted
[ntuple] DAOS support: added libdaos_mock (for use in tests)
libdaos_mock provides an implementation for a small subset of libdaos that enables in-memory storage. This is especially interesting for testing environments that do not have access to a DAOS deployment.
1 parent 340b3c5 commit 19f5128

File tree

4 files changed

+946
-9
lines changed

4 files changed

+946
-9
lines changed

cmake/modules/SearchInstalledSoftware.cmake

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1193,15 +1193,30 @@ if (uring)
11931193
endif()
11941194

11951195
#---Check for DAOS----------------------------------------------------------------
1196+
if (daos AND daos_mock)
1197+
message(FATAL_ERROR "Options `daos` and `daos_mock` are mutually exclusive; only one of them should be specified.")
1198+
endif()
1199+
1200+
if (daos OR daos_mock)
1201+
message(STATUS "Looking for libuuid")
1202+
if(fail-on-missing)
1203+
find_package(libuuid REQUIRED)
1204+
else()
1205+
find_package(libuuid)
1206+
if(NOT libuuid_FOUND)
1207+
message(STATUS "libuuid not found. Disabling DAOS support")
1208+
set(daos OFF CACHE BOOL "Disabled (libuuid not found)" FORCE)
1209+
set(daos_mock OFF CACHE BOOL "Disabled (libuuid not found)" FORCE)
1210+
endif()
1211+
endif()
1212+
endif()
11961213
if (daos)
11971214
message(STATUS "Looking for DAOS")
11981215
if(fail-on-missing)
11991216
find_package(DAOS REQUIRED)
1200-
find_package(libuuid REQUIRED)
12011217
else()
12021218
find_package(DAOS)
1203-
find_package(libuuid)
1204-
if(NOT DAOS_FOUND OR NOT libuuid_FOUND)
1219+
if(NOT DAOS_FOUND)
12051220
message(STATUS "libdaos not found. Disabling DAOS support")
12061221
set(daos OFF CACHE BOOL "Disabled (libdaos not found)" FORCE)
12071222
endif()

tree/ntuple/CMakeLists.txt

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,21 @@ DEPENDENCIES
7272
ROOTVecOps
7373
)
7474

75-
if(daos)
75+
# Enable RNTuple support for Intel DAOS
76+
if(daos OR daos_mock)
7677
set(ROOTNTuple_EXTRA_HEADERS ROOT/RPageStorageDaos.hxx)
7778
target_sources(ROOTNTuple PRIVATE v7/src/RDaos.cxx v7/src/RPageStorageDaos.cxx)
78-
79-
set_property(SOURCE v7/src/RDaos.cxx v7/src/RPageStorageDaos.cxx
80-
APPEND PROPERTY COMPILE_OPTIONS -I${DAOS_INCLUDE_DIRS} -I${UUID_INCLUDE_DIR})
81-
target_link_libraries(ROOTNTuple PRIVATE ${DAOS_LIBRARIES} ${UUID_LIBRARY})
82-
8379
target_compile_definitions(ROOTNTuple PRIVATE R__ENABLE_DAOS)
80+
81+
target_include_directories(ROOTNTuple PRIVATE ${UUID_INCLUDE_DIR})
82+
target_link_libraries(ROOTNTuple PRIVATE ${UUID_LIBRARY})
83+
if(daos_mock)
84+
target_include_directories(ROOTNTuple PRIVATE v7/inc/ROOT/libdaos_mock/)
85+
target_sources(ROOTNTuple PRIVATE v7/src/libdaos_mock/libdaos_mock.cxx)
86+
else()
87+
target_include_directories(ROOTNTuple PRIVATE ${DAOS_INCLUDE_DIRS})
88+
target_link_libraries(ROOTNTuple PRIVATE ${DAOS_LIBRARIES})
89+
endif()
8490
endif()
8591

8692
if(MSVC)

0 commit comments

Comments
 (0)