Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
e5041abe
O
Opencv
项目概览
Greenplum
/
Opencv
11 个月 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e5041abe
编写于
11月 27, 2016
作者:
A
Alexander Alekhin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
cmake: remove outdated pkg-config module
上级
ac118aee
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
7 addition
and
369 deletion
+7
-369
CMakeLists.txt
CMakeLists.txt
+0
-4
cmake/OpenCVFindPkgConfig.cmake
cmake/OpenCVFindPkgConfig.cmake
+0
-365
cmake/OpenCVUtils.cmake
cmake/OpenCVUtils.cmake
+7
-0
未找到文件。
CMakeLists.txt
浏览文件 @
e5041abe
...
...
@@ -445,10 +445,6 @@ endif(WIN32 AND NOT MINGW)
# CHECK FOR SYSTEM LIBRARIES, OPTIONS, ETC..
# ----------------------------------------------------------------------------
if
(
UNIX
)
include
(
cmake/OpenCVFindPkgConfig.cmake OPTIONAL
)
include
(
CheckFunctionExists
)
include
(
CheckIncludeFile
)
if
(
NOT APPLE
)
CHECK_INCLUDE_FILE
(
pthread.h HAVE_LIBPTHREAD
)
if
(
ANDROID
)
...
...
cmake/OpenCVFindPkgConfig.cmake
已删除
100644 → 0
浏览文件 @
ac118aee
#
# OpenCV note: the file has been extracted from CMake 2.6.2 distribution.
# It is used to build OpenCV with CMake 2.4.x
#
# - a pkg-config module for CMake
#
# Usage:
# pkg_check_modules(<PREFIX> [REQUIRED] <MODULE> [<MODULE>]*)
# checks for all the given modules
#
# pkg_search_module(<PREFIX> [REQUIRED] <MODULE> [<MODULE>]*)
# checks for given modules and uses the first working one
#
# When the 'REQUIRED' argument was set, macros will fail with an error
# when module(s) could not be found
#
# It sets the following variables:
# PKG_CONFIG_FOUND ... true if pkg-config works on the system
# PKG_CONFIG_EXECUTABLE ... pathname of the pkg-config program
# <PREFIX>_FOUND ... set to 1 if module(s) exist
#
# For the following variables two sets of values exist; first one is the
# common one and has the given PREFIX. The second set contains flags
# which are given out when pkgconfig was called with the '--static'
# option.
# <XPREFIX>_LIBRARIES ... only the libraries (w/o the '-l')
# <XPREFIX>_LIBRARY_DIRS ... the paths of the libraries (w/o the '-L')
# <XPREFIX>_LDFLAGS ... all required linker flags
# <XPREFIX>_LDFLAGS_OTHER ... all other linker flags
# <XPREFIX>_INCLUDE_DIRS ... the '-I' preprocessor flags (w/o the '-I')
# <XPREFIX>_CFLAGS ... all required cflags
# <XPREFIX>_CFLAGS_OTHER ... the other compiler flags
#
# <XPREFIX> = <PREFIX> for common case
# <XPREFIX> = <PREFIX>_STATIC for static linking
#
# There are some special variables whose prefix depends on the count
# of given modules. When there is only one module, <PREFIX> stays
# unchanged. When there are multiple modules, the prefix will be
# changed to <PREFIX>_<MODNAME>:
# <XPREFIX>_VERSION ... version of the module
# <XPREFIX>_PREFIX ... prefix-directory of the module
# <XPREFIX>_INCLUDEDIR ... include-dir of the module
# <XPREFIX>_LIBDIR ... lib-dir of the module
#
# <XPREFIX> = <PREFIX> when |MODULES| == 1, else
# <XPREFIX> = <PREFIX>_<MODNAME>
#
# A <MODULE> parameter can have the following formats:
# {MODNAME} ... matches any version
# {MODNAME}>={VERSION} ... at least version <VERSION> is required
# {MODNAME}={VERSION} ... exactly version <VERSION> is required
# {MODNAME}<={VERSION} ... modules must not be newer than <VERSION>
#
# Examples
# pkg_check_modules (GLIB2 glib-2.0)
#
# pkg_check_modules (GLIB2 glib-2.0>=2.10)
# requires at least version 2.10 of glib2 and defines e.g.
# GLIB2_VERSION=2.10.3
#
# pkg_check_modules (FOO glib-2.0>=2.10 gtk+-2.0)
# requires both glib2 and gtk2, and defines e.g.
# FOO_glib-2.0_VERSION=2.10.3
# FOO_gtk+-2.0_VERSION=2.8.20
#
# pkg_check_modules (XRENDER REQUIRED xrender)
# defines e.g.:
# XRENDER_LIBRARIES=Xrender;X11
# XRENDER_STATIC_LIBRARIES=Xrender;X11;pthread;Xau;Xdmcp
#
# pkg_search_module (BAR libxml-2.0 libxml2 libxml>=2)
# Copyright (C) 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
#
# Redistribution and use, with or without modification, are permitted
# provided that the following conditions are met:
#
# 1. Redistributions must retain the above copyright notice, this
# list of conditions and the following disclaimer.
# 2. The name of the author may not be used to endorse or promote
# products derived from this software without specific prior
# written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
### Common stuff ####
set
(
PKG_CONFIG_VERSION 1
)
set
(
PKG_CONFIG_FOUND 0
)
find_program
(
PKG_CONFIG_EXECUTABLE NAMES pkg-config DOC
"pkg-config executable"
)
mark_as_advanced
(
PKG_CONFIG_EXECUTABLE
)
if
(
PKG_CONFIG_EXECUTABLE
)
set
(
PKG_CONFIG_FOUND 1
)
endif
(
PKG_CONFIG_EXECUTABLE
)
# Unsets the given variables
macro
(
_pkgconfig_unset var
)
set
(
${
var
}
""
CACHE INTERNAL
""
)
endmacro
(
_pkgconfig_unset
)
macro
(
_pkgconfig_set var value
)
set
(
${
var
}
${
value
}
CACHE INTERNAL
""
)
endmacro
(
_pkgconfig_set
)
# Invokes pkgconfig, cleans up the result and sets variables
macro
(
_pkgconfig_invoke _pkglist _prefix _varname _regexp
)
set
(
_pkgconfig_invoke_result
)
execute_process
(
COMMAND
${
PKG_CONFIG_EXECUTABLE
}
${
ARGN
}
${
_pkglist
}
OUTPUT_VARIABLE _pkgconfig_invoke_result
RESULT_VARIABLE _pkgconfig_failed
)
if
(
_pkgconfig_failed
)
set
(
_pkgconfig_
${
_varname
}
""
)
_pkgconfig_unset
(
${
_prefix
}
_
${
_varname
}
)
else
(
_pkgconfig_failed
)
string
(
REGEX REPLACE
"[
\r\n
]"
" "
_pkgconfig_invoke_result
"
${
_pkgconfig_invoke_result
}
"
)
string
(
REGEX REPLACE
" +$"
""
_pkgconfig_invoke_result
"
${
_pkgconfig_invoke_result
}
"
)
if
(
NOT
${
_regexp
}
STREQUAL
""
)
string
(
REGEX REPLACE
"
${
_regexp
}
"
" "
_pkgconfig_invoke_result
"
${
_pkgconfig_invoke_result
}
"
)
endif
(
NOT
${
_regexp
}
STREQUAL
""
)
separate_arguments
(
_pkgconfig_invoke_result
)
#message(STATUS " ${_varname} ... ${_pkgconfig_invoke_result}")
set
(
_pkgconfig_
${
_varname
}
${
_pkgconfig_invoke_result
}
)
_pkgconfig_set
(
${
_prefix
}
_
${
_varname
}
"
${
_pkgconfig_invoke_result
}
"
)
endif
(
_pkgconfig_failed
)
endmacro
(
_pkgconfig_invoke
)
# Invokes pkgconfig two times; once without '--static' and once with
# '--static'
macro
(
_pkgconfig_invoke_dyn _pkglist _prefix _varname cleanup_regexp
)
_pkgconfig_invoke
(
"
${
_pkglist
}
"
${
_prefix
}
${
_varname
}
"
${
cleanup_regexp
}
"
${
ARGN
}
)
_pkgconfig_invoke
(
"
${
_pkglist
}
"
${
_prefix
}
STATIC_
${
_varname
}
"
${
cleanup_regexp
}
"
--static
${
ARGN
}
)
endmacro
(
_pkgconfig_invoke_dyn
)
# Splits given arguments into options and a package list
macro
(
_pkgconfig_parse_options _result _is_req
)
set
(
${
_is_req
}
0
)
foreach
(
_pkg
${
ARGN
}
)
if
(
_pkg STREQUAL
"REQUIRED"
)
set
(
${
_is_req
}
1
)
endif
(
_pkg STREQUAL
"REQUIRED"
)
endforeach
(
_pkg
${
ARGN
}
)
set
(
${
_result
}
${
ARGN
}
)
list
(
REMOVE_ITEM
${
_result
}
"REQUIRED"
)
endmacro
(
_pkgconfig_parse_options
)
###
macro
(
_pkg_check_modules_internal _is_required _is_silent _prefix
)
_pkgconfig_unset
(
${
_prefix
}
_FOUND
)
_pkgconfig_unset
(
${
_prefix
}
_VERSION
)
_pkgconfig_unset
(
${
_prefix
}
_PREFIX
)
_pkgconfig_unset
(
${
_prefix
}
_INCLUDEDIR
)
_pkgconfig_unset
(
${
_prefix
}
_LIBDIR
)
_pkgconfig_unset
(
${
_prefix
}
_LIBS
)
_pkgconfig_unset
(
${
_prefix
}
_LIBS_L
)
_pkgconfig_unset
(
${
_prefix
}
_LIBS_PATHS
)
_pkgconfig_unset
(
${
_prefix
}
_LIBS_OTHER
)
_pkgconfig_unset
(
${
_prefix
}
_CFLAGS
)
_pkgconfig_unset
(
${
_prefix
}
_CFLAGS_I
)
_pkgconfig_unset
(
${
_prefix
}
_CFLAGS_OTHER
)
_pkgconfig_unset
(
${
_prefix
}
_STATIC_LIBDIR
)
_pkgconfig_unset
(
${
_prefix
}
_STATIC_LIBS
)
_pkgconfig_unset
(
${
_prefix
}
_STATIC_LIBS_L
)
_pkgconfig_unset
(
${
_prefix
}
_STATIC_LIBS_PATHS
)
_pkgconfig_unset
(
${
_prefix
}
_STATIC_LIBS_OTHER
)
_pkgconfig_unset
(
${
_prefix
}
_STATIC_CFLAGS
)
_pkgconfig_unset
(
${
_prefix
}
_STATIC_CFLAGS_I
)
_pkgconfig_unset
(
${
_prefix
}
_STATIC_CFLAGS_OTHER
)
# create a better addressable variable of the modules and calculate its size
set
(
_pkg_check_modules_list
${
ARGN
}
)
list
(
LENGTH _pkg_check_modules_list _pkg_check_modules_cnt
)
if
(
PKG_CONFIG_EXECUTABLE
)
# give out status message telling checked module
if
(
NOT
${
_is_silent
}
)
if
(
_pkg_check_modules_cnt EQUAL 1
)
message
(
STATUS
"checking for module '
${
_pkg_check_modules_list
}
'"
)
else
(
_pkg_check_modules_cnt EQUAL 1
)
message
(
STATUS
"checking for modules '
${
_pkg_check_modules_list
}
'"
)
endif
(
_pkg_check_modules_cnt EQUAL 1
)
endif
(
NOT
${
_is_silent
}
)
set
(
_pkg_check_modules_packages
)
set
(
_pkg_check_modules_failed
)
# iterate through module list and check whether they exist and match the required version
foreach
(
_pkg_check_modules_pkg
${
_pkg_check_modules_list
}
)
set
(
_pkg_check_modules_exist_query
)
# check whether version is given
if
(
_pkg_check_modules_pkg MATCHES
".*(>=|=|<=).*"
)
string
(
REGEX REPLACE
"(.*[^><])(>=|=|<=)(.*)"
"
\\
1"
_pkg_check_modules_pkg_name
"
${
_pkg_check_modules_pkg
}
"
)
string
(
REGEX REPLACE
"(.*[^><])(>=|=|<=)(.*)"
"
\\
2"
_pkg_check_modules_pkg_op
"
${
_pkg_check_modules_pkg
}
"
)
string
(
REGEX REPLACE
"(.*[^><])(>=|=|<=)(.*)"
"
\\
3"
_pkg_check_modules_pkg_ver
"
${
_pkg_check_modules_pkg
}
"
)
else
(
_pkg_check_modules_pkg MATCHES
".*(>=|=|<=).*"
)
set
(
_pkg_check_modules_pkg_name
"
${
_pkg_check_modules_pkg
}
"
)
set
(
_pkg_check_modules_pkg_op
)
set
(
_pkg_check_modules_pkg_ver
)
endif
(
_pkg_check_modules_pkg MATCHES
".*(>=|=|<=).*"
)
# handle the operands
if
(
_pkg_check_modules_pkg_op STREQUAL
">="
)
list
(
APPEND _pkg_check_modules_exist_query --atleast-version
)
endif
(
_pkg_check_modules_pkg_op STREQUAL
">="
)
if
(
_pkg_check_modules_pkg_op STREQUAL
"="
)
list
(
APPEND _pkg_check_modules_exist_query --exact-version
)
endif
(
_pkg_check_modules_pkg_op STREQUAL
"="
)
if
(
_pkg_check_modules_pkg_op STREQUAL
"<="
)
list
(
APPEND _pkg_check_modules_exist_query --max-version
)
endif
(
_pkg_check_modules_pkg_op STREQUAL
"<="
)
# create the final query which is of the format:
# * --atleast-version <version> <pkg-name>
# * --exact-version <version> <pkg-name>
# * --max-version <version> <pkg-name>
# * --exists <pkg-name>
if
(
_pkg_check_modules_pkg_op
)
list
(
APPEND _pkg_check_modules_exist_query
"
${
_pkg_check_modules_pkg_ver
}
"
)
else
(
_pkg_check_modules_pkg_op
)
list
(
APPEND _pkg_check_modules_exist_query --exists
)
endif
(
_pkg_check_modules_pkg_op
)
_pkgconfig_unset
(
${
_prefix
}
_
${
_pkg_check_modules_pkg_name
}
_VERSION
)
_pkgconfig_unset
(
${
_prefix
}
_
${
_pkg_check_modules_pkg_name
}
_PREFIX
)
_pkgconfig_unset
(
${
_prefix
}
_
${
_pkg_check_modules_pkg_name
}
_INCLUDEDIR
)
_pkgconfig_unset
(
${
_prefix
}
_
${
_pkg_check_modules_pkg_name
}
_LIBDIR
)
list
(
APPEND _pkg_check_modules_exist_query
"
${
_pkg_check_modules_pkg_name
}
"
)
list
(
APPEND _pkg_check_modules_packages
"
${
_pkg_check_modules_pkg_name
}
"
)
# execute the query
execute_process
(
COMMAND
${
PKG_CONFIG_EXECUTABLE
}
${
_pkg_check_modules_exist_query
}
RESULT_VARIABLE _pkgconfig_retval
)
# evaluate result and tell failures
if
(
_pkgconfig_retval
)
if
(
NOT
${
_is_silent
}
)
message
(
STATUS
" package '
${
_pkg_check_modules_pkg
}
' not found"
)
endif
(
NOT
${
_is_silent
}
)
set
(
_pkg_check_modules_failed 1
)
endif
(
_pkgconfig_retval
)
endforeach
(
_pkg_check_modules_pkg
)
if
(
_pkg_check_modules_failed
)
# fail when requested
if
(
${
_is_required
}
)
message
(
SEND_ERROR
"A required package was not found"
)
endif
(
${
_is_required
}
)
else
(
_pkg_check_modules_failed
)
# when we are here, we checked whether requested modules
# exist. Now, go through them and set variables
_pkgconfig_set
(
${
_prefix
}
_FOUND 1
)
list
(
LENGTH _pkg_check_modules_packages pkg_count
)
# iterate through all modules again and set individual variables
foreach
(
_pkg_check_modules_pkg
${
_pkg_check_modules_packages
}
)
# handle case when there is only one package required
if
(
pkg_count EQUAL 1
)
set
(
_pkg_check_prefix
"
${
_prefix
}
"
)
else
(
pkg_count EQUAL 1
)
set
(
_pkg_check_prefix
"
${
_prefix
}
_
${
_pkg_check_modules_pkg
}
"
)
endif
(
pkg_count EQUAL 1
)
_pkgconfig_invoke
(
${
_pkg_check_modules_pkg
}
"
${
_pkg_check_prefix
}
"
VERSION
""
--modversion
)
_pkgconfig_invoke
(
${
_pkg_check_modules_pkg
}
"
${
_pkg_check_prefix
}
"
PREFIX
""
--variable=prefix
)
_pkgconfig_invoke
(
${
_pkg_check_modules_pkg
}
"
${
_pkg_check_prefix
}
"
INCLUDEDIR
""
--variable=includedir
)
_pkgconfig_invoke
(
${
_pkg_check_modules_pkg
}
"
${
_pkg_check_prefix
}
"
LIBDIR
""
--variable=libdir
)
message
(
STATUS
" found
${
_pkg_check_modules_pkg
}
, version
${
_pkgconfig_VERSION
}
"
)
endforeach
(
_pkg_check_modules_pkg
)
# set variables which are combined for multiple modules
_pkgconfig_invoke_dyn
(
"
${
_pkg_check_modules_packages
}
"
"
${
_prefix
}
"
LIBRARIES
"(^| )-l"
--libs-only-l
)
_pkgconfig_invoke_dyn
(
"
${
_pkg_check_modules_packages
}
"
"
${
_prefix
}
"
LIBRARY_DIRS
"(^| )-L"
--libs-only-L
)
_pkgconfig_invoke_dyn
(
"
${
_pkg_check_modules_packages
}
"
"
${
_prefix
}
"
LDFLAGS
""
--libs
)
_pkgconfig_invoke_dyn
(
"
${
_pkg_check_modules_packages
}
"
"
${
_prefix
}
"
LDFLAGS_OTHER
""
--libs-only-other
)
_pkgconfig_invoke_dyn
(
"
${
_pkg_check_modules_packages
}
"
"
${
_prefix
}
"
INCLUDE_DIRS
"(^| )-I"
--cflags-only-I
)
_pkgconfig_invoke_dyn
(
"
${
_pkg_check_modules_packages
}
"
"
${
_prefix
}
"
CFLAGS
""
--cflags
)
_pkgconfig_invoke_dyn
(
"
${
_pkg_check_modules_packages
}
"
"
${
_prefix
}
"
CFLAGS_OTHER
""
--cflags-only-other
)
endif
(
_pkg_check_modules_failed
)
else
(
PKG_CONFIG_EXECUTABLE
)
if
(
${
_is_required
}
)
message
(
SEND_ERROR
"pkg-config tool not found"
)
endif
(
${
_is_required
}
)
endif
(
PKG_CONFIG_EXECUTABLE
)
endmacro
(
_pkg_check_modules_internal
)
###
### User visible macros start here
###
###
macro
(
pkg_check_modules _prefix _module0
)
# check cached value
if
(
NOT DEFINED __pkg_config_checked_
${
_prefix
}
OR __pkg_config_checked_
${
_prefix
}
LESS
${
PKG_CONFIG_VERSION
}
OR NOT
${
_prefix
}
_FOUND
)
_pkgconfig_parse_options
(
_pkg_modules _pkg_is_required
"
${
_module0
}
"
${
ARGN
}
)
_pkg_check_modules_internal
(
"
${
_pkg_is_required
}
"
0
"
${
_prefix
}
"
${
_pkg_modules
}
)
_pkgconfig_set
(
__pkg_config_checked_
${
_prefix
}
${
PKG_CONFIG_VERSION
}
)
endif
(
NOT DEFINED __pkg_config_checked_
${
_prefix
}
OR __pkg_config_checked_
${
_prefix
}
LESS
${
PKG_CONFIG_VERSION
}
OR NOT
${
_prefix
}
_FOUND
)
endmacro
(
pkg_check_modules
)
###
macro
(
pkg_search_module _prefix _module0
)
# check cached value
if
(
NOT DEFINED __pkg_config_checked_
${
_prefix
}
OR __pkg_config_checked_
${
_prefix
}
LESS
${
PKG_CONFIG_VERSION
}
OR NOT
${
_prefix
}
_FOUND
)
set
(
_pkg_modules_found 0
)
_pkgconfig_parse_options
(
_pkg_modules_alt _pkg_is_required
"
${
_module0
}
"
${
ARGN
}
)
message
(
STATUS
"checking for one of the modules '
${
_pkg_modules_alt
}
'"
)
# iterate through all modules and stop at the first working one.
foreach
(
_pkg_alt
${
_pkg_modules_alt
}
)
if
(
NOT _pkg_modules_found
)
_pkg_check_modules_internal
(
0 1
"
${
_prefix
}
"
"
${
_pkg_alt
}
"
)
endif
(
NOT _pkg_modules_found
)
if
(
${
_prefix
}
_FOUND
)
set
(
_pkg_modules_found 1
)
endif
(
${
_prefix
}
_FOUND
)
endforeach
(
_pkg_alt
)
if
(
NOT
${
_prefix
}
_FOUND
)
if
(
${
_pkg_is_required
}
)
message
(
SEND_ERROR
"None of the required '
${
_pkg_modules_alt
}
' found"
)
endif
(
${
_pkg_is_required
}
)
endif
(
NOT
${
_prefix
}
_FOUND
)
_pkgconfig_set
(
__pkg_config_checked_
${
_prefix
}
${
PKG_CONFIG_VERSION
}
)
endif
(
NOT DEFINED __pkg_config_checked_
${
_prefix
}
OR __pkg_config_checked_
${
_prefix
}
LESS
${
PKG_CONFIG_VERSION
}
OR NOT
${
_prefix
}
_FOUND
)
endmacro
(
pkg_search_module
)
### Local Variables:
### mode: cmake
### End:
cmake/OpenCVUtils.cmake
浏览文件 @
e5041abe
include
(
CheckFunctionExists
)
include
(
CheckIncludeFile
)
if
(
UNIX
)
find_package
(
PkgConfig
)
endif
()
# Search packages for host system instead of packages for target system
# in case of cross compilation thess macro should be defined by toolchain file
if
(
NOT COMMAND find_host_package
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录