* this change is the cmake port of
911e7a0.
the rocksdb's Makefile will detect the installed libbz2 and libz4 by
its own. if the building env happens to have these libraries installed,
a link time dependency is introduced. so we are forced to link against
them.
* do not REQUIRE BZip2 in cmake anymore
* only link against bzip2 if it is detected
Signed-off-by: Kefu Chai <kchai@redhat.com>
set(HAVE_LIBROCKSDB 1)
-# -lbz2 and -lz link into kv
+# -lz link into kv
find_package(ZLIB REQUIRED)
-find_package(BZip2 REQUIRED)
#option for LTTng
option(WITH_LTTNG "LTTng tracing is enabled" ON)
add_library(kv STATIC $<TARGET_OBJECTS:kv_objs>)
target_include_directories(kv_objs PUBLIC ${ROCKSDB_INCLUDE_DIR})
target_include_directories(kv PUBLIC ${ROCKSDB_INCLUDE_DIR})
-target_link_libraries(kv bz2 z leveldb snappy rocksdb)
+target_link_libraries(kv z leveldb snappy rocksdb)
+
+# rocksdb detects bzlib and lz4 in its Makefile, which forces us to do the same.
+find_package(BZip2 QUIET)
+if (BZIP2_FOUND)
+ target_link_libraries(kv ${BZIP2_LIBRARIES})
+endif (BZIP2_FOUND)
+find_package(LZ4 QUIET)
+if (LZ4_FOUND)
+ target_link_libraries(kv ${LZ4_LIBRARY})
+endif (LZ4_FOUND)