Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
milvus
milvus
提交
a5b3dea1
M
milvus
项目概览
milvus
/
milvus
大约 1 年 前同步成功
通知
261
Star
22476
Fork
2472
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
milvus
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a5b3dea1
编写于
9月 18, 2019
作者:
Z
zhiru
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update
Former-commit-id: 3d3617149b664de4d6af554af6e984163b963fe6
上级
b364c8e3
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
90 addition
and
157 deletion
+90
-157
cpp/CMakeLists.txt
cpp/CMakeLists.txt
+3
-3
cpp/src/CMakeLists.txt
cpp/src/CMakeLists.txt
+39
-37
cpp/src/sdk/CMakeLists.txt
cpp/src/sdk/CMakeLists.txt
+0
-13
cpp/unittest/CMakeLists.txt
cpp/unittest/CMakeLists.txt
+33
-17
cpp/unittest/db/CMakeLists.txt
cpp/unittest/db/CMakeLists.txt
+2
-20
cpp/unittest/metrics/CMakeLists.txt
cpp/unittest/metrics/CMakeLists.txt
+2
-21
cpp/unittest/scheduler/CMakeLists.txt
cpp/unittest/scheduler/CMakeLists.txt
+2
-19
cpp/unittest/server/CMakeLists.txt
cpp/unittest/server/CMakeLists.txt
+4
-22
cpp/unittest/wrapper/CMakeLists.txt
cpp/unittest/wrapper/CMakeLists.txt
+5
-5
cpp/unittest/wrapper/utils.cpp
cpp/unittest/wrapper/utils.cpp
+0
-0
cpp/unittest/wrapper/utils.h
cpp/unittest/wrapper/utils.h
+0
-0
cpp/unittest/wrapper/wrapper_test.cpp
cpp/unittest/wrapper/wrapper_test.cpp
+0
-0
未找到文件。
cpp/CMakeLists.txt
浏览文件 @
a5b3dea1
...
...
@@ -69,9 +69,6 @@ message(STATUS "Milvus version: "
"
${
MILVUS_VERSION_MAJOR
}
.
${
MILVUS_VERSION_MINOR
}
.
${
MILVUS_VERSION_PATCH
}
"
"(full: '
${
MILVUS_VERSION
}
')"
)
find_package
(
CUDA
)
set
(
CUDA_NVCC_FLAGS
"
${
CUDA_NVCC_FLAGS
}
-Xcompiler -fPIC -std=c++11 -D_FORCE_INLINES -arch sm_60 --expt-extended-lambda"
)
set
(
CMAKE_CXX_STANDARD 14
)
set
(
CMAKE_CXX_STANDARD_REQUIRED on
)
...
...
@@ -87,6 +84,9 @@ else()
set
(
MILVUS_BUILD_ARCH unknown
)
endif
()
find_package
(
CUDA
)
set
(
CUDA_NVCC_FLAGS
"
${
CUDA_NVCC_FLAGS
}
-Xcompiler -fPIC -std=c++11 -D_FORCE_INLINES --expt-extended-lambda"
)
if
(
CMAKE_BUILD_TYPE STREQUAL
"Release"
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-O3 -fPIC -DELPP_THREAD_SAFE -fopenmp"
)
set
(
CUDA_NVCC_FLAGS
"
${
CUDA_NVCC_FLAGS
}
-O3"
)
...
...
cpp/src/CMakeLists.txt
浏览文件 @
a5b3dea1
...
...
@@ -27,55 +27,55 @@ foreach (dir ${CORE_INCLUDE_DIRS})
include_directories
(
${
dir
}
)
endforeach
()
aux_source_directory
(
cache cache_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/
cache cache_files
)
aux_source_directory
(
config config_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/
config config_files
)
aux_source_directory
(
db db_main_files
)
aux_source_directory
(
db/engine db_engine_files
)
aux_source_directory
(
db/insert db_insert_files
)
aux_source_directory
(
db/meta db_meta_files
)
aux_source_directory
(
db/scheduler
scheduler_files
)
aux_source_directory
(
db/scheduler/context
scheduler_context_files
)
aux_source_directory
(
db/scheduler/task
scheduler_task_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/
db db_main_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/
db/engine db_engine_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/
db/insert db_insert_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/
db/meta db_meta_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/db/scheduler db_
scheduler_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/db/scheduler/context db_
scheduler_context_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/db/scheduler/task db_
scheduler_task_files
)
set
(
db_scheduler_files
${
scheduler_files
}
${
scheduler_context_files
}
${
scheduler_task_files
}
${
db_
scheduler_files
}
${
db_
scheduler_context_files
}
${
db_
scheduler_task_files
}
)
set
(
grpc_service_files
grpc/gen-milvus/milvus.grpc.pb.cc
grpc/gen-milvus/milvus.pb.cc
grpc/gen-status/status.grpc.pb.cc
grpc/gen-status/status.pb.cc
${
MILVUS_ENGINE_SRC
}
/
grpc/gen-milvus/milvus.grpc.pb.cc
${
MILVUS_ENGINE_SRC
}
/
grpc/gen-milvus/milvus.pb.cc
${
MILVUS_ENGINE_SRC
}
/
grpc/gen-status/status.grpc.pb.cc
${
MILVUS_ENGINE_SRC
}
/
grpc/gen-status/status.pb.cc
)
aux_source_directory
(
metrics metrics_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/
metrics metrics_files
)
aux_source_directory
(
scheduler/action scheduler_actio
n_files
)
aux_source_directory
(
scheduler/event scheduler_event
_files
)
aux_source_directory
(
scheduler/job scheduler_job
_files
)
aux_source_directory
(
scheduler/resource scheduler_resource
_files
)
aux_source_directory
(
scheduler/task scheduler_task
_files
)
aux_source_directory
(
scheduler scheduler_root
_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/scheduler scheduler_mai
n_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/scheduler/action scheduler_action
_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/scheduler/event scheduler_event
_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/scheduler/job scheduler_job
_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/scheduler/resource scheduler_resource
_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/scheduler/task scheduler_task
_files
)
set
(
scheduler_files
${
scheduler_main_files
}
${
scheduler_action_files
}
${
scheduler_event_files
}
${
scheduler_job_files
}
${
scheduler_resource_files
}
${
scheduler_task_files
}
${
scheduler_root_files
}
)
aux_source_directory
(
server server_files
)
aux_source_directory
(
server/grpc_impl grpc_server_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/
server server_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/
server/grpc_impl grpc_server_files
)
aux_source_directory
(
utils utils_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/
utils utils_files
)
aux_source_directory
(
wrapper/knowhere
knowhere_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/wrapper/knowhere wrapper_
knowhere_files
)
set
(
db
_files
set
(
engine
_files
${
CMAKE_CURRENT_SOURCE_DIR
}
/main.cpp
${
cache_files
}
${
db_main_files
}
...
...
@@ -85,30 +85,32 @@ set(db_files
${
db_scheduler_files
}
${
metrics_files
}
${
utils_files
}
${
knowhere_files
}
${
wrapper_
knowhere_files
}
)
include_directories
(
/usr/include
)
include_directories
(
"
${
CUDA_TOOLKIT_ROOT_DIR
}
/include"
)
include_directories
(
grpc/gen-status
)
include_directories
(
grpc/gen-milvus
)
include_directories
(
${
MILVUS_ENGINE_SRC
}
/
grpc/gen-status
)
include_directories
(
${
MILVUS_ENGINE_SRC
}
/
grpc/gen-milvus
)
set
(
client_grpc_lib
grpcpp_channelz
grpc++
grpc
grpc_protobuf
grpc_protoc
)
grpc_protoc
)
set
(
prometheus_lib
prometheus-cpp-push
prometheus-cpp-pull
prometheus-cpp-core
)
prometheus-cpp-core
)
set
(
boost_lib
boost_system_static
boost_filesystem_static
boost_serialization_static
)
boost_serialization_static
)
set
(
third_party_libs
sqlite
...
...
@@ -149,7 +151,7 @@ if (NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
)
endif
()
cuda_add_library
(
milvus_engine STATIC
${
db
_files
}
)
cuda_add_library
(
milvus_engine STATIC
${
engine
_files
}
)
target_link_libraries
(
milvus_engine
${
engine_libs
}
${
third_party_libs
}
)
add_library
(
metrics STATIC
${
metrics_files
}
)
...
...
cpp/src/sdk/CMakeLists.txt
浏览文件 @
a5b3dea1
...
...
@@ -20,23 +20,10 @@
aux_source_directory
(
interface interface_files
)
include_directories
(
/usr/include
)
include_directories
(
include
)
include_directories
(
/usr/local/include
)
aux_source_directory
(
grpc grpc_client_files
)
include_directories
(
${
CMAKE_SOURCE_DIR
}
/src/grpc/gen-milvus
)
include_directories
(
${
CMAKE_SOURCE_DIR
}
/src/grpc/gen-status
)
set
(
grpc_service_files
${
CMAKE_SOURCE_DIR
}
/src/grpc/gen-milvus/milvus.grpc.pb.cc
${
CMAKE_SOURCE_DIR
}
/src/grpc/gen-milvus/milvus.pb.cc
${
CMAKE_SOURCE_DIR
}
/src/grpc/gen-status/status.grpc.pb.cc
${
CMAKE_SOURCE_DIR
}
/src/grpc/gen-status/status.pb.cc
)
add_library
(
milvus_sdk STATIC
${
interface_files
}
${
grpc_client_files
}
...
...
cpp/unittest/CMakeLists.txt
浏览文件 @
a5b3dea1
...
...
@@ -28,37 +28,37 @@ aux_source_directory(${MILVUS_ENGINE_SRC}/db db_main_files)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/db/engine db_engine_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/db/insert db_insert_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/db/meta db_meta_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/db/scheduler scheduler_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/db/scheduler/context scheduler_context_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/db/scheduler/task scheduler_task_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/db/scheduler
db_
scheduler_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/db/scheduler/context
db_
scheduler_context_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/db/scheduler/task
db_
scheduler_task_files
)
set
(
db_scheduler_files
${
scheduler_files
}
${
scheduler_context_files
}
${
scheduler_task_files
}
${
db_
scheduler_files
}
${
db_
scheduler_context_files
}
${
db_
scheduler_task_files
}
)
set
(
grpc_service_files
grpc/gen-milvus/milvus.grpc.pb.cc
grpc/gen-milvus/milvus.pb.cc
grpc/gen-status/status.grpc.pb.cc
grpc/gen-status/status.pb.cc
${
MILVUS_ENGINE_SRC
}
/
grpc/gen-milvus/milvus.grpc.pb.cc
${
MILVUS_ENGINE_SRC
}
/
grpc/gen-milvus/milvus.pb.cc
${
MILVUS_ENGINE_SRC
}
/
grpc/gen-status/status.grpc.pb.cc
${
MILVUS_ENGINE_SRC
}
/
grpc/gen-status/status.pb.cc
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/metrics metrics_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/scheduler scheduler_main_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/scheduler/action scheduler_action_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/scheduler/event scheduler_event_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/scheduler/job scheduler_job_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/scheduler/resource scheduler_resource_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/scheduler/task scheduler_task_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/scheduler scheduler_root_files
)
set
(
scheduler_files
${
scheduler_main_files
}
${
scheduler_action_files
}
${
scheduler_event_files
}
${
scheduler_job_files
}
${
scheduler_resource_files
}
${
scheduler_task_files
}
${
scheduler_root_files
}
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/server server_files
)
...
...
@@ -66,10 +66,7 @@ aux_source_directory(${MILVUS_ENGINE_SRC}/server/grpc_impl grpc_server_files)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/utils utils_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/wrapper/knowhere knowhere_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/db db_srcs
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/config config_files
)
aux_source_directory
(
${
MILVUS_ENGINE_SRC
}
/wrapper/knowhere wrapper_knowhere_files
)
set
(
unittest_files
${
CMAKE_CURRENT_SOURCE_DIR
}
/main.cpp
)
...
...
@@ -83,7 +80,26 @@ set(helper_files
${
MILVUS_ENGINE_SRC
}
/utils/easylogging++.cc
)
set
(
common_files
${
cache_files
}
${
config_files
}
${
db_main_files
}
${
db_engine_files
}
${
db_insert_files
}
${
db_meta_files
}
${
db_scheduler_files
}
${
metrics_files
}
${
scheduler_files
}
${
wrapper_knowhere_files
}
${
helper_files
}
)
set
(
unittest_libs
sqlite
boost_system_static
boost_filesystem_static
lz4
mysqlpp
yaml-cpp
gtest
gmock
...
...
@@ -107,7 +123,7 @@ foreach(dir ${CORE_INCLUDE_DIRS})
endforeach
()
add_subdirectory
(
db
)
add_subdirectory
(
knowhere
)
add_subdirectory
(
wrapper
)
add_subdirectory
(
metrics
)
add_subdirectory
(
scheduler
)
add_subdirectory
(
server
)
\ No newline at end of file
cpp/unittest/db/CMakeLists.txt
浏览文件 @
a5b3dea1
...
...
@@ -23,31 +23,13 @@ include_directories("${CUDA_TOOLKIT_ROOT_DIR}/include")
link_directories
(
"
${
CUDA_TOOLKIT_ROOT_DIR
}
/lib64"
)
set
(
db_test_files
${
cache_files
}
${
config_files
}
${
db_main_files
}
${
db_engine_files
}
${
db_insert_files
}
${
db_meta_files
}
${
db_scheduler_files
}
${
metrics_files
}
${
scheduler_files
}
${
knowhere_files
}
${
helper_files
}
${
common_files
}
${
test_files
}
)
cuda_add_executable
(
db_test
${
db_test_files
}
)
set
(
db_libs
sqlite
boost_system_static
boost_filesystem_static
lz4
mysqlpp
)
target_link_libraries
(
db_test
${
db_libs
}
knowhere
${
unittest_libs
}
)
target_link_libraries
(
db_test knowhere
${
unittest_libs
}
)
install
(
TARGETS db_test DESTINATION unittest
)
cpp/unittest/metrics/CMakeLists.txt
浏览文件 @
a5b3dea1
...
...
@@ -19,35 +19,16 @@
aux_source_directory
(
${
CMAKE_CURRENT_SOURCE_DIR
}
test_files
)
include_directories
(
/usr/include
)
include_directories
(
"
${
CUDA_TOOLKIT_ROOT_DIR
}
/include"
)
link_directories
(
"
${
CUDA_TOOLKIT_ROOT_DIR
}
/lib64"
)
set
(
metrics_test_files
${
cache_files
}
${
config_files
}
${
db_main_files
}
${
db_engine_files
}
${
db_insert_files
}
${
db_meta_files
}
${
db_scheduler_files
}
${
metrics_files
}
${
scheduler_files
}
${
knowhere_files
}
${
helper_files
}
${
common_files
}
${
test_files
}
)
add_executable
(
metrics_test
${
metrics_test_files
}
)
target_link_libraries
(
metrics_test
knowhere
sqlite
boost_system_static
boost_filesystem_static
lz4
mysqlpp
${
unittest_libs
}
)
target_link_libraries
(
metrics_test knowhere
${
unittest_libs
}
)
install
(
TARGETS metrics_test DESTINATION unittest
)
\ No newline at end of file
cpp/unittest/scheduler/CMakeLists.txt
浏览文件 @
a5b3dea1
...
...
@@ -23,31 +23,14 @@ include_directories("${CUDA_TOOLKIT_ROOT_DIR}/include")
link_directories
(
"
${
CUDA_TOOLKIT_ROOT_DIR
}
/lib64"
)
set
(
scheduler_test_files
${
cache_files
}
${
config_files
}
${
db_main_files
}
${
db_engine_files
}
${
db_insert_files
}
${
db_meta_files
}
${
db_scheduler_files
}
${
scheduler_files
}
${
knowhere_files
}
${
helper_files
}
${
common_files
}
${
unittest_files
}
${
test_files
}
)
cuda_add_executable
(
scheduler_test
${
scheduler_test_files
}
)
set
(
scheduler_libs
sqlite
boost_system_static
boost_filesystem_static
lz4
mysqlpp
)
target_link_libraries
(
scheduler_test
${
scheduler_libs
}
knowhere
${
unittest_libs
}
)
target_link_libraries
(
scheduler_test knowhere
${
unittest_libs
}
)
install
(
TARGETS scheduler_test DESTINATION unittest
)
cpp/unittest/server/CMakeLists.txt
浏览文件 @
a5b3dea1
...
...
@@ -19,14 +19,13 @@
aux_source_directory
(
${
CMAKE_CURRENT_SOURCE_DIR
}
test_files
)
include_directories
(
/usr/include
)
include_directories
(
"
${
CUDA_TOOLKIT_ROOT_DIR
}
/include"
)
link_directories
(
"
${
CUDA_TOOLKIT_ROOT_DIR
}
/lib64"
)
include_directories
(
${
MILVUS_ENGINE_SRC
}
/grpc/gen-status
)
include_directories
(
${
MILVUS_ENGINE_SRC
}
/grpc/gen-milvus
)
set
(
helper_files
${
helper_files
}
set
(
util_files
${
MILVUS_ENGINE_SRC
}
/utils/StringHelpFunctions.cpp
${
MILVUS_ENGINE_SRC
}
/utils/LogUtil.cpp
${
MILVUS_ENGINE_SRC
}
/utils/SignalUtil.cpp
)
...
...
@@ -39,19 +38,11 @@ set(grpc_service_files
)
set
(
server_test_files
${
cache_files
}
${
config_files
}
${
db_main_files
}
${
db_engine_files
}
${
db_insert_files
}
${
db_meta_files
}
${
db_scheduler_files
}
${
scheduler_files
}
${
common_files
}
${
server_files
}
${
grpc_server_files
}
${
grpc_service_files
}
${
knowhere_files
}
${
helper_files
}
${
util_files
}
${
unittest_files
}
${
test_files
}
)
...
...
@@ -65,22 +56,13 @@ set(client_grpc_lib
grpc_protobuf
grpc_protoc
)
set
(
require_libs
target_link_libraries
(
server_test
knowhere
stdc++
sqlite
mysqlpp
boost_system_static
boost_filesystem_static
snappy
bz2
zstd
lz4
${
client_grpc_lib
}
)
target_link_libraries
(
server_test
${
require_libs
}
${
unittest_libs
}
)
...
...
cpp/unittest/
knowhere
/CMakeLists.txt
→
cpp/unittest/
wrapper
/CMakeLists.txt
浏览文件 @
a5b3dea1
...
...
@@ -20,12 +20,12 @@
include_directories
(
"
${
CUDA_TOOLKIT_ROOT_DIR
}
/include"
)
link_directories
(
"
${
CUDA_TOOLKIT_ROOT_DIR
}
/lib64"
)
set
(
knowhere_files
set
(
wrapper_
knowhere_files
${
MILVUS_ENGINE_SRC
}
/wrapper/knowhere/data_transfer.cpp
${
MILVUS_ENGINE_SRC
}
/wrapper/knowhere/vec_impl.cpp
${
MILVUS_ENGINE_SRC
}
/wrapper/knowhere/vec_index.cpp
)
set
(
helper
_files
set
(
util
_files
utils.cpp
${
MILVUS_ENGINE_SRC
}
/utils/easylogging++.cc
)
...
...
@@ -36,7 +36,7 @@ set(knowhere_libs
cublas
)
add_executable
(
knowhere_test knowhere_test.cpp
${
knowhere_files
}
${
helper
_files
}
)
target_link_libraries
(
knowhere
_test
${
knowhere_libs
}
${
unittest_libs
}
)
add_executable
(
wrapper_test wrapper_test.cpp
${
wrapper_knowhere_files
}
${
util
_files
}
)
target_link_libraries
(
wrapper
_test
${
knowhere_libs
}
${
unittest_libs
}
)
install
(
TARGETS knowhere_test DESTINATION unittest
)
\ No newline at end of file
install
(
TARGETS wrapper_test DESTINATION unittest
)
\ No newline at end of file
cpp/unittest/
knowhere
/utils.cpp
→
cpp/unittest/
wrapper
/utils.cpp
浏览文件 @
a5b3dea1
文件已移动
cpp/unittest/
knowhere
/utils.h
→
cpp/unittest/
wrapper
/utils.h
浏览文件 @
a5b3dea1
文件已移动
cpp/unittest/
knowhere/knowhere
_test.cpp
→
cpp/unittest/
wrapper/wrapper
_test.cpp
浏览文件 @
a5b3dea1
文件已移动
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录