]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: made rocksdb an imported library 7131/head
authorAli Maredia <amaredia@redhat.com>
Wed, 6 Jan 2016 18:14:55 +0000 (13:14 -0500)
committerAli Maredia <amaredia@redhat.com>
Thu, 7 Jan 2016 05:34:32 +0000 (00:34 -0500)
Systems with the minimum required version of CMake
such as Ubuntu Trusty Tahr don't support
INTERFACE_LINK_LIBRARIES, so rocksdb was made into
an IMPORTED library. Added ROCKSDB_INCLUDE_DIR to
simplify target_include_directories rocksdb.

Signed-off-by: Ali Maredia <amaredia@redhat.com>
src/CMakeLists.txt
src/kv/CMakeLists.txt
src/test/CMakeLists.txt

index 9b609a3bd00d8ea9fec49c23f0b58137697e3c5c..0a122b7d2ecd305f1aa1a1701468d6a546975532 100644 (file)
@@ -660,11 +660,11 @@ add_custom_target(build_rocksdb
     WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/rocksdb
     COMMENT "rocksdb building")
 
-# add a dummy target to attach librocksdb.a and it's include_directories
-add_library(rocksdb INTERFACE)
-set_target_properties(rocksdb PROPERTIES INTERFACE_LINK_LIBRARIES "${CMAKE_SOURCE_DIR}/src/rocksdb/librocksdb.a") 
+# add a imported library for librocksdb.a 
+add_library(rocksdb STATIC IMPORTED)
+set_property(TARGET rocksdb PROPERTY IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/src/rocksdb/librocksdb.a") 
 add_dependencies(rocksdb build_rocksdb)
-target_include_directories(rocksdb INTERFACE "${CMAKE_SOURCE_DIR}/src/rocksdb/include")
+set(ROCKSDB_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/src/rocksdb/include)
 
 add_subdirectory(kv)
 
index 04ef9627cc7b18803508c07d407b630c509245e1..3c088991a08327ca53d443a96c5595221d128d78 100644 (file)
@@ -3,6 +3,7 @@ set(kv_srcs
   LevelDBStore.cc
   RocksDBStore.cc)
 add_library(kv_objs OBJECT ${kv_srcs})
-add_library(kv STATIC ${kv_srcs})
-target_include_directories(kv_objs PUBLIC ${CMAKE_SOURCE_DIR}/src/rocksdb/include)
+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)
index 6b94796d950d44e2a1c2bb26e86888c0605aa7a7..eba6da740f2f7facc7838fa4ee9801fa7d194156 100644 (file)
@@ -1414,9 +1414,8 @@ add_executable(unittest_rocksdb_option EXCLUDE_FROM_ALL
   )
 add_test(unittest_rocksdb_option unittest_rocksdb_option)
 add_dependencies(check unittest_rocksdb_option)
-target_link_libraries(unittest_rocksdb_option global os rocksdb ${CMAKE_DL_LIBS}
+target_link_libraries(unittest_rocksdb_option global os ${CMAKE_DL_LIBS}
   ${BLKID_LIBRARIES} ${ALLOC_LIBS} ${UNITTEST_LIBS})
-target_include_directories(unittest_rocksdb_option PUBLIC ${CMAKE_SOURCE_DIR}/src/rocksdb/include)
 set_target_properties(unittest_rocksdb_option PROPERTIES COMPILE_FLAGS ${UNITTEST_CXX_FLAGS})
 
 # unittest_bluefs