Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv_contrib
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv_contrib
Commits
57d63db9
Commit
57d63db9
authored
Nov 21, 2016
by
Alexander Alekhin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
3rdparty: libprotobuf v3.1.0
parent
f2af57c6
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
171 additions
and
145 deletions
+171
-145
CMakeLists.txt
modules/dnn/3rdparty/protobuf/CMakeLists.txt
+78
-117
CMakeLists.txt
modules/dnn/CMakeLists.txt
+4
-2
OpenCVFindLibProtobuf.cmake
modules/dnn/cmake/OpenCVFindLibProtobuf.cmake
+38
-26
download_protobuf.cmake
modules/dnn/cmake/download_protobuf.cmake
+51
-0
No files found.
modules/dnn/3rdparty/protobuf/CMakeLists.txt
View file @
57d63db9
project
(
libprotobuf
)
include
(
CheckIncludeFiles
)
include
(
cmake/CheckCxxHashset.cmake
)
include
(
cmake/CheckCxxHashmap.cmake
)
check_include_files
(
"pthread.h"
HAVE_PTHREAD
)
if
(
CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL
"Clang"
)
include
(
CheckIncludeFileCXX
)
set
(
CMAKE_REQUIRED_FLAGS
"-std=c++11"
)
check_include_file_cxx
(
"unordered_map"
HAVE_UNORDERED_MAP
)
check_include_file_cxx
(
"tr1/unordered_map"
HAVE_TR1_UNORDERED_MAP
)
set
(
CMAKE_REQUIRED_FLAGS
)
if
(
HAVE_UNORDERED_MAP
)
add_definitions
(
"-std=c++11"
)
# For unordered_map
set
(
HASH_MAP_H
"<unordered_map>"
)
set
(
HASH_MAP_CLASS
"unordered_map"
)
set
(
HASH_NAMESPACE
"std"
)
set
(
HAVE_HASH_MAP 1
)
elseif
(
HAVE_TR1_UNORDERED_MAP
)
add_definitions
(
"-std=c++11"
)
# For unordered_map
set
(
HASH_MAP_H
"<tr1/unordered_map>"
)
set
(
HASH_MAP_CLASS
"unordered_map"
)
set
(
HASH_NAMESPACE
"std::tr1"
)
set
(
HAVE_HASH_MAP 1
)
else
()
CHECK_HASHMAP
()
if
(
HAVE_GNU_EXT_HASH_MAP
)
set
(
HASH_MAP_H
"<ext/hash_map>"
)
set
(
HASH_NAMESPACE
"__gnu_cxx"
)
set
(
HASH_MAP_CLASS
"hash_map"
)
set
(
HAVE_HASH_MAP 1
)
elseif
(
HAVE_STD_EXT_HASH_MAP
)
set
(
HASH_MAP_H
"<ext/hash_map>"
)
set
(
HASH_NAMESPACE
"std"
)
set
(
HASH_MAP_CLASS
"hash_map"
)
set
(
HAVE_HASH_MAP 1
)
elseif
(
HAVE_GLOBAL_HASH_MAP
)
set
(
HASH_MAP_H
"<ext/hash_map>"
)
set
(
HASH_NAMESPACE
""
)
set
(
HASH_MAP_CLASS
"hash_map"
)
set
(
HAVE_HASH_MAP 1
)
else
()
set
(
HAVE_HASH_MAP 0
)
endif
()
endif
()
set
(
CMAKE_REQUIRED_FLAGS
"-std=c++11"
)
check_include_file_cxx
(
"unordered_set"
HAVE_UNORDERED_SET
)
check_include_file_cxx
(
"tr1/unordered_set"
HAVE_TR1_UNORDERED_SET
)
set
(
CMAKE_REQUIRED_FLAGS
)
if
(
HAVE_UNORDERED_SET
)
set
(
HASH_SET_H
"<unordered_set>"
)
set
(
HASH_SET_CLASS
"unordered_set"
)
set
(
HAVE_HASH_SET 1
)
elseif
(
HAVE_TR1_UNORDERED_SET
)
add_definitions
(
"-std=c++11"
)
set
(
HASH_SET_H
"<tr1/unordered_set>"
)
set
(
HASH_SET_CLASS
"unordered_set"
)
set
(
HAVE_HASH_SET 1
)
else
()
CHECK_HASHSET
()
if
(
HAVE_GNU_EXT_HASH_SET
)
set
(
HASH_SET_H
"<ext/hash_set>"
)
set
(
HASH_NAMESPACE
"__gnu_cxx"
)
set
(
HASH_SET_CLASS
"hash_set"
)
set
(
HAVE_HASH_SET 1
)
elseif
(
HAVE_STD_EXT_HASH_SET
)
set
(
HASH_SET_H
"<ext/hash_set>"
)
set
(
HASH_NAMESPACE
"std"
)
set
(
HASH_SET_CLASS
"hash_set"
)
set
(
HAVE_HASH_SET 1
)
elseif
(
HAVE_GLOBAL_HASH_SET
)
set
(
HASH_SET_H
"<hash_set>"
)
set
(
HASH_NAMESPACE
""
)
set
(
HASH_SET_CLASS
"hash_set"
)
set
(
HAVE_HASH_SET 1
)
else
()
set
(
HAVE_HASH_SET 0
)
endif
()
if
(
NOT MSVC
)
check_include_files
(
"pthread.h"
HAVE_PTHREAD
)
if
(
HAVE_PTHREAD
)
add_definitions
(
-DHAVE_PTHREAD=1
)
endif
()
endif
()
if
(
WIN32 AND BUILD_SHARED_LIBS AND MSVC
)
add_definitions
(
-DPROTOBUF_USE_DLLS
)
add_definitions
(
-DLIBPROTOBUF_EXPORTS
)
endif
()
#add_definitions( -DGOOGLE_PROTOBUF_NO_THREAD_SAFETY ) #we don't need thread safety
add_definitions
(
-D_GNU_SOURCE=1
)
#it's maybe useful
add_definitions
(
-DHAVE_CONFIG_H
)
#we will use config.h
configure_file
(
"cmake/config.h.in"
"config.h"
)
if
(
MSVC
)
add_definitions
(
-D_CRT_SECURE_NO_WARNINGS=1
)
ocv_warnings_disable
(
CMAKE_CXX_FLAGS /wd4244 /wd4267 /wd4018 /wd4355 /wd4800 /wd4251 /wd4996 /wd4146 /wd4305 /wd4127 /wd4100 /wd4512 /wd4125 /wd4389 /wd4510 /wd4610 /wd4702
)
ocv_warnings_disable
(
CMAKE_CXX_FLAGS /wd4456
)
# VS 2015
ocv_warnings_disable
(
CMAKE_CXX_FLAGS /wd4244 /wd4267 /wd4018 /wd4355 /wd4800 /wd4251 /wd4996 /wd4146
/wd4305 /wd4127 /wd4100 /wd4512 /wd4125 /wd4389 /wd4510 /wd4610
/wd4702 /wd4456 /wd4457 /wd4065 /wd4310 /wd4661 /wd4506
)
else
()
ocv_warnings_disable
(
CMAKE_CXX_FLAGS -Wno-deprecated -Wmissing-prototypes -Wmissing-declarations -Wshadow -Wunused-parameter -Wunused-local-typedefs -Wsign-compare -Wsign-promo -Wundef
)
ocv_warnings_disable
(
CMAKE_CXX_FLAGS -Wtautological-undefined-compare
)
ocv_warnings_disable
(
CMAKE_CXX_FLAGS -Wno-deprecated -Wmissing-prototypes -Wmissing-declarations -Wshadow -Wunused-parameter -Wunused-local-typedefs -Wsign-compare -Wsign-promo -Wundef
-Wtautological-undefined-compare
-Wignored-qualifiers -Wextra -Wunused-function -Wunused-const-variable
)
endif
()
# Easier to support different versions of protobufs
...
...
@@ -116,7 +35,7 @@ function(append_if_exist OUTPUT_LIST)
set
(
${
OUTPUT_LIST
}
${${
OUTPUT_LIST
}}
PARENT_SCOPE
)
endfunction
()
set
(
PROTOBUF_ROOT
${
CMAKE_CURRENT_SOURCE_DIR
}
)
set
(
PROTOBUF_ROOT
${
CMAKE_CURRENT_SOURCE_DIR
}
/sources/protobuf-3.1.0
)
if
(
MSVC
)
set
(
ATOMICOPS_INTERNALS
${
PROTOBUF_ROOT
}
/src/google/protobuf/stubs/atomicops_internals_x86_msvc.cc
)
...
...
@@ -124,61 +43,103 @@ else()
set
(
ATOMICOPS_INTERNALS
${
PROTOBUF_ROOT
}
/src/google/protobuf/stubs/atomicops_internals_x86_gcc.cc
)
endif
()
append_if_exist
(
PROTOBUF_SRCS
${
PROTOBUF_ROOT
}
/src/google/protobuf/compiler/importer.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/compiler/parser.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/descriptor.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/descriptor.pb.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/descriptor_database.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/dynamic_message.cc
# libprotobuf-lite
${
PROTOBUF_ROOT
}
/src/google/protobuf/arena.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/arenastring.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/extension_set.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/extension_set_heavy.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/generated_message_reflection.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/generated_message_util.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/io/coded_stream.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/io/gzip_stream.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/io/printer.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/io/tokenizer.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/io/zero_copy_stream.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/io/zero_copy_stream_impl.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/io/zero_copy_stream_impl_lite.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/message.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/message_lite.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/reflection_ops.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/repeated_field.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/service.cc
${
ATOMICOPS_INTERNALS
}
${
PROTOBUF_ROOT
}
/src/google/protobuf/stubs/bytestream.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/stubs/common.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/stubs/int128.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/stubs/once.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/stubs/status.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/stubs/statusor.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/stubs/stringpiece.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/stubs/stringprintf.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/stubs/structurally_valid.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/stubs/strutil.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/stubs/time.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/wire_format_lite.cc
# libprotobuf
${
PROTOBUF_ROOT
}
/src/google/protobuf/any.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/any.pb.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/api.pb.cc
# ${PROTOBUF_ROOT}/src/google/protobuf/compiler/importer.cc
# ${PROTOBUF_ROOT}/src/google/protobuf/compiler/parser.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/descriptor.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/descriptor.pb.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/descriptor_database.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/duration.pb.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/dynamic_message.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/empty.pb.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/extension_set_heavy.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/field_mask.pb.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/generated_message_reflection.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/io/gzip_stream.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/io/printer.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/io/strtod.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/io/tokenizer.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/io/zero_copy_stream_impl.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/map_field.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/message.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/reflection_ops.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/service.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/source_context.pb.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/struct.pb.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/stubs/mathlimits.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/stubs/substitute.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/text_format.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/timestamp.pb.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/type.pb.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/unknown_field_set.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/util/field_comparator.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/util/field_mask_util.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/util/internal/datapiece.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/util/internal/default_value_objectwriter.cc
# ${PROTOBUF_ROOT}/src/google/protobuf/util/internal/error_listener.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/util/internal/field_mask_utility.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/util/internal/json_escaping.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/util/internal/json_objectwriter.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/util/internal/json_stream_parser.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/util/internal/object_writer.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/util/internal/proto_writer.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/util/internal/protostream_objectsource.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/util/internal/protostream_objectwriter.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/util/internal/type_info.cc
# ${PROTOBUF_ROOT}/src/google/protobuf/util/internal/type_info_test_helper.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/util/internal/utility.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/util/json_util.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/util/message_differencer.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/util/time_util.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/util/type_resolver_util.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/wire_format.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/wire_format_lite.cc
#${PROTOBUF_ROOT}/src/google/protobuf/stubs/hash.cc
${
PROTOBUF_ROOT
}
/src/google/protobuf/wrappers.pb.cc
)
if
(
UNIX
AND
(
CMAKE_COMPILER_IS_GNUCXX OR CV_ICC
)
)
if
(
CMAKE_VERSION VERSION_LESS 2.8.9 AND UNIX
)
set
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-fPIC"
)
endif
()
add_library
(
libprotobuf STATIC
${
PROTOBUF_SRCS
}
)
include_directories
(
${
PROTOBUF_ROOT
}
/src
${
CMAKE_CURRENT_BINARY_DIR
}
)
include_directories
(
${
PROTOBUF_ROOT
}
/src
)
set_target_properties
(
libprotobuf
PROPERTIES
FOLDER
"3rdparty"
POSITION_INDEPENDENT_CODE 1
# CMake 2.8.9+
OUTPUT_NAME libprotobuf
DEBUG_POSTFIX
"
${
OPENCV_DEBUG_POSTFIX
}
"
ARCHIVE_OUTPUT_DIRECTORY
${
3P_LIBRARY_OUTPUT_PATH
}
)
if
(
ENABLE_SOLUTION_FOLDERS
)
set_target_properties
(
libprotobuf PROPERTIES FOLDER
"3rdparty"
)
endif
()
if
(
NOT BUILD_SHARED_LIBS
)
ocv_install_target
(
libprotobuf EXPORT OpenCVModules ARCHIVE DESTINATION
${
OPENCV_3P_LIB_INSTALL_PATH
}
COMPONENT dev
)
endif
()
modules/dnn/CMakeLists.txt
View file @
57d63db9
...
...
@@ -10,8 +10,10 @@ set(the_description "Deep neural network module. It allows to load models from d
set
(
OPENCV_MODULE_IS_PART_OF_WORLD OFF
)
ocv_add_module
(
dnn opencv_core opencv_imgproc WRAP python matlab
)
ocv_warnings_disable
(
CMAKE_CXX_FLAGS -Wno-shadow -Wno-parentheses -Wmaybe-uninitialized -Wsign-promo -Wmissing-declarations -Wmissing-prototypes
)
ocv_warnings_disable
(
CMAKE_CXX_FLAGS /wd4701
)
ocv_warnings_disable
(
CMAKE_CXX_FLAGS -Wno-shadow -Wno-parentheses -Wmaybe-uninitialized -Wsign-promo
-Wmissing-declarations -Wmissing-prototypes
)
ocv_warnings_disable
(
CMAKE_CXX_FLAGS /wd4701 /wd4100
)
# ----------------------------------------------------------------------------
# Resolve libprotobuf dependency
...
...
modules/dnn/cmake/OpenCVFindLibProtobuf.cmake
View file @
57d63db9
OCV_OPTION
(
BUILD_LIBPROTOBUF_FROM_SOURCES
"Force to build libprotobuf from sources (don't try to find it in system)"
OFF
)
# By default, we use built-in protobuf sources and pre-generated .proto files
# Note: In case of .proto model updates these variables should be used:
# - PROTOBUF_PROTOC_EXECUTABLE (required)
# - PROTOBUF_INCLUDE_DIR
# - PROTOBUF_LIBRARIES or PROTOBUF_LIBRARY / PROTOBUF_LIBRARY_DEBUG for find_package()
OCV_OPTION
(
BUILD_PROTOBUF
"Force to build libprotobuf from sources"
ON
)
OCV_OPTION
(
UPDATE_PROTO_FILES
"Force to rebuild .proto files"
OFF
)
if
(
NOT BUILD_LIBPROTOBUF_FROM_SOURCES
)
find_package
(
Protobuf
)
endif
()
if
(
NOT BUILD_LIBPROTOBUF_FROM_SOURCES AND PROTOBUF_FOUND AND EXISTS
${
PROTOBUF_PROTOC_EXECUTABLE
}
)
message
(
STATUS
"The protocol buffer compiler and libprotobuf were found"
)
PROTOBUF_GENERATE_CPP
(
PROTOBUF_HDRS PROTOBUF_SRCS src/caffe/caffe.proto
)
add_definitions
(
-DHAVE_PROTOBUF=1
)
else
()
message
(
STATUS
"Build libprotobuf from sources:"
)
if
(
NOT PROTOBUF_FOUND
)
message
(
STATUS
" libprotobuf not found into system"
)
if
(
UPDATE_PROTO_FILES
)
if
(
NOT DEFINED PROTOBUF_PROTOC_EXECUTABLE
)
find_package
(
Protobuf QUIET
)
endif
()
if
(
NOT EXISTS
${
PROTOBUF_PROTOC_EXECUTABLE
}
)
message
(
STATUS
" The protocol buffer compiler not found"
)
if
(
DEFINED PROTOBUF_PROTOC_EXECUTABLE AND EXISTS
${
PROTOBUF_PROTOC_EXECUTABLE
}
)
message
(
STATUS
"The protocol buffer compiler is found (
${
PROTOBUF_PROTOC_EXECUTABLE
}
)"
)
PROTOBUF_GENERATE_CPP
(
PROTOBUF_HDRS PROTOBUF_SRCS
src/caffe/caffe.proto
)
else
()
message
(
FATAL_ERROR
"The protocol buffer compiler is not found (PROTOBUF_PROTOC_EXECUTABLE='
${
PROTOBUF_PROTOC_EXECUTABLE
}
')"
)
endif
()
endif
()
#take into account OpenCV two-pass module addition scheme
if
(
NOT OPENCV_INITIAL_PASS
)
#TODO: it looks like a hack
add_subdirectory
(
${
CMAKE_CURRENT_SOURCE_DIR
}
/3rdparty/protobuf
)
endif
()
if
(
NOT BUILD_PROTOBUF AND
NOT
(
DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES
))
find_package
(
Protobuf QUIET
)
endif
()
if
(
PROTOBUF_FOUND
)
# nothing
else
()
include
(
${
CMAKE_CURRENT_LIST_DIR
}
/download_protobuf.cmake
)
add_subdirectory
(
${
CMAKE_CURRENT_SOURCE_DIR
}
/3rdparty/protobuf
)
set
(
PROTOBUF_LIBRARIES libprotobuf
)
set
(
PROTOBUF_INCLUDE_DIR
${
CMAKE_CURRENT_SOURCE_DIR
}
/3rdparty/protobuf/src
${
CMAKE_CURRENT_SOURCE_DIR
}
/misc/caffe
)
set
(
PROTOBUF_SRCS
${
CMAKE_CURRENT_SOURCE_DIR
}
/misc/caffe/caffe.pb.cc
)
set
(
PROTOBUF_HDRS
${
CMAKE_CURRENT_SOURCE_DIR
}
/misc/caffe/caffe.pb.h
)
add_definitions
(
-DHAVE_PROTOBUF=1
)
set
(
PROTOBUF_INCLUDE_DIR
${
CMAKE_CURRENT_SOURCE_DIR
}
/3rdparty/protobuf/sources/protobuf-3.1.0/src
)
endif
()
#supress warnings in autogenerated caffe.pb.* files
ocv_warnings_disable
(
CMAKE_CXX_FLAGS -Wunused-parameter
)
ocv_warnings_disable
(
CMAKE_CXX_FLAGS /wd4125 /wd4267 /wd4127 /wd4244 /wd4512 /wd4702
)
if
(
NOT UPDATE_PROTO_FILES
)
list
(
APPEND PROTOBUF_SRCS
${
CMAKE_CURRENT_SOURCE_DIR
}
/misc/caffe/caffe.pb.cc
)
list
(
APPEND PROTOBUF_HDRS
${
CMAKE_CURRENT_SOURCE_DIR
}
/misc/caffe/caffe.pb.h
)
list
(
APPEND PROTOBUF_INCLUDE_DIR
${
CMAKE_CURRENT_SOURCE_DIR
}
/misc/caffe
)
endif
()
add_definitions
(
-DHAVE_PROTOBUF=1
)
#supress warnings in autogenerated caffe.pb.* files
ocv_warnings_disable
(
CMAKE_CXX_FLAGS -Wunused-parameter -Wundef
)
ocv_warnings_disable
(
CMAKE_CXX_FLAGS /wd4125 /wd4267 /wd4127 /wd4244 /wd4512 /wd4702
)
modules/dnn/cmake/download_protobuf.cmake
0 → 100644
View file @
57d63db9
set
(
PROTOBUF_CPP_NAME
"libprotobuf"
)
set
(
PROTOBUF_CPP_DOWNLOAD_HASH
"bd5e3eed635a8d32e2b99658633815ef"
)
set
(
PROTOBUF_CPP_PATH
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/3rdparty/protobuf/sources"
)
# /protobuf-3.1.0 subdirectory
set
(
OPENCV_PROTOBUF_CPP_DOWNLOAD_URL
${
OPENCV_PROTOBUF_URL
}
;$ENV{OPENCV_PROTOBUF_URL};https://github.com/google/protobuf/releases/download/
)
function
(
ocv_protobuf_download file ID
)
if
(
DEFINED
${
ID
}
_DOWNLOADED_HASH
AND
${
ID
}
_DOWNLOADED_HASH STREQUAL
${
ID
}
_DOWNLOAD_HASH
AND EXISTS
${${
ID
}
_PATH
}
)
# Files have been downloaded and checked by the previous CMake run
return
()
else
()
if
(
EXISTS
${${
ID
}
_PATH
}
)
message
(
STATUS
"
${${
ID
}
_NAME
}
: Removing previous unpacked files:
${${
ID
}
_PATH
}
"
)
file
(
REMOVE_RECURSE
${${
ID
}
_PATH
}
)
endif
()
endif
()
unset
(
${
ID
}
_DOWNLOADED_HASH CACHE
)
file
(
MAKE_DIRECTORY
${
CMAKE_CURRENT_SOURCE_DIR
}
/.download
)
file
(
WRITE
"
${
CMAKE_CURRENT_SOURCE_DIR
}
/.download/.gitignore"
"*
\n
"
)
ocv_download
(
PACKAGE
${
file
}
HASH
${${
ID
}
_DOWNLOAD_HASH
}
URL
${
OPENCV_
${
ID
}
_DOWNLOAD_URL
}
DOWNLOAD_DIR
${
CMAKE_CURRENT_SOURCE_DIR
}
/.download
)
set
(
${
ID
}
_ARCHIVE
"
${
DOWNLOAD_PACKAGE_LOCATION
}
"
)
ocv_assert
(
EXISTS
"
${${
ID
}
_ARCHIVE
}
"
)
ocv_assert
(
NOT EXISTS
"
${${
ID
}
_PATH
}
"
)
file
(
MAKE_DIRECTORY
${${
ID
}
_PATH
}
)
ocv_assert
(
EXISTS
"
${${
ID
}
_PATH
}
"
)
file
(
WRITE
"
${${
ID
}
_PATH
}
/.gitignore"
"*
\n
"
)
message
(
STATUS
"
${${
ID
}
_NAME
}
: Unpacking
${
file
}
to
${${
ID
}
_PATH
}
..."
)
execute_process
(
COMMAND
${
CMAKE_COMMAND
}
-E tar xz
"
${${
ID
}
_ARCHIVE
}
"
WORKING_DIRECTORY
"
${${
ID
}
_PATH
}
"
RESULT_VARIABLE __result
)
if
(
NOT __result EQUAL 0
)
message
(
FATAL_ERROR
"
${${
ID
}
_NAME
}
: Failed to unpack
${
ID
}
archive from
${${
ID
}
_ARCHIVE
}
to
${${
ID
}
_PATH
}
with error
${
__result
}
"
)
endif
()
ocv_assert
(
EXISTS
"
${${
ID
}
_PATH
}
"
)
set
(
${
ID
}
_DOWNLOADED_HASH
"
${${
ID
}
_DOWNLOAD_HASH
}
"
CACHE INTERNAL
"
${
ID
}
hash"
)
#message(STATUS "${${ID}_NAME}: Successfully downloaded")
endfunction
()
ocv_protobuf_download
(
v3.1.0/protobuf-cpp-3.1.0.tar.gz PROTOBUF_CPP
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment