blob: a652bbe608b0b2d1be365b5323319818370e410b [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#######################################
# tool_proto
#######################################
PROTOBUF_GENERATE_CPP(
TOOL_PROTO_SRCS TOOL_PROTO_HDRS TOOL_PROTO_TGTS
SOURCE_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../..
BINARY_ROOT ${CMAKE_CURRENT_BINARY_DIR}/../..
PROTO_FILES tool.proto)
add_library(tool_proto
${TOOL_PROTO_SRCS}
${TOOL_PROTO_HDRS})
target_link_libraries(tool_proto
kudu_common_proto
protobuf
tablet_proto
wire_protocol_proto)
#######################################
# kudu_tools_util
#######################################
add_library(kudu_tools_util
color.cc
diagnostics_log_parser.cc
table_scanner.cc
tool_action.cc
tool_action_common.cc
)
target_link_libraries(kudu_tools_util
cfile
consensus
gutil
kudu_client
kudu_common
kudu_fs
kudu_util
log
server_process
tablet
tool_proto
${KUDU_BASE_LIBS}
)
#######################################
# ksck
#######################################
add_library(ksck
ksck.cc
ksck_checksum.cc
ksck_remote.cc
ksck_results.cc
)
target_link_libraries(ksck
consensus
kudu_tools_util
master
master_proto
rebalance
server_base_proto
tserver_proto
tserver_service_proto
${KUDU_BASE_LIBS}
)
#######################################
# kudu_tools_rebalance
#######################################
add_library(kudu_tools_rebalance
rebalancer_tool.cc
tool_replica_util.cc
)
target_link_libraries(kudu_tools_rebalance
ksck
kudu_common
rebalance
${KUDU_BASE_LIBS}
)
#######################################
# kudu
#######################################
add_executable(kudu
master_rebuilder.cc
tool_action_cluster.cc
tool_action_diagnose.cc
tool_action_fs.cc
tool_action_hms.cc
tool_action_local_replica.cc
tool_action_master.cc
tool_action_pbc.cc
tool_action_perf.cc
tool_action_remote_replica.cc
tool_action_table.cc
tool_action_tablet.cc
tool_action_test.cc
tool_action_tserver.cc
tool_action_txn.cc
tool_action_wal.cc
tool_main.cc
)
target_link_libraries(kudu
${SANITIZER_OPTIONS_OVERRIDE}
${KRB5_REALM_OVERRIDE}
clock
consensus
gutil
krpc
ksck
kudu_client
kudu_common
kudu_fs
kudu_subprocess
kudu_tools_rebalance
kudu_util
log
master
mini_cluster
tablet
tool_proto
transactions
tserver
${KUDU_BASE_LIBS}
)
option(KUDU_CLIENT_INSTALL "Whether to install the Kudu command line tool" ON)
if(KUDU_CLIENT_INSTALL)
install(TARGETS kudu RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
else()
message(STATUS "Skipping install rule for the Kudu command line tool")
endif()
#######################################
# kudu_tools_test_util
#######################################
add_library(kudu_tools_test_util
tool_test_util.cc
)
target_link_libraries(kudu_tools_test_util
kudu_tools_util
kudu_util
)
#######################################
# Unit tests
#######################################
SET_KUDU_TEST_LINK_LIBS(
itest_util
ksck
kudu_hms
kudu_subprocess
kudu_tools_rebalance
kudu_tools_test_util
kudu_tools_util
mini_cluster)
ADD_KUDU_TEST(create-table-tool-test
NUM_SHARDS 4 PROCESSORS 3)
ADD_KUDU_TEST_DEPENDENCIES(create-table-tool-test
kudu)
ADD_KUDU_TEST(diagnostics_log_parser-test)
ADD_KUDU_TEST(ksck-test)
ADD_KUDU_TEST(ksck_remote-test
PROCESSORS 3
DATA_FILES ../scripts/first_argument.sh)
ADD_KUDU_TEST(kudu-admin-test
NUM_SHARDS 8 PROCESSORS 3)
ADD_KUDU_TEST_DEPENDENCIES(kudu-admin-test
kudu)
ADD_KUDU_TEST(kudu-tool-test
NUM_SHARDS 4 PROCESSORS 3
DATA_FILES testdata/sample-diagnostics-log.txt testdata/bad-diagnostics-log.txt
DATA_FILES ../scripts/first_argument.sh)
ADD_KUDU_TEST_DEPENDENCIES(kudu-tool-test
kudu)
ADD_KUDU_TEST(kudu-ts-cli-test)
ADD_KUDU_TEST_DEPENDENCIES(kudu-ts-cli-test
kudu)
ADD_KUDU_TEST(kudu-txn-cli-test)
ADD_KUDU_TEST_DEPENDENCIES(kudu-txn-cli-test
kudu)
ADD_KUDU_TEST(rebalancer_tool-test
NUM_SHARDS 8 PROCESSORS 3
DATA_FILES ../scripts/assign-location.py)
ADD_KUDU_TEST_DEPENDENCIES(rebalancer_tool-test
kudu)
ADD_KUDU_TEST(tool_action-test)