for enabling Zoned Block Device support using libzbd
Signed-off-by: Kefu Chai <kchai@redhat.com>
if(LINUX)
find_package(aio)
set(HAVE_LIBAIO ${AIO_FOUND})
- find_package(zbd)
- set(HAVE_LIBZBD ${ZBD_FOUND})
elseif(FREEBSD)
# POSIX AIO is integrated into FreeBSD kernel, and exposed by libc.
set(HAVE_POSIXAIO ON)
endif()
include(CMakeDependentOption)
+
+CMAKE_DEPENDENT_OPTION(WITH_ZBD "Enable libzbd bluestore backend" OFF
+ "WITH_BLUESTORE" OFF)
+
CMAKE_DEPENDENT_OPTION(WITH_LIBURING "Enable io_uring bluestore backend" OFF
"WITH_BLUESTORE;HAVE_LIBAIO" OFF)
set(HAVE_LIBURING ${WITH_LIBURING})
spdk/NVMEDevice.cc)
endif()
-if(HAVE_LIBZBD)
+if(WITH_LIBZBD)
+ find_package(zbd REQUIRED)
+ set(HAVE_LIBZBD ${ZBD_FOUND})
list(APPEND libblk_srcs
zoned/HMSMRDevice.cc)
endif()
target_link_libraries(blk PRIVATE ${SPDK_LIBRARIES})
endif()
-if(HAVE_LIBZBD)
+if(WITH_LIBZBD)
target_link_libraries(blk PRIVATE ${ZBD_LIBRARIES})
endif()
)
endif(WITH_BLUESTORE)
-if(HAVE_LIBZBD)
+if(WITH_LIBZBD)
list(APPEND libos_srcs
bluestore/zoned_types.cc
bluestore/ZonedFreelistManager.cc