diff --git a/cmake/modules/BuildRocksDB.cmake b/cmake/modules/BuildRocksDB.cmake index fe55765ed96..2ee07764348 100644 --- a/cmake/modules/BuildRocksDB.cmake +++ b/cmake/modules/BuildRocksDB.cmake @@ -40,7 +40,19 @@ function(build_rocksdb) list(APPEND rocksdb_CMAKE_ARGS -G${CMAKE_GENERATOR}) CHECK_C_COMPILER_FLAG("-Wno-stringop-truncation" HAS_WARNING_STRINGOP_TRUNCATION) if(HAS_WARNING_STRINGOP_TRUNCATION) - list(APPEND rocksdb_CMAKE_ARGS -DCMAKE_C_FLAGS="-Wno-stringop-truncation") + list(APPEND rocksdb_CMAKE_ARGS -DCMAKE_C_FLAGS=-Wno-stringop-truncation) + endif() + include(CheckCXXCompilerFlag) + check_cxx_compiler_flag("-Wno-deprecated-copy" HAS_WARNING_DEPRECATED_COPY) + if(HAS_WARNING_DEPRECATED_COPY) + set(rocksdb_CXX_FLAGS -Wno-deprecated-copy) + endif() + check_cxx_compiler_flag("-Wno-pessimizing-move" HAS_WARNING_PESSIMIZING_MOVE) + if(HAS_WARNING_PESSIMIZING_MOVE) + set(rocksdb_CXX_FLAGS "${rocksdb_CXX_FLAGS} -Wno-pessimizing-move") + endif() + if(rocksdb_CXX_FLAGS) + list(APPEND rocksdb_CMAKE_ARGS -DCMAKE_CXX_FLAGS='${rocksdb_CXX_FLAGS}') endif() # we use an external project and copy the sources to bin directory to ensure # that object files are built outside of the source tree.