]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
blk/CMakeLists.txt: generate interface library if `libblk` is disabled
authorMax Kellermann <max.kellermann@ionos.com>
Mon, 14 Oct 2024 19:21:58 +0000 (21:21 +0200)
committerMax Kellermann <max.kellermann@ionos.com>
Mon, 14 Oct 2024 19:37:02 +0000 (21:37 +0200)
If all the libraries which `libblk` wraps (i.e. Bluestore, AIO, SPDK,
ZBD) are disabled, then the build aborts with a linker failure:

```
 c++ [...] -o bin/ceph-mon [...] -lblk [...]
 mold: fatal: library not found: blk
 collect2: error: ld returned 1 exit status
```

This is because `blk` is used (via `os`) but if the `add_library()`
directive is skipped, `cmake` attempts to look up a library with that
name.

Signed-off-by: Max Kellermann <max.kellermann@ionos.com>
src/blk/CMakeLists.txt

index 62c2a5c29f4bc8630b8828feb192d8cb080ee076..6a4ebd502b9497a0123940be4de1d5ea8435078c 100644 (file)
@@ -23,6 +23,8 @@ endif()
 if(libblk_srcs)
   add_library(blk STATIC ${libblk_srcs})
   target_include_directories(blk PRIVATE "./")
+else()
+  add_library(blk INTERFACE)
 endif()
 
 if(HAVE_LIBAIO)