Skip to content

Commit 24e8b63

Browse files
authored
Decouple the client and server source code. (#54)
* Decouple the client and server source code.
1 parent 00e2625 commit 24e8b63

File tree

215 files changed

+227194
-144
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

215 files changed

+227194
-144
lines changed

.github/workflows/pull_request.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
- name: Cpplint
2727
run: |
2828
ln -snf $PWD/.linters/cpp/hooks/pre-commit.sh $PWD/.linters/cpp/pre-commit.sh
29-
.linters/cpp/pre-commit.sh $(git --no-pager diff --diff-filter=d --name-only HEAD^ HEAD)
29+
.linters/cpp/pre-commit.sh
3030
3131
build:
3232
name: build

.linters/cpp/hooks/pre-commit.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ if [ $# -eq 0 ];then
1616
echo "You have unstaged changes, please stage or stash them first."
1717
exit 1
1818
fi
19-
CHECK_FILES=$(git diff --name-only --diff-filter=ACMRTUXB HEAD | egrep '.*\.cpp$|.*\.h$|.*\.inl$' | grep -v 'com_vesoft_client_NativeClient.h' | grep -v 'com_vesoft_nebula_NebulaCodec.h')
19+
CHECK_FILES=$(git diff --name-only --diff-filter=ACMRTUXB HEAD | egrep '.*\.cpp$|.*\.h$|.*\.inl$' | grep -v 'com_vesoft_client_NativeClient.h' | grep -v 'com_vesoft_nebula_NebulaCodec.h' | grep -v 'interface')
2020
else
2121
CHECK_FILES=$(find $@ -not \( -path src/CMakeFiles -prune \) \
2222
-not \( -path src/interface/gen-cpp2 -prune \) \

CMakeLists.txt

+10-75
Original file line numberDiff line numberDiff line change
@@ -31,43 +31,7 @@ option(DISABLE_CLONE_COMMON "Automatically disable clone common module" OFF)
3131
add_definitions(-DNEBULA_HOME=${CMAKE_SOURCE_DIR})
3232

3333
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
34-
35-
# Submodules
36-
if("${NEBULA_COMMON_REPO_URL}" STREQUAL "")
37-
SET(NEBULA_COMMON_REPO_URL "https://github.com/vesoft-inc/nebula-common.git")
38-
endif()
39-
40-
if("${NEBULA_COMMON_REPO_TAG}" STREQUAL "")
41-
SET(NEBULA_COMMON_REPO_TAG "master")
42-
endif()
43-
44-
include(FetchModule)
45-
if(NOT NEBULA_COMMON_SOURCE_DIR)
46-
if (NOT ${DISABLE_CLONE_COMMON})
47-
nebula_fetch_module(
48-
NAME
49-
common
50-
URL
51-
${NEBULA_COMMON_REPO_URL}
52-
TAG
53-
${NEBULA_COMMON_REPO_TAG}
54-
UPDATE
55-
${ENABLE_MODULE_UPDATE}
56-
)
57-
endif()
58-
set(nebula_common_source_dir ${CMAKE_SOURCE_DIR}/modules/common)
59-
set(nebula_common_build_dir ${CMAKE_BINARY_DIR}/modules/common)
60-
else()
61-
set(nebula_common_source_dir ${NEBULA_COMMON_SOURCE_DIR})
62-
if(NOT NEBULA_COMMON_BUILD_DIR)
63-
set(nebula_common_build_dir ${CMAKE_BINARY_DIR}/modules/common)
64-
else()
65-
set(nebula_common_build_dir ${NEBULA_COMMON_BUILD_DIR})
66-
endif()
67-
endif()
68-
69-
list(APPEND CMAKE_MODULE_PATH ${nebula_common_source_dir}/cmake)
70-
list(APPEND CMAKE_MODULE_PATH ${nebula_common_source_dir}/cmake/nebula)
34+
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/nebula)
7135

7236
include(PlatformCheck)
7337
include(NebulaCMakeMacros)
@@ -82,19 +46,9 @@ include(SanitizerConfig)
8246
include(GitHooksConfig)
8347
include(GitInfoConfig)
8448
include(NebulaCustomTargets)
85-
include(ConfigNebulaCommon)
8649

8750
set(ENABLE_PIC ON FORCE)
8851
set(ENABLE_JEMALLOC OFF FORCE)
89-
config_nebula_common(
90-
SOURCE_DIR ${nebula_common_source_dir}
91-
BUILD_DIR ${nebula_common_build_dir}
92-
)
93-
94-
add_custom_target(
95-
clean-modules
96-
DEPENDS clean-common
97-
)
9852

9953
include(GNUInstallDirs)
10054

@@ -111,10 +65,6 @@ macro(nebula_add_library name type)
11165
APPEND
11266
FILE ${CMAKE_BINARY_DIR}/${PACKAGE_NAME}-config.cmake
11367
)
114-
add_dependencies(
115-
${name}
116-
common_project
117-
)
11868
endmacro()
11969

12070
nebula_add_shared_linker_flag(-static-libstdc++)
@@ -132,31 +82,16 @@ install(
13282
PATTERN ".gitkeep" EXCLUDE
13383
)
13484

135-
# resuse the datatypes in common
136-
install(DIRECTORY ${nebula_common_source_dir}/src/common/datatypes
137-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/common
138-
FILES_MATCHING PATTERN "*.h")
139-
140-
# reuse the response of graph in common
141-
install(DIRECTORY ${nebula_common_source_dir}/src/common/graph
142-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/common
143-
FILES_MATCHING PATTERN "*.h")
144-
145-
# reuse the time utils in common
146-
install(DIRECTORY ${nebula_common_source_dir}/src/common/time
147-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/common
148-
FILES_MATCHING PATTERN "TimeConversion.h")
149-
150-
# reuse the thrift types in common
15185
install(
152-
FILES
153-
${nebula_common_source_dir}/src/common/thrift/ThriftTypes.h
154-
PERMISSIONS
155-
OWNER_WRITE OWNER_READ
156-
GROUP_READ
157-
WORLD_READ
158-
DESTINATION
159-
${CMAKE_INSTALL_INCLUDEDIR}/common/thrift
86+
DIRECTORY include/common
87+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
88+
PATTERN ".gitkeep" EXCLUDE
89+
)
90+
91+
add_custom_target(
92+
format
93+
COMMAND "find" "include" "src/client" "src/datatypes" "src/time" "src/graph" "-type" "f" "\\(" "-iname" "\\*.h" "-o" "-iname" "\\*.cpp" "\\)" "|" "xargs" "clang-format" "-i"
94+
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
16095
)
16196

16297
include(CPackage)

cmake/CPackage.cmake

+170
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
# Copyright (c) 2020 vesoft inc. All rights reserved.
2+
#
3+
# This source code is licensed under Apache 2.0 License,
4+
# attached with Common Clause Condition 1.0, found in the LICENSES directory.
5+
#
6+
7+
8+
# Used to package into deb or RPM files
9+
macro(package to_one name home_page scripts_dir)
10+
set(CPACK_PACKAGE_DESCRIPTION ${name})
11+
set(CPACK_PACKAGE_CONTACT ${name})
12+
set(CPACK_PACKAGE_VERSION ${NEBULA_BUILD_VERSION})
13+
set(CPACK_RPM_PACKAGE_LICENSE "Apache 2.0 + Common Clause 1.0")
14+
set(CPACK_PACKAGE_NAME ${name})
15+
# set(CPACK_SET_DESTDIR TRUE)
16+
set(CPACK_PACKAGE_RELOCATABLE ON)
17+
set(CPACK_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
18+
set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
19+
if (EXISTS "/etc/redhat-release")
20+
if(ENABLE_PACKAGE_TAR)
21+
set(CPACK_GENERATOR "TGZ")
22+
else()
23+
set(CPACK_GENERATOR "RPM")
24+
endif()
25+
file (STRINGS "/etc/redhat-release" SYSTEM_NAME)
26+
if (${SYSTEM_NAME} MATCHES "CentOS")
27+
set(HOST_SYSTEM_NAME "el")
28+
execute_process(
29+
COMMAND echo ${SYSTEM_NAME}
30+
COMMAND tr -dc "0-9."
31+
COMMAND cut -d "." -f1
32+
OUTPUT_VARIABLE HOST_SYSTEM_VER
33+
OUTPUT_STRIP_TRAILING_WHITESPACE
34+
)
35+
string(CONCAT HOST_SYSTEM_VER ${HOST_SYSTEM_NAME} ${HOST_SYSTEM_VER})
36+
elseif (${SYSTEM_NAME} MATCHES "Fedora")
37+
set(HOST_SYSTEM_NAME "fc")
38+
execute_process(
39+
COMMAND echo ${SYSTEM_NAME}
40+
COMMAND cut -d " " -f3
41+
OUTPUT_VARIABLE HOST_SYSTEM_VER
42+
OUTPUT_STRIP_TRAILING_WHITESPACE
43+
)
44+
string(CONCAT HOST_SYSTEM_VER ${HOST_SYSTEM_NAME} ${HOST_SYSTEM_VER})
45+
else()
46+
set(HOST_SYSTEM_VER "Unknown")
47+
endif()
48+
elseif (EXISTS "/etc/lsb-release")
49+
if(ENABLE_PACKAGE_TAR)
50+
set(CPACK_GENERATOR "TGZ")
51+
else()
52+
set(CPACK_GENERATOR "DEB")
53+
endif()
54+
file (STRINGS "/etc/lsb-release" SYSTEM_NAME)
55+
execute_process(
56+
COMMAND echo "${SYSTEM_NAME}"
57+
COMMAND cut -d ";" -f 1
58+
COMMAND cut -d "=" -f 2
59+
OUTPUT_VARIABLE HOST_SYSTEM_NAME
60+
OUTPUT_STRIP_TRAILING_WHITESPACE
61+
)
62+
execute_process(
63+
COMMAND echo "${SYSTEM_NAME}"
64+
COMMAND cut -d ";" -f 2
65+
COMMAND cut -d "=" -f 2
66+
OUTPUT_VARIABLE HOST_SYSTEM_VER
67+
OUTPUT_STRIP_TRAILING_WHITESPACE
68+
)
69+
string(REPLACE "." "" HOST_SYSTEM_VER ${HOST_SYSTEM_VER})
70+
if (${HOST_SYSTEM_NAME} MATCHES "Ubuntu")
71+
string(CONCAT HOST_SYSTEM_VER "ubuntu" ${HOST_SYSTEM_VER})
72+
# the ubuntu need to modify the architecture name
73+
if (${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "x86_64")
74+
set(CMAKE_HOST_SYSTEM_PROCESSOR "amd64")
75+
endif()
76+
# Adapt the Kylin system
77+
elseif (${HOST_SYSTEM_NAME} MATCHES "Kylin" AND ${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "aarch64")
78+
string(CONCAT HOST_SYSTEM_VER ${HOST_SYSTEM_NAME} ${HOST_SYSTEM_VER})
79+
set(CMAKE_HOST_SYSTEM_PROCESSOR "arm64")
80+
endif()
81+
elseif (EXISTS "/etc/issue")
82+
file (STRINGS "/etc/issue" SYSTEM_NAME)
83+
execute_process(
84+
COMMAND echo "${SYSTEM_NAME}"
85+
COMMAND sed -n "1p"
86+
COMMAND cut -d " " -f 1
87+
OUTPUT_VARIABLE HOST_SYSTEM_NAME
88+
OUTPUT_STRIP_TRAILING_WHITESPACE
89+
)
90+
execute_process(
91+
COMMAND echo "${SYSTEM_NAME}"
92+
COMMAND sed -n "1p"
93+
COMMAND cut -d " " -f 3
94+
OUTPUT_VARIABLE HOST_SYSTEM_VER
95+
OUTPUT_STRIP_TRAILING_WHITESPACE
96+
)
97+
if (${HOST_SYSTEM_NAME} MATCHES "Debian")
98+
execute_process(
99+
COMMAND echo "${SYSTEM_NAME}"
100+
COMMAND sed -n "1p"
101+
COMMAND cut -d " " -f 3
102+
OUTPUT_VARIABLE HOST_SYSTEM_VER
103+
OUTPUT_STRIP_TRAILING_WHITESPACE
104+
)
105+
if(ENABLE_PACKAGE_TAR)
106+
set(CPACK_GENERATOR "TGZ")
107+
else()
108+
set(CPACK_GENERATOR "DEB")
109+
endif()
110+
# Adapt the NeoKylin system
111+
elseif (${HOST_SYSTEM_NAME} MATCHES "NeoKylin" AND ${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES "mips64")
112+
execute_process(
113+
COMMAND echo "${SYSTEM_NAME}"
114+
COMMAND sed -n "1p"
115+
COMMAND cut -d " " -f 4
116+
OUTPUT_VARIABLE HOST_SYSTEM_VER
117+
OUTPUT_STRIP_TRAILING_WHITESPACE
118+
)
119+
set(CMAKE_HOST_SYSTEM_PROCESSOR "mips64el")
120+
if(ENABLE_PACKAGE_TAR)
121+
set(CPACK_GENERATOR "TGZ")
122+
else()
123+
set(CPACK_GENERATOR "RPM")
124+
endif()
125+
endif()
126+
string(CONCAT HOST_SYSTEM_VER ${HOST_SYSTEM_NAME} ${HOST_SYSTEM_VER})
127+
set(CMAKE_HOST_SYSTEM_PROCESSOR "mips64el")
128+
else()
129+
set(HOST_SYSTEM_VER "Unknown")
130+
endif()
131+
132+
message(STATUS "HOST_SYSTEM_NAME is ${HOST_SYSTEM_NAME}")
133+
message(STATUS "HOST_SYSTEM_VER is ${HOST_SYSTEM_VER}")
134+
message(STATUS "CPACK_GENERATOR is ${CPACK_GENERATOR}")
135+
message(STATUS "CMAKE_HOST_SYSTEM_PROCESSOR is ${CMAKE_HOST_SYSTEM_PROCESSOR}")
136+
137+
set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}.${HOST_SYSTEM_VER}.${CMAKE_HOST_SYSTEM_PROCESSOR})
138+
if (${to_one})
139+
set(CPACK_COMPONENTS_GROUPING ALL_COMPONENTS_IN_ONE)
140+
else ()
141+
set(CPACK_COMPONENTS_GROUPING ONE_PER_GROUP)
142+
endif()
143+
144+
set(CPACK_DEB_COMPONENT_INSTALL YES)
145+
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${CMAKE_HOST_SYSTEM_PROCESSOR})
146+
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${home_page})
147+
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA ${scripts_dir}/postinst)
148+
149+
set(CPACK_RPM_SPEC_MORE_DEFINE "%define debug_package %{nil}
150+
%define __os_install_post %{nil}")
151+
set(CPACK_RPM_COMPONENT_INSTALL YES)
152+
set(CPACK_RPM_PACKAGE_ARCHITECTURE ${CMAKE_HOST_SYSTEM_PROCESSOR})
153+
set(CPACK_RPM_PACKAGE_URL ${home_page})
154+
set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE ${scripts_dir}/rpm_postinst)
155+
set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION /usr/local)
156+
set(CPACK_RPM_PACKAGE_RELOCATABLE ON)
157+
158+
include(CPack)
159+
160+
cpack_add_component(common GROUP common)
161+
cpack_add_component(graph GROUP graph DEPENDS common)
162+
cpack_add_component(storage GROUP storage DEPENDS common)
163+
cpack_add_component(meta GROUP meta DEPENDS common)
164+
cpack_add_component(tool GROUP tool)
165+
cpack_add_component_group(common)
166+
cpack_add_component_group(graph)
167+
cpack_add_component_group(storage)
168+
cpack_add_component_group(meta)
169+
cpack_add_component_group(tool)
170+
endmacro()

cmake/ClangTidy.cmake

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
if (ENABLE_CLANG_TIDY)
2+
if (${CMAKE_VERSION} VERSION_LESS "3.6.0")
3+
message(FATAL_ERROR "clang-tidy requires CMake version at least 3.6.")
4+
endif()
5+
6+
find_program (CLANG_TIDY_PATH NAMES "clang-tidy")
7+
if (CLANG_TIDY_PATH)
8+
message(STATUS "Using clang-tidy: ${CLANG_TIDY_PATH}.")
9+
set (CMAKE_CXX_CLANG_TIDY ${CLANG_TIDY_PATH} --config=)
10+
else ()
11+
message(STATUS "clang-tidy is not found.")
12+
endif ()
13+
endif ()

0 commit comments

Comments
 (0)