Don't compile ldb tool into static library

Summary:
This is first step of my effort to reduce size of librocksdb.a for use in mobile.

ldb object files are huge and are ment to be used as a command line tool. I moved them to `tools/` directory and include them only when compiling `ldb`

This diff reduced librocksdb.a from 42MB to 39MB on my mac (not stripped).

Test Plan: ran ldb

Reviewers: dhruba, haobo, sdong, ljin, yhchiang

Reviewed By: yhchiang

CC: leveldb

Differential Revision: https://reviews.facebook.net/D17823
main
Igor Canadi 11 years ago
parent dbe0f327ca
commit e296577ef6
  1. 14
      Makefile
  2. 2
      tools/ldb.cc
  3. 2
      tools/ldb_cmd.cc
  4. 2
      tools/ldb_cmd.h
  5. 0
      tools/ldb_cmd_execute_result.h
  6. 4
      tools/ldb_tool.cc
  7. 6
      tools/ldb_tool.h

@ -106,13 +106,17 @@ TESTS = \
geodb_test
TOOLS = \
sst_dump \
sst_dump \
db_sanity_test \
db_stress \
ldb \
db_stress \
ldb \
db_repl_stress \
blob_store_bench
LDB_OBJECTS = \
tools/ldb_cmd.o \
tools/ldb_tool.o
PROGRAMS = db_bench signal_test table_reader_bench $(TESTS) $(TOOLS)
BENCHMARKS = db_bench_sqlite3 db_bench_tree_db table_reader_bench
@ -410,8 +414,8 @@ auto_roll_logger_test: util/auto_roll_logger_test.o $(LIBOBJECTS) $(TESTHARNESS)
sst_dump: tools/sst_dump.o $(LIBOBJECTS)
$(CXX) tools/sst_dump.o $(LIBOBJECTS) $(EXEC_LDFLAGS) -o $@ $(LDFLAGS) $(COVERAGEFLAGS)
ldb: tools/ldb.o $(LIBOBJECTS)
$(CXX) tools/ldb.o $(LIBOBJECTS) $(EXEC_LDFLAGS) -o $@ $(LDFLAGS) $(COVERAGEFLAGS)
ldb: tools/ldb.o $(LDB_OBJECTS) $(LIBOBJECTS)
$(CXX) tools/ldb.o $(LDB_OBJECTS) $(LIBOBJECTS) $(EXEC_LDFLAGS) -o $@ $(LDFLAGS) $(COVERAGEFLAGS)
# ---------------------------------------------------------------------------
# Jni stuff

@ -4,7 +4,7 @@
// of patent rights can be found in the PATENTS file in the same directory.
//
#include "rocksdb/ldb_tool.h"
#include "tools/ldb_tool.h"
int main(int argc, char** argv) {
rocksdb::LDBTool tool;

@ -3,7 +3,7 @@
// LICENSE file in the root directory of this source tree. An additional grant
// of patent rights can be found in the PATENTS file in the same directory.
//
#include "util/ldb_cmd.h"
#include "tools/ldb_cmd.h"
#include "db/dbformat.h"
#include "db/db_impl.h"

@ -17,7 +17,7 @@
#include "rocksdb/iterator.h"
#include "rocksdb/slice.h"
#include "util/logging.h"
#include "util/ldb_cmd_execute_result.h"
#include "tools/ldb_cmd_execute_result.h"
#include "util/string_util.h"
#include "utilities/utility_db.h"
#include "utilities/ttl/db_ttl.h"

@ -3,8 +3,8 @@
// LICENSE file in the root directory of this source tree. An additional grant
// of patent rights can be found in the PATENTS file in the same directory.
//
#include "rocksdb/ldb_tool.h"
#include "util/ldb_cmd.h"
#include "tools/ldb_tool.h"
#include "tools/ldb_cmd.h"
namespace rocksdb {

@ -2,8 +2,8 @@
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree. An additional grant
// of patent rights can be found in the PATENTS file in the same directory.
#ifndef STORAGE_ROCKSDB_INCLUDE_LDB_TOOL_H
#define STORAGE_ROCKSDB_INCLUDE_LDB_TOOL_H
#pragma once
#include "rocksdb/options.h"
namespace rocksdb {
@ -14,5 +14,3 @@ class LDBTool {
};
} // namespace rocksdb
#endif // STORAGE_ROCKSDB_INCLUDE_LDB_TOOL_H
Loading…
Cancel
Save