Skip to content

Commit a242556

Browse files
committed
Merge branch 'master' of https://github.com/Itseez/opencv into gdal_lan
Conflicts: modules/imgcodecs/include/opencv2/imgcodecs.hpp
2 parents decdae5 + 6e2a68f commit a242556

File tree

260 files changed

+10174
-5036
lines changed

Some content is hidden

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

260 files changed

+10174
-5036
lines changed

3rdparty/ippicv/downloader.cmake

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
#
77

88
function(_icv_downloader)
9+
# Commit SHA in the opencv_3rdparty repo
10+
set(IPPICV_BINARIES_COMMIT "3d41df448b589aa076d9d27ace344d3ef709e4b9")
911
# Define actual ICV versions
1012
if(APPLE)
1113
set(OPENCV_ICV_PACKAGE_NAME "ippicv_macosx_20141027.tgz")
@@ -62,7 +64,7 @@ function(_icv_downloader)
6264
if(DEFINED ENV{OPENCV_ICV_URL})
6365
set(OPENCV_ICV_URL $ENV{OPENCV_ICV_URL})
6466
else()
65-
set(OPENCV_ICV_URL "http://sourceforge.net/projects/opencvlibrary/files/3rdparty/ippicv")
67+
set(OPENCV_ICV_URL "https://raw.githubusercontent.com/Itseez/opencv_3rdparty/${IPPICV_BINARIES_COMMIT}/ippicv")
6668
endif()
6769
endif()
6870

3rdparty/libtiff/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4018 /wd4100 /wd4127 /wd4311 /wd4701 /wd
9393
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4244) # vs2008
9494
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4267 /wd4305 /wd4306) # vs2008 Win64
9595
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4703) # vs2012
96+
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4456 /wd4457 /wd4312) # vs2015
9697

9798
ocv_warnings_disable(CMAKE_C_FLAGS /wd4267 /wd4244 /wd4018)
9899

3rdparty/openexr/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4018 /wd4099 /wd4100 /wd4101 /wd4127 /wd
4444
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4334) # vs2005 Win64
4545
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4244) # vs2008
4646
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4267) # vs2008 Win64
47+
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4456) # vs2015
4748

4849
if(UNIX AND (CMAKE_COMPILER_IS_GNUCXX OR CV_ICC))
4950
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")

3rdparty/tbb/CMakeLists.txt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,13 @@ else()
212212
endif()
213213

214214
ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef -Wmissing-declarations)
215-
string(REPLACE "-Werror=non-virtual-dtor" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
215+
216+
# filter out flags that are not handled well by the TBB code
217+
foreach(var CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_DEBUG)
218+
string(REPLACE "-Werror=non-virtual-dtor" "" ${var} "${${var}}")
219+
string(REPLACE "-fvisibility=hidden" "" ${var} "${${var}}")
220+
string(REPLACE "-fvisibility-inlines-hidden" "" ${var} "${${var}}")
221+
endforeach()
216222

217223
if (WIN32)
218224
set(tbb_debug_postfix "_debug") # to fit pragmas in _windef.h inside TBB

CMakeLists.txt

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ if(DEFINED CMAKE_BUILD_TYPE)
8585
set_property( CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CMAKE_CONFIGURATION_TYPES} )
8686
endif()
8787

88+
enable_testing()
89+
8890
project(OpenCV CXX C)
8991

