@@ -5,38 +5,36 @@ if (NOT ENABLE_ROCKSDB OR NO_SSE3_OR_HIGHER) # assumes SSE4.2 and PCLMUL
55 return ()
66endif ()
77
8+ # not in original build system, otherwise xxHash.cc fails to compile with ClickHouse C++23 default
9+ set (CMAKE_CXX_STANDARD 20)
10+
11+ # Always disable jemalloc for rocksdb by default because it introduces non-standard jemalloc APIs
12+ option (WITH_JEMALLOC "build with JeMalloc" OFF )
13+
14+ option (WITH_LIBURING "build with liburing" OFF ) # TODO could try to enable this conditionally, depending on ClickHouse's ENABLE_LIBURING
15+
816# ClickHouse cannot be compiled without snappy, lz4, zlib, zstd
917option (WITH_SNAPPY "build with SNAPPY" ON )
1018option (WITH_LZ4 "build with lz4" ON )
1119option (WITH_ZLIB "build with zlib" ON )
1220option (WITH_ZSTD "build with zstd" ON )
1321
14- if (ENABLE_JEMALLOC)
15- add_definitions (-DROCKSDB_JEMALLOC -DJEMALLOC_NO_DEMANGLE )
16- list (APPEND THIRDPARTY_LIBS ch_contrib::jemalloc)
17- endif ()
18-
19- if (ENABLE_LIBURING)
20- add_definitions (-DROCKSDB_IOURING_PRESENT )
21- list (APPEND THIRDPARTY_LIBS ch_contrib::liburing)
22- endif ()
23-
24- if (WITH_SNAPPY)
22+ if (WITH_SNAPPY)
2523 add_definitions (-DSNAPPY )
2624 list (APPEND THIRDPARTY_LIBS ch_contrib::snappy)
2725endif ()
2826
29- if (WITH_ZLIB)
27+ if (WITH_ZLIB)
3028 add_definitions (-DZLIB )
3129 list (APPEND THIRDPARTY_LIBS ch_contrib::zlib)
3230endif ()
3331
34- if (WITH_LZ4)
32+ if (WITH_LZ4)
3533 add_definitions (-DLZ4 )
3634 list (APPEND THIRDPARTY_LIBS ch_contrib::lz4)
3735endif ()
3836
39- if (WITH_ZSTD)
37+ if (WITH_ZSTD)
4038 add_definitions (-DZSTD )
4139 list (APPEND THIRDPARTY_LIBS ch_contrib::zstd)
4240endif ()
@@ -90,7 +88,6 @@ set(SOURCES
9088 ${ROCKSDB_SOURCE_DIR} /cache /sharded_cache.cc
9189 ${ROCKSDB_SOURCE_DIR} /cache /tiered_secondary_cache.cc
9290 ${ROCKSDB_SOURCE_DIR} /db/arena_wrapped_db_iter.cc
93- ${ROCKSDB_SOURCE_DIR} /db/attribute_group_iterator_impl.cc
9491 ${ROCKSDB_SOURCE_DIR} /db/blob/blob_contents.cc
9592 ${ROCKSDB_SOURCE_DIR} /db/blob/blob_fetcher.cc
9693 ${ROCKSDB_SOURCE_DIR} /db/blob/blob_file_addition.cc
@@ -107,7 +104,6 @@ set(SOURCES
107104 ${ROCKSDB_SOURCE_DIR} /db/blob/prefetch_buffer_collection.cc
108105 ${ROCKSDB_SOURCE_DIR} /db/builder.cc
109106 ${ROCKSDB_SOURCE_DIR} /db/c.cc
110- ${ROCKSDB_SOURCE_DIR} /db/coalescing_iterator.cc
111107 ${ROCKSDB_SOURCE_DIR} /db/column_family.cc
112108 ${ROCKSDB_SOURCE_DIR} /db/compaction/compaction.cc
113109 ${ROCKSDB_SOURCE_DIR} /db/compaction/compaction_iterator.cc
@@ -128,7 +124,6 @@ set(SOURCES
128124 ${ROCKSDB_SOURCE_DIR} /db/db_impl/db_impl_write.cc
129125 ${ROCKSDB_SOURCE_DIR} /db/db_impl/db_impl_compaction_flush.cc
130126 ${ROCKSDB_SOURCE_DIR} /db/db_impl/db_impl_files.cc
131- ${ROCKSDB_SOURCE_DIR} /db/db_impl/db_impl_follower.cc
132127 ${ROCKSDB_SOURCE_DIR} /db/db_impl/db_impl_open.cc
133128 ${ROCKSDB_SOURCE_DIR} /db/db_impl/db_impl_debug.cc
134129 ${ROCKSDB_SOURCE_DIR} /db/db_impl/db_impl_experimental.cc
@@ -186,7 +181,6 @@ set(SOURCES
186181 ${ROCKSDB_SOURCE_DIR} /env/env_encryption.cc
187182 ${ROCKSDB_SOURCE_DIR} /env/file_system.cc
188183 ${ROCKSDB_SOURCE_DIR} /env/file_system_tracer.cc
189- ${ROCKSDB_SOURCE_DIR} /env/fs_on_demand.cc
190184 ${ROCKSDB_SOURCE_DIR} /env/fs_remap.cc
191185 ${ROCKSDB_SOURCE_DIR} /env/mock_env.cc
192186 ${ROCKSDB_SOURCE_DIR} /env/unique_id_gen.cc
@@ -374,7 +368,6 @@ set(SOURCES
374368 ${ROCKSDB_SOURCE_DIR} /utilities/persistent_cache/volatile_tier_impl.cc
375369 ${ROCKSDB_SOURCE_DIR} /utilities/simulator_cache/cache_simulator.cc
376370 ${ROCKSDB_SOURCE_DIR} /utilities/simulator_cache/sim_cache.cc
377- ${ROCKSDB_SOURCE_DIR} /utilities/table_properties_collectors/compact_for_tiering_collector.cc
378371 ${ROCKSDB_SOURCE_DIR} /utilities/table_properties_collectors/compact_on_deletion_collector.cc
379372 ${ROCKSDB_SOURCE_DIR} /utilities/trace/file_trace_reader_writer.cc
380373 ${ROCKSDB_SOURCE_DIR} /utilities/trace/replayer_impl.cc
@@ -395,7 +388,6 @@ set(SOURCES
395388 ${ROCKSDB_SOURCE_DIR} /utilities/transactions/write_prepared_txn_db.cc
396389 ${ROCKSDB_SOURCE_DIR} /utilities/transactions/write_unprepared_txn.cc
397390 ${ROCKSDB_SOURCE_DIR} /utilities/transactions/write_unprepared_txn_db.cc
398- ${ROCKSDB_SOURCE_DIR} /utilities/types_util.cc
399391 ${ROCKSDB_SOURCE_DIR} /utilities/ttl/db_ttl_impl.cc
400392 ${ROCKSDB_SOURCE_DIR} /utilities/wal_filter.cc
401393 ${ROCKSDB_SOURCE_DIR} /utilities/write_batch_with_index/write_batch_with_index.cc
@@ -426,18 +418,14 @@ if(HAS_ARMV8_CRC)
426418endif (HAS_ARMV8_CRC )
427419
428420list (APPEND SOURCES
429- ${ROCKSDB_SOURCE_DIR} /port/port_posix.cc
430- ${ROCKSDB_SOURCE_DIR} /env/env_posix.cc
431- ${ROCKSDB_SOURCE_DIR} /env/fs_posix.cc
432- ${ROCKSDB_SOURCE_DIR} /env/io_posix.cc)
421+ " ${ROCKSDB_SOURCE_DIR} /port/port_posix.cc"
422+ " ${ROCKSDB_SOURCE_DIR} /env/env_posix.cc"
423+ " ${ROCKSDB_SOURCE_DIR} /env/fs_posix.cc"
424+ " ${ROCKSDB_SOURCE_DIR} /env/io_posix.cc" )
433425
434426add_library (_rocksdb ${SOURCES} )
435427add_library (ch_contrib::rocksdb ALIAS _rocksdb )
436428target_link_libraries (_rocksdb PRIVATE ${THIRDPARTY_LIBS} ${SYSTEM_LIBS} )
437429
438- # Not in the native build system but useful anyways:
439- # Make all functions in xxHash.h inline. Beneficial for performance: https://github.com/Cyan4973/xxHash/tree/v0.8.2#build-modifiers
440- target_compile_definitions (_rocksdb PRIVATE XXH_INLINE_ALL )
441-
442430# SYSTEM is required to overcome some issues
443431target_include_directories (_rocksdb SYSTEM BEFORE INTERFACE "${ROCKSDB_SOURCE_DIR} /include" )
0 commit comments