From 3482d4dc2a0ced5e3c11a939a94c719aaa10a4df Mon Sep 17 00:00:00 2001 From: sdong Date: Wed, 18 Mar 2020 10:57:46 -0700 Subject: [PATCH] cmake: add option WITH_CORE_TOOLS to exclude tools except ldb and sst_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: https://github.com/facebook/rocksdb/pull/6506 Test Plan: cmake and build with WITH_TOOLS and without. Differential Revision: D20473029 fbshipit-source-id: 3d730fd14bbae6eeeae7f9cc9aec50a4e488ad72 --- CMakeLists.txt | 8 +++++++- tools/CMakeLists.txt | 35 ++++++++++++++++++++++------------- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index aeef92e25..4c0d5f2b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1169,9 +1169,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}) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 50ee3b1b6..4a4b0bcda 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -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()