Skip to content

Commit

Permalink
cmake: detect bzip2 and lz4 for rocksdb
Browse files Browse the repository at this point in the history
* 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>
  • Loading branch information
tchaikov committed Jan 7, 2016
1 parent 3626d86 commit 3ded44d
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
3 changes: 1 addition & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -243,9 +243,8 @@ endif(WITH_REENTRANT_STRSIGNAL)

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)
Expand Down
12 changes: 11 additions & 1 deletion src/kv/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,14 @@ add_library(kv_objs OBJECT ${kv_srcs})
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)

0 comments on commit 3ded44d

Please sign in to comment.