9092
if(MSVC)
@@ -188,7 +190,7 @@ OCV_OPTION(WITH_QUICKTIME "Use QuickTime for Video I/O insted of QTKit" OFF
188190
OCV_OPTION(WITH_TBB "Include Intel TBB support" OFF IF (NOT IOS AND NOT WINRT) )
189191
OCV_OPTION(WITH_OPENMP "Include OpenMP support" OFF)
190192
OCV_OPTION(WITH_CSTRIPES "Include C= support" OFF IF (WIN32 AND NOT WINRT) )
191-
OCV_OPTION(WITH_PTHREADS_PF "Use pthreads-based parallel_for" ON IF (NOT WIN32) )
193+
OCV_OPTION(WITH_PTHREADS_PF "Use pthreads-based parallel_for" ON IF (NOT WIN32 OR MINGW) )
192194
OCV_OPTION(WITH_TIFF "Include TIFF support" ON IF (NOT IOS) )
193195
OCV_OPTION(WITH_UNICAP "Include Unicap support (GPL)" OFF IF (UNIX AND NOT APPLE AND NOT ANDROID) )
194196
OCV_OPTION(WITH_V4L "Include Video 4 Linux support" ON IF (UNIX AND NOT ANDROID) )
@@ -205,7 +207,8 @@ OCV_OPTION(WITH_OPENCLAMDBLAS "Include AMD OpenCL BLAS library support" ON
205207
OCV_OPTION(WITH_DIRECTX "Include DirectX support" ON IF (WIN32 AND NOT WINRT) )
206208
OCV_OPTION(WITH_INTELPERC "Include Intel Perceptual Computing support" OFF IF (WIN32 AND NOT WINRT) )
207209
OCV_OPTION(WITH_IPP_A "Include Intel IPP_A support" OFF IF (MSVC OR X86 OR X86_64) )
208-
OCV_OPTION(WITH_VAAPI "Include VA-API support" OFF IF (UNIX AND NOT ANDROID) )
210+
OCV_OPTION(WITH_VA "Include VA support" OFF IF (UNIX AND NOT ANDROID) )
211+
OCV_OPTION(WITH_VA_INTEL "Include Intel VA-API/OpenCL support" OFF IF (UNIX AND NOT ANDROID) )
209212
OCV_OPTION(WITH_GDAL "Include GDAL Support" OFF IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
210213
OCV_OPTION(WITH_GPHOTO2 "Include gPhoto2 library support" ON IF (UNIX AND NOT ANDROID) )
211214

@@ -1066,9 +1069,13 @@ if(DEFINED WITH_IPP_A)
10661069
status(" Use IPP Async:" HAVE_IPP_A THEN "YES" ELSE NO)
10671070
endif(DEFINED WITH_IPP_A)
10681071

1069-
if(DEFINED WITH_VAAPI)
1070-
status(" Use Intel VA-API:" HAVE_VAAPI THEN "YES (MSDK: ${VAAPI_MSDK_ROOT} OpenCL: ${VAAPI_IOCL_ROOT})" ELSE NO)
1071-
endif(DEFINED WITH_VAAPI)
1072+
if(DEFINED WITH_VA)
1073+
status(" Use VA:" HAVE_VA THEN "YES" ELSE NO)
1074+
endif(DEFINED WITH_VA)
1075+
1076+
if(DEFINED WITH_VA_INTEL)
1077+
status(" Use Intel VA-API/OpenCL:" HAVE_VA_INTEL THEN "YES (MSDK: ${VA_INTEL_MSDK_ROOT} OpenCL: ${VA_INTEL_IOCL_ROOT})" ELSE NO)
1078+
endif(DEFINED WITH_VA_INTEL)
10721079

10731080
status(" Use Eigen:" HAVE_EIGEN THEN "YES (ver ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})" ELSE NO)
10741081
status(" Use Cuda:" HAVE_CUDA THEN "YES (ver ${CUDA_VERSION_STRING})" ELSE NO)

CONTRIBUTING.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## Contributing guidelines
2+
3+
All guidelines for contributing to the OpenCV repository can be found at [`How to contribute guideline`](https://github.com/Itseez/opencv/wiki/How_to_contribute).

cmake/OpenCVCompilerOptions.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,5 +362,7 @@ if(MSVC)
362362
if(NOT ENABLE_NOISY_WARNINGS)
363363
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4251) # class 'std::XXX' needs to have dll-interface to be used by clients of YYY
364364
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4324) # 'struct_name' : structure was padded due to __declspec(align())
365+
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4275) # non dll-interface class 'std::exception' used as base for dll-interface class 'cv::Exception'
366+
ocv_warnings_disable(CMAKE_CXX_FLAGS /wd4589) # Constructor of abstract class 'cv::ORB' ignores initializer for virtual base class 'cv::Algorithm'
365367
endif()
366368
endif()

cmake/OpenCVDetectAndroidSDK.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ macro(add_android_project target path)
240240
foreach(f ${android_proj_files})
241241
add_custom_command(
242242
OUTPUT "${android_proj_bin_dir}/${f}"
243-
COMMAND ${CMAKE_COMMAND} -E copy "${path}/${f}" "${android_proj_bin_dir}/${f}"
243+
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${path}/${f}" "${android_proj_bin_dir}/${f}"
244244
MAIN_DEPENDENCY "${path}/${f}"
245245
COMMENT "Copying ${f}")
246246
list(APPEND android_proj_file_deps "${path}/${f}" "${android_proj_bin_dir}/${f}")
@@ -353,7 +353,7 @@ macro(add_android_project target path)
353353
set(__android_project_chain ${target} CACHE INTERNAL "auxiliary variable used for Android progects chaining")
354354

355355
# put the final .apk to the OpenCV's bin folder
356-
add_custom_command(TARGET ${target} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${android_proj_bin_dir}/bin/${target}-debug.apk" "${OpenCV_BINARY_DIR}/bin/${target}.apk")
356+
add_custom_command(TARGET ${target} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different "${android_proj_bin_dir}/bin/${target}-debug.apk" "${OpenCV_BINARY_DIR}/bin/${target}.apk")
357357
if(INSTALL_ANDROID_EXAMPLES AND "${target}" MATCHES "^example-")
358358
#apk
359359
install(FILES "${OpenCV_BINARY_DIR}/bin/${target}.apk" DESTINATION "samples" COMPONENT samples)

cmake/OpenCVDetectCXXCompiler.cmake

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -76,17 +76,27 @@ elseif(CMAKE_COMPILER_IS_GNUCXX)
7676
OUTPUT_STRIP_TRAILING_WHITESPACE)
7777

7878
# Typical output in CMAKE_OPENCV_GCC_VERSION_FULL: "c+//0 (whatever) 4.2.3 (...)"
79-
# Look for the version number
79+
# Look for the version number, major.minor.build
8080
string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" CMAKE_GCC_REGEX_VERSION "${CMAKE_OPENCV_GCC_VERSION_FULL}")
81-
if(NOT CMAKE_GCC_REGEX_VERSION)
81+
if(NOT CMAKE_GCC_REGEX_VERSION)#major.minor
8282
string(REGEX MATCH "[0-9]+\\.[0-9]+" CMAKE_GCC_REGEX_VERSION "${CMAKE_OPENCV_GCC_VERSION_FULL}")
8383
endif()
8484

85-
# Split the three parts:
86-
string(REGEX MATCHALL "[0-9]+" CMAKE_OPENCV_GCC_VERSIONS "${CMAKE_GCC_REGEX_VERSION}")
87-
88-
list(GET CMAKE_OPENCV_GCC_VERSIONS 0 CMAKE_OPENCV_GCC_VERSION_MAJOR)
89-
list(GET CMAKE_OPENCV_GCC_VERSIONS 1 CMAKE_OPENCV_GCC_VERSION_MINOR)
85+
if(CMAKE_GCC_REGEX_VERSION)
86+
# Split the parts:
87+
string(REGEX MATCHALL "[0-9]+" CMAKE_OPENCV_GCC_VERSIONS "${CMAKE_GCC_REGEX_VERSION}")
88+
89+
list(GET CMAKE_OPENCV_GCC_VERSIONS 0 CMAKE_OPENCV_GCC_VERSION_MAJOR)
90+
list(GET CMAKE_OPENCV_GCC_VERSIONS 1 CMAKE_OPENCV_GCC_VERSION_MINOR)
91+
else()#compiler returned just the major version number
92+
string(REGEX MATCH "[0-9]+" CMAKE_GCC_REGEX_VERSION "${CMAKE_OPENCV_GCC_VERSION_FULL}")
93+
if(NOT CMAKE_GCC_REGEX_VERSION)#compiler did not return anything reasonable
94+
set(CMAKE_GCC_REGEX_VERSION "0")
95+
message(WARNING "GCC version not detected!")
96+
endif()
97+
set(CMAKE_OPENCV_GCC_VERSION_MAJOR ${CMAKE_GCC_REGEX_VERSION})
98+
set(CMAKE_OPENCV_GCC_VERSION_MINOR 0)
99+
endif()
90100

91101
set(CMAKE_OPENCV_GCC_VERSION ${CMAKE_OPENCV_GCC_VERSION_MAJOR}${CMAKE_OPENCV_GCC_VERSION_MINOR})
92102
math(EXPR CMAKE_OPENCV_GCC_VERSION_NUM "${CMAKE_OPENCV_GCC_VERSION_MAJOR}*100 + ${CMAKE_OPENCV_GCC_VERSION_MINOR}")
@@ -116,6 +126,12 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)")
116126
set(AARCH64 1)
117127
endif()
118128

