]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: use BUILD_BYPRODUCTS to fix build w/ ninja
authorKefu Chai <kchai@redhat.com>
Mon, 27 May 2019 11:53:42 +0000 (19:53 +0800)
committerKefu Chai <kchai@redhat.com>
Mon, 27 May 2019 11:57:18 +0000 (19:57 +0800)
ninja scan the build dependencies differently than GNU make, so we need
to specify the product of `ExternalProject_Add()`. with this change,
we can build `vstart-base` without building the ExternalProject
separately.

Signed-off-by: Kefu Chai <kchai@redhat.com>
cmake/modules/BuildRocksDB.cmake
src/compressor/zstd/CMakeLists.txt

index e59f9b5c17e3f39312db11b06d8dfcd81b033da4..6652a5850a0e7933122be520a0f706fc657ddc32 100644 (file)
@@ -49,11 +49,13 @@ function(build_rocksdb)
   include(ExternalProject)
   set(rocksdb_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/rocksdb")
   set(rocksdb_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/rocksdb")
+  set(rocksdb_LIBRARY "${rocksdb_BINARY_DIR}/librocksdb.a")
   ExternalProject_Add(rocksdb_ext
     SOURCE_DIR "${rocksdb_SOURCE_DIR}"
     CMAKE_ARGS ${rocksdb_CMAKE_ARGS}
     BINARY_DIR "${rocksdb_BINARY_DIR}"
     BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --target rocksdb
+    BUILD_BYPRODUCTS "${rocksdb_LIBRARY}"
     INSTALL_COMMAND "true")
   # force rocksdb make to be called on each time
   ExternalProject_Add_Step(rocksdb_ext forcebuild
@@ -65,7 +67,6 @@ function(build_rocksdb)
   add_library(RocksDB::RocksDB STATIC IMPORTED)
   add_dependencies(RocksDB::RocksDB rocksdb_ext)
   set(rocksdb_INCLUDE_DIR "${rocksdb_SOURCE_DIR}/include")
-  set(rocksdb_LIBRARY "${rocksdb_BINARY_DIR}/librocksdb.a")
   foreach(ver "MAJOR" "MINOR" "PATCH")
     file(STRINGS "${rocksdb_INCLUDE_DIR}/rocksdb/version.h" ROCKSDB_VER_${ver}_LINE
       REGEX "^#define[ \t]+ROCKSDB_${ver}[ \t]+[0-9]+$")
index 9586c3baafa080d8518601c47aa8641174d539e0..ad2689777ce9427903623b74a2c25f1678c662c1 100644 (file)
@@ -14,6 +14,7 @@ ExternalProject_Add(zstd_ext
              -G${CMAKE_GENERATOR}
   BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/libzstd
   BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --target libzstd_static
+  BUILD_BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/libzstd/lib/libzstd.a"
   INSTALL_COMMAND "true")
 
 # force zstd make to be called on each time