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
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
93 additions
and
28 deletions
+93
-28
CMakeLists.txt
modules/dnn/3rdparty/protobuf/CMakeLists.txt
+0
-0
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
This diff is collapsed.
Click to expand it.
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