129+
# Workaround for 32-bit operating systems on 64-bit x86_64 processor
130+
if(X86_64 AND CMAKE_SIZEOF_VOID_P EQUAL 4 AND NOT FORCE_X86_64)
131+
message(STATUS "sizeof(void) = 4 on x86 / x86_64 processor. Assume 32-bit compilation mode (X86=1)")
132+
unset(X86_64)
133+
set(X86 1)
134+
endif()
119135

120136
# Similar code exists in OpenCVConfig.cmake
121137
if(NOT DEFINED OpenCV_STATIC)

cmake/OpenCVFindLibsVideo.cmake

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -318,10 +318,18 @@ if(WITH_GPHOTO2)
318318
CHECK_MODULE(libgphoto2 HAVE_GPHOTO2)
319319
endif(WITH_GPHOTO2)
320320

321-
# --- VA-API ---
322-
if(WITH_VAAPI)
323-
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindVAAPI.cmake")
324-
if(VAAPI_IOCL_INCLUDE_DIR)
325-
ocv_include_directories(${VAAPI_IOCL_INCLUDE_DIR})
321+
# --- VA & VA_INTEL ---
322+
if(WITH_VA_INTEL)
323+
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindVA_INTEL.cmake")
324+
if(VA_INTEL_IOCL_INCLUDE_DIR)
325+
ocv_include_directories(${VA_INTEL_IOCL_INCLUDE_DIR})
326326
endif()
327-
endif(WITH_VAAPI)
327+
set(WITH_VA YES)
328+
endif(WITH_VA_INTEL)
329+
330+
if(WITH_VA)
331+
include("${OpenCV_SOURCE_DIR}/cmake/OpenCVFindVA.cmake")
332+
if(VA_INCLUDE_DIR)
333+
ocv_include_directories(${VA_INCLUDE_DIR})
334+
endif()
335+
endif(WITH_VA)

0 commit comments

Comments
 (0)