Skip to content

Commit

Permalink
cmake: add option WITH_CORE_TOOLS to exclude tools except ldb and sst…
Browse files Browse the repository at this point in the history
…_dump (#6506)

Summary:
ldb and sst_dump are most important tools and they don't dependend on gflags. In cmake, we don't have an way to only build these two tools and exclude other tools. This is inconvenient if the environment has a problem with gflags. Add such an option WITH_CORE_TOOLS.
Pull Request resolved: #6506

Test Plan: cmake and build with WITH_TOOLS and without.

Differential Revision: D20473029

fbshipit-source-id: 3d730fd14bbae6eeeae7f9cc9aec50a4e488ad72
  • Loading branch information
siying committed Mar 18, 2020
1 parent aaabdc8 commit 4f48a2a
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 14 deletions.
8 changes: 7 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1166,9 +1166,15 @@ if(WITH_BENCHMARK_TOOLS)
${ROCKSDB_LIB})
endif()

option(WITH_CORE_TOOLS "build with ldb and sst_dump" ON)
option(WITH_TOOLS "build with tools" ON)
if(WITH_TOOLS)
if(WITH_CORE_TOOLS OR WITH_TOOLS)
add_subdirectory(tools)
add_custom_target(core_tools
DEPENDS ${core_tool_deps})
endif()

if(WITH_TOOLS)
add_subdirectory(db_stress_tool)
add_custom_target(tools
DEPENDS ${tool_deps})
Expand Down
35 changes: 22 additions & 13 deletions tools/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,21 +1,30 @@
set(TOOLS
set(CORE_TOOLS
sst_dump.cc
db_sanity_test.cc
write_stress.cc
ldb.cc
db_repl_stress.cc
dump/rocksdb_dump.cc
dump/rocksdb_undump.cc)
foreach(src ${TOOLS})
ldb.cc)
foreach(src ${CORE_TOOLS})
get_filename_component(exename ${src} NAME_WE)
add_executable(${exename}${ARTIFACT_SUFFIX}
${src})
target_link_libraries(${exename}${ARTIFACT_SUFFIX} ${ROCKSDB_LIB})
list(APPEND tool_deps ${exename})
list(APPEND core_tool_deps ${exename})
endforeach()

list(APPEND tool_deps)
if(WITH_TOOLS)
set(TOOLS
db_sanity_test.cc
write_stress.cc
db_repl_stress.cc
dump/rocksdb_dump.cc
dump/rocksdb_undump.cc)
foreach(src ${TOOLS})
get_filename_component(exename ${src} NAME_WE)
add_executable(${exename}${ARTIFACT_SUFFIX}
${src})
target_link_libraries(${exename}${ARTIFACT_SUFFIX} ${ROCKSDB_LIB})
list(APPEND tool_deps ${exename})
endforeach()

add_custom_target(ldb_tests
COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/ldb_tests.py
DEPENDS ldb)
add_custom_target(ldb_tests
COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/ldb_tests.py
DEPENDS ldb)
endif()

0 comments on commit 4f48a2a

Please sign in to comment.