代码拉取完成,页面将自动刷新
同步操作将从 KWDB/kwdb 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
# Copyright (c) 2022-present, Shanghai Yunxi Technology Co, Ltd. All rights reserved.
BASEDIR := $(shell pwd)
BUILDDIR := $(BASEDIR)/build
GOPATH ?=
CC ?= $(shell which gcc)
CXX ?= $(shell which g++)
KWBASE_OSS ?= ON
# cmake configuration options
BUILD_TYPE ?= Debug
WITH_TESTS ?= OFF
INSTALL_PATH ?= $(BASEDIR)/install
CMAKE_CONFIG_OPTIONS ?= -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) \
-DCMAKE_INSTALL_PREFIX=$(INSTALL_PATH) -DKWBASE_OSS=$(KWBASE_OSS)
ALL_TESTS := cpplint kwdbts2-test kwbase-test
# if GOPATH not set, check and set available GOPATH
ifndef GOPATH
ifeq ($(shell echo $(BASEDIR) | grep -Po ".*/src/gitee.com/kwbasedb"),)
$(error Current source path isn't match GOPATH rule: ".*/src/gitee.com/kwbasedb")
else
GOPATH := $(shell echo $(BASEDIR) | sed -nE 's!(.*)/src/gitee.com/kwbasedb!\1!p')
endif
endif
all: build
################################################################
# #
# Build scope #
# #
################################################################
$(BUILDDIR):
@rm -rf $@ && mkdir -p $(BUILDDIR)
build: export GO111MODULE = off
build: .ALWAYS_REBUILD | bin/.submodules-initialized
$(info ========== $@ ==========)
GOPATH=$(GOPATH) cmake -B $(BUILDDIR) -S $(BASEDIR) $(CMAKE_CONFIG_OPTIONS)
$(MAKE) -C $(BUILDDIR) \
BUILDTYPE=$(if $(findstring $(BUILD_TYPE),debug Debug),development,release)
################################################################
# #
# Base test #
# #
################################################################
cpplint: .ALWAYS_REBUILD
$(info ========== $@ ==========)
cpplint --recursive --exclude=kwdbts2/mmap --exclude=kwdbts2/third_party \
--exclude=kwdbts2/roachpb --exclude=kwdbts2/**/tests \
--filter=-build/c++11,-build/include_subdir,-runtime/references,-readability/fn_size \
--linelength=125 $(BASEDIR)/kwdbts2
kwdbts2-test: BUILDDIR := $(addsuffix -kwdbts2-test, $(BUILDDIR))
kwdbts2-test: CMAKE_CONFIG_OPTIONS := -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) \
-DWITH_TESTS=ON -DBUILD_KWBASE=OFF
kwdbts2-test: .ALWAYS_REBUILD build | $(BUILDDIR)
$(info ========== $@ ==========)
$(MAKE) -C $(BUILDDIR) test
kwbase-test: export KWBASE_LOGIC_TEST_SKIP = true
kwbase-test: export KWBASE_NIGHTLY_STRESS = true
kwbase-test: BUILDDIR := $(addsuffix -kwbase-test, $(BUILDDIR))
kwbase-test: CMAKE_CONFIG_OPTIONS := -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) \
-DCMAKE_INSTALL_PREFIX=$(INSTALL_PATH) -DWITH_TESTS=OFF -DBUILD_KWBASE=ON
kwbase-test: .ALWAYS_REBUILD build | $(BUILDDIR)
$(info ========== $@ ==========)
$(info kwbase lint)
stdbuf -oL -eL $(MAKE) -C $(BASEDIR)/kwbase lint TESTTIMEOUT=45m \
GOPATH=$(GOPATH) KWDB_LIB_DIR=$(BUILDDIR)/lib
$(info Test kwbase)
stdbuf -oL -eL $(MAKE) -C $(BASEDIR)/kwbase test TESTTIMEOUT=45m \
GOPATH=$(GOPATH) KWDB_LIB_DIR=$(BUILDDIR)/lib
test: .ALWAYS_REBUILD $(ALL_TESTS) | $(BUILDDIR)
$(info ========== $@ ==========)
################################################################
# #
# Integration test #
# #
################################################################
MEMCHECK_FILES := \
$(wildcard $(addsuffix -kwdbts2-test, $(BUILDDIR))/tests/*)
$(MEMCHECK_FILES): .ALWAYS_REBUILD
$(info ========== $@ ==========)
cd $@ && valgrind --tool=memcheck --leak-check=full --max-threads=10000 \
--error-exitcode=1 $@/$(shell sed -nE 's/.*\/(.*).dir/\1/p' <<< $@)
memcheck: .ALWAYS_REBUILD $(MEMCHECK_FILES) | kwdbts2-test
$(info ========== $@ ==========)
test-logic: .ALWAYS_REBUILD | build
$(info ========== $@ ==========)
stdbuf -oL -eL $(MAKE) -C $(BASEDIR)/kwbase testlogic TESTTIMEOUT=45m \
GOPATH=$(GOPATH) KWDB_LIB_DIR=$(BUILDDIR)/lib
TEST_NAME ?= TEST_v2_integration_basic_v2.sh
TEST_TOPOLOGIES ?= 1n 5c 5cr
regression-test: T ?= *.sql
regression-test: BUILDDIR := $(addsuffix -regression-test, $(BUILDDIR))
regression-test: .ALWAYS_REBUILD | install
$(info ========== $@ ==========)
cd $(BASEDIR) && qa/run_test_local_v2.sh $(TEST_NAME) $(T) $(TEST_TOPOLOGIES)
regression-test-ha: TEST_NAME := TEST_v2_integration_distribute_v2.sh
regression-test-ha: TEST_TOPOLOGIES := 5c
regression-test-ha: .ALWAYS_REBUILD | regression-test
################################################################
# #
# PHONY #
# #
################################################################
install: .ALWAYS_REBUILD | build
$(info ========== $@ ==========)
$(MAKE) -C $(BUILDDIR) install
.PHONY: .ALWAYS_REBUILD install clean help bin/.submodules-initialized
.ALWAYS_REBUILD:
bin/.submodules-initialized:
gitdir=$$(git rev-parse --git-dir 2>/dev/null || true); \
if test -n "$$gitdir"; then \
git submodule update --init --recursive --remote; \
fi
clean:
rm -rf build*
rm -rf log/
rm -rf install/
rm -rf kwbase/.buildinfo
rm -rf kwbase/bin
rm -rf kwbase/build/defs.mk kwbase/build/defs.mk.sig
rm -rf qa/TEST_integration
@echo Clean Done.
help:
@echo "help: "
@echo " all: build alias"
@echo " build: project build"
@echo " cpplint: code specifications scan of kwdbts2"
@echo " kwdbts2-test: kwdbts2 unit test"
@echo " kwbase-test: kwbase lint test and unit test"
@echo " test: collection of cpplint,kwdbts2-test,kwbase-test"
@echo " memcheck: memory leak test of kwdbts2 unit"
@echo " test-logic: kwbase logic test"
@echo " regression-test: regression test of 1n,5c,5cr mode"
@echo " regression-test-ha: regression test of ha mode"
@echo " install: install build artifact to install directory"
@echo " clean: clean build and test files"
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。