Update opencv to 3.3.0

This commit is contained in:
Gregorio Litenstein 2017-09-02 18:26:29 -03:00 committed by Boris Nagaev
parent 9971cb923a
commit 4560f79e70
7 changed files with 184 additions and 467 deletions

View File

@ -1,142 +1,42 @@
This file is part of MXE. See LICENSE.md for licensing information.
Contains ad hoc patches for cross building.
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Gregorio Litenstein <g.litenstein@gmail.com>
Date: Thu, 31 Aug 2017 18:27:53 -0300
Subject: [PATCH] Update patch-1 for opencv-3.3.0
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 579312d..53e4132 100644
index 1111111..2222222 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,7 +38,7 @@ else(NOT CMAKE_TOOLCHAIN_FILE)
#Android: set output folder to ${CMAKE_BINARY_DIR}
set( LIBRARY_OUTPUT_PATH_ROOT ${CMAKE_BINARY_DIR} CACHE PATH "root for library output, set this to change where android libs are compiled to" )
# any crosscompiling
- set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Installation Directory")
+ #set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Installation Directory")
endif(NOT CMAKE_TOOLCHAIN_FILE)
# --------------------------------------------------------------
diff -ur a/modules/core/src/lapack.cpp b/modules/core/src/lapack.cpp
--- a/modules/core/src/lapack.cpp 2013-12-28 04:09:18.000000000 +1100
+++ b/modules/core/src/lapack.cpp 2014-01-05 21:14:52.869649685 +1100
@@ -716,7 +716,7 @@
static void JacobiSVD(double* At, size_t astep, double* W, double* Vt, size_t vstep, int m, int n, int n1=-1)
{
- JacobiSVDImpl_(At, astep, W, Vt, vstep, m, n, !Vt ? 0 : n1 < 0 ? n : n1, DBL_MIN, DBL_EPSILON*10);
+ JacobiSVDImpl_(At, astep, W, Vt, vstep, m, n, !Vt ? 0 : n1 < 0 ? n : n1, DBL_MIN, DBL_EPSILON*10L);
}
/* y[0:m,0:n] += diag(a[0:1,0:m]) * x[0:m,0:n] */
diff -ur a/modules/core/src/precomp.hpp b/modules/core/src/precomp.hpp
--- a/modules/core/src/precomp.hpp 2013-12-28 04:09:18.000000000 +1100
+++ b/modules/core/src/precomp.hpp 2014-01-05 21:05:08.968467624 +1100
@@ -51,7 +51,7 @@
#include <assert.h>
#include <ctype.h>
-#include <float.h>
+#include <cfloat>
#include <limits.h>
#include <math.h>
#include <stdio.h>
diff -ur a/modules/highgui/src/window_w32.cpp b/modules/highgui/src/window_w32.cpp
--- a/modules/highgui/src/window_w32.cpp 2013-12-28 04:09:18.000000000 +1100
+++ b/modules/highgui/src/window_w32.cpp 2014-01-05 21:23:48.318950096 +1100
@@ -75,7 +75,7 @@
#include <vector>
#include <functional>
#include "opencv2/highgui/highgui.hpp"
-#include <GL\gl.h>
+#include <GL/gl.h>
#endif
static const char* trackbar_text =
@@ -36,7 +36,7 @@ if(NOT DEFINED CMAKE_INSTALL_PREFIX)
if(NOT CMAKE_TOOLCHAIN_FILE)
# it _must_ go before project(OpenCV) in order to work
if(WIN32)
- set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Installation Directory")
+ #set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Installation Directory")
else()
set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation Directory")
endif()
diff -ur a/cmake/OpenCVFindLibsVideo.cmake b/cmake/OpenCVFindLibsVideo.cmake
--- a/cmake/OpenCVFindLibsVideo.cmake 2013-12-28 04:09:18.000000000 +1100
+++ b/cmake/OpenCVFindLibsVideo.cmake 2014-01-07 22:34:22.291927941 +1100
@@ -228,12 +228,12 @@
diff --git a/CMakeLists.txt.orig b/CMakeLists.txt
index 1b6b95e5..15d86af2 100644
--- a/CMakeLists.txt.orig
+++ b/CMakeLists.txt
@@ -44,7 +44,7 @@ if(NOT DEFINED CMAKE_INSTALL_PREFIX)
#Android: set output folder to ${CMAKE_BINARY_DIR}
set( LIBRARY_OUTPUT_PATH_ROOT ${CMAKE_BINARY_DIR} CACHE PATH "root for library output, set this to change where android libs are compiled to" )
# any crosscompiling
- set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Installation Directory")
+ #set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Installation Directory")
endif(NOT CMAKE_TOOLCHAIN_FILE)
endif()
# --- Extra HighGUI libs on Windows ---
if(WIN32)
- list(APPEND HIGHGUI_LIBRARIES comctl32 gdi32 ole32 setupapi ws2_32 vfw32)
+ list(APPEND HIGHGUI_LIBRARIES -lcomctl32 -lgdi32 -lole32 -lsetupapi -lws2_32 -lvfw32 -lstrmiids -loleaut32 -luuid)
if(MINGW64)
- list(APPEND HIGHGUI_LIBRARIES avifil32 avicap32 winmm msvfw32)
- list(REMOVE_ITEM HIGHGUI_LIBRARIES vfw32)
+ list(APPEND HIGHGUI_LIBRARIES -lavifil32 -lavicap32 -lwinmm -lmsvfw32)
+ list(REMOVE_ITEM HIGHGUI_LIBRARIES -lvfw32)
elseif(MINGW)
- list(APPEND HIGHGUI_LIBRARIES winmm)
+ list(APPEND HIGHGUI_LIBRARIES -lwinmm)
endif()
endif(WIN32)
--- a/modules/highgui/CMakeLists.txt
+++ b/modules/highgui/CMakeLists.txt
@@ -262,7 +267,7 @@ set_target_properties(${the_module} PROPERTIES LINK_INTERFACE_LIBRARIES "")
ocv_add_precompiled_headers(${the_module})
ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-deprecated-declarations)
-if(WIN32 AND WITH_FFMPEG)
+if(WIN32 AND WITH_FFMPEG AND BUILD_SHARED_LIBS)
#copy ffmpeg dll to the output folder
if(MSVC64 OR MINGW64)
set(FFMPEG_SUFFIX _64)
diff --git a/cmake/OpenCVFindLZMA.cmake b/cmake/OpenCVFindLZMA.cmake
new file mode 100644
index 0000000..0b46b2c
--- /dev/null
+++ b/cmake/OpenCVFindLZMA.cmake
@@ -0,0 +1,48 @@
+# - Find lzma and lzmadec
+# Find the native LZMA includes and library
+#
+# LZMA_INCLUDE_DIR - where to find lzma.h, etc.
+# LZMA_LIBRARIES - List of libraries when using liblzma.
+# LZMA_FOUND - True if liblzma found.
+# LZMADEC_INCLUDE_DIR - where to find lzmadec.h, etc.
+# LZMADEC_LIBRARIES - List of libraries when using liblzmadec.
+# LZMADEC_FOUND - True if liblzmadec found.
+
+IF (LZMA_INCLUDE_DIR)
+ # Already in cache, be silent
+ SET(LZMA_FIND_QUIETLY TRUE)
+ENDIF (LZMA_INCLUDE_DIR)
+
+FIND_PATH(LZMA_INCLUDE_DIR lzma.h)
+FIND_LIBRARY(LZMA_LIBRARY NAMES lzma liblzma)
+
+# handle the QUIETLY and REQUIRED arguments and set LZMA_FOUND to TRUE if
+# all listed variables are TRUE
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(LZMA DEFAULT_MSG LZMA_LIBRARY LZMA_INCLUDE_DIR)
+
+IF(LZMA_FOUND)
+ SET( LZMA_LIBRARIES ${LZMA_LIBRARY} )
+ELSE(LZMA_FOUND)
+ SET( LZMA_LIBRARIES )
+
+ IF (LZMADEC_INCLUDE_DIR)
+ # Already in cache, be silent
+ SET(LZMADEC_FIND_QUIETLY TRUE)
+ ENDIF (LZMADEC_INCLUDE_DIR)
+
+ FIND_PATH(LZMADEC_INCLUDE_DIR lzmadec.h)
+ FIND_LIBRARY(LZMADEC_LIBRARY NAMES lzmadec )
+
+ # handle the QUIETLY and REQUIRED arguments and set LZMADEC_FOUND to TRUE if
+ # all listed variables are TRUE
+ INCLUDE(FindPackageHandleStandardArgs)
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(LZMADEC DEFAULT_MSG LZMADEC_LIBRARY
+ LZMADEC_INCLUDE_DIR)
+
+ IF(LZMADEC_FOUND)
+ SET( LZMADEC_LIBRARIES ${LZMADEC_LIBRARY} )
+ ELSE(LZMADEC_FOUND)
+ SET( LZMADEC_LIBRARIES )
+ ENDIF(LZMADEC_FOUND)
+ENDIF(LZMA_FOUND)
diff --git a/cmake/OpenCVFindLibsGrfmt.cmake b/cmake/OpenCVFindLibsGrfmt.cmake
index 5988169..738e1f3 100644
index 1111111..2222222 100644
--- a/cmake/OpenCVFindLibsGrfmt.cmake
+++ b/cmake/OpenCVFindLibsGrfmt.cmake
@@ -2,6 +2,11 @@
@ -163,45 +63,81 @@ index 5988169..738e1f3 100644
# --- libtiff (optional, should be searched after zlib) ---
if(WITH_TIFF)
if(BUILD_TIFF)
@@ -114,6 +124,7 @@ if(WITH_PNG)
if(BUILD_PNG)
ocv_clear_vars(PNG_FOUND)
else()
+ include(CheckIncludeFile)
include(FindPNG)
if(PNG_FOUND)
check_include_file("${PNG_PNG_INCLUDE_DIR}/png.h" HAVE_PNG_H)
diff --git a/modules/core/CMakeLists.txt b/modules/core/CMakeLists.txt
index 4c5112e..7411f32 100644
--- a/modules/core/CMakeLists.txt
+++ b/modules/core/CMakeLists.txt
@@ -1,12 +1,12 @@
set(the_description "The Core Functionality")
diff --git a/cmake/OpenCVFindLibsVideo.cmake b/cmake/OpenCVFindLibsVideo.cmake
index 1111111..2222222 100644
--- a/cmake/OpenCVFindLibsVideo.cmake
+++ b/cmake/OpenCVFindLibsVideo.cmake
@@ -272,15 +272,15 @@ endif(WITH_MSMF)
if (NOT HAVE_CUDA OR ENABLE_DYNAMIC_CUDA)
- ocv_add_module(core PRIVATE_REQUIRED ${ZLIB_LIBRARIES})
+ ocv_add_module(core PRIVATE_REQUIRED ${ZLIB_LIBRARIES} ${LZMA_LIBRARIES} ${LCMS_LIBRARIES})
else()
- ocv_add_module(core PRIVATE_REQUIRED ${ZLIB_LIBRARIES} ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY})
+ ocv_add_module(core PRIVATE_REQUIRED ${ZLIB_LIBRARIES} ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY} ${LZMA_LIBRARIES} ${LCMS_LIBRARIES})
endif()
# --- Extra HighGUI and VideoIO libs on Windows ---
if(WIN32)
- list(APPEND HIGHGUI_LIBRARIES comctl32 gdi32 ole32 setupapi ws2_32)
+ list(APPEND HIGHGUI_LIBRARIES -lcomctl32 -lcomdlg32 -lgdi32 -lole32 -lsetupapi -lws2_32 -lvfw32 -lstrmiids -loleaut32 -luuid)
if(HAVE_VFW)
list(APPEND VIDEOIO_LIBRARIES vfw32)
endif()
if(MINGW64)
- list(APPEND VIDEOIO_LIBRARIES avifil32 avicap32 winmm msvfw32)
- list(REMOVE_ITEM VIDEOIO_LIBRARIES vfw32)
+ list(APPEND VIDEOIO_LIBRARIES -lavifil32 -lavicap32 -lwinmm -lmsvfw32)
+ list(REMOVE_ITEM VIDEOIO_LIBRARIES -lvfw32)
elseif(MINGW)
- list(APPEND VIDEOIO_LIBRARIES winmm)
+ list(APPEND VIDEOIO_LIBRARIES -lwinmm)
endif()
endif(WIN32)
-ocv_module_include_directories("${OpenCV_SOURCE_DIR}/modules/dynamicuda/include/" ${ZLIB_INCLUDE_DIR})
+ocv_module_include_directories("${OpenCV_SOURCE_DIR}/modules/dynamicuda/include/" ${ZLIB_INCLUDE_DIR} ${LZMA_INCLUDE_DIR} ${LCMS_INCLUDE_DIR})
if(HAVE_WINRT_CX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /ZW")
diff --git a/cmake/templates/opencv-XXX.pc.cmake.in b/cmake/templates/opencv-XXX.pc.cmake.in
index 4f6415c..ea1ed15 100644
diff --git a/cmake/templates/opencv-XXX.pc.in b/cmake/templates/opencv-XXX.pc.in
index 1111111..2222222 100644
--- a/cmake/templates/opencv-XXX.pc.in
+++ b/cmake/templates/opencv-XXX.pc.in
@@ -9,5 +9,7 @@
@@ -9,6 +9,7 @@ includedir_new=@includedir@
Name: OpenCV
Description: Open Source Computer Vision Library
Version: @OPENCV_VERSION@
Version: @OPENCV_VERSION_PLAIN@
+Requires: OpenEXR libtiff-4
Libs: @OpenCV_LIB_COMPONENTS@
+Libs.private: -luuid -loleaut32
Libs: @OPENCV_PC_LIBS@
-Libs.private: @OPENCV_PC_LIBS_PRIVATE@
+Libs.private: @OPENCV_PC_LIBS_PRIVATE@ -luuid -loleaut32
Cflags: -I${includedir_old} -I${includedir_new}
diff --git a/modules/core/src/lapack.cpp b/modules/core/src/lapack.cpp
index 1111111..2222222 100644
--- a/modules/core/src/lapack.cpp
+++ b/modules/core/src/lapack.cpp
@@ -608,7 +608,7 @@ void hal::SVD32f(float* At, size_t astep, float* W, float* U, size_t ustep, floa
void hal::SVD64f(double* At, size_t astep, double* W, double* U, size_t ustep, double* Vt, size_t vstep, int m, int n, int n1)
{
CALL_HAL(SVD64f, cv_hal_SVD64f, At, astep, W, U, ustep, Vt, vstep, m, n, decodeSVDParameters(U, Vt, m, n, n1))
- JacobiSVDImpl_(At, astep, W, Vt, vstep, m, n, !Vt ? 0 : n1 < 0 ? n : n1, DBL_MIN, DBL_EPSILON*10);
+ JacobiSVDImpl_(At, astep, W, Vt, vstep, m, n, !Vt ? 0 : n1 < 0 ? n : n1, DBL_MIN, DBL_EPSILON*10L);
}
/* y[0:m,0:n] += diag(a[0:1,0:m]) * x[0:m,0:n] */
diff --git a/modules/core/src/precomp.hpp b/modules/core/src/precomp.hpp
index 1111111..2222222 100644
--- a/modules/core/src/precomp.hpp
+++ b/modules/core/src/precomp.hpp
@@ -60,7 +60,7 @@
#include <assert.h>
#include <ctype.h>
-#include <float.h>
+#include <cfloat>
#include <limits.h>
#include <math.h>
#include <stdarg.h>
diff --git a/modules/videoio/CMakeLists.txt b/modules/videoio/CMakeLists.txt
index 1111111..2222222 100644
--- a/modules/videoio/CMakeLists.txt
+++ b/modules/videoio/CMakeLists.txt
@@ -231,6 +231,10 @@ if(WIN32)
include_directories(AFTER SYSTEM "${OpenCV_SOURCE_DIR}/3rdparty/include/ffmpeg_") # for tests
endif()
+if(WIN32)
+ add_definitions(-DSTRSAFE_NO_DEPRECATE)
+endif()
+
if(UNIX)
#these variables are set by CHECK_MODULE macro
foreach(P ${VIDEOIO_INCLUDE_DIRS})

View File

@ -1,57 +1,52 @@
This file is part of MXE. See LICENSE.md for licensing information.
diff -ru a/cmake/OpenCVGenConfig.cmake b/cmake/OpenCVGenConfig.cmake
--- a/cmake/OpenCVGenConfig.cmake 2014-10-01 08:33:36.000000000 +0100
+++ b/cmake/OpenCVGenConfig.cmake 2015-01-06 22:41:05.094464515 +0000
@@ -137,8 +137,8 @@
install(FILES "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" DESTINATION "${OpenCV_INSTALL_BINARIES_PREFIX}lib" COMPONENT dev)
install(EXPORT OpenCVModules DESTINATION "${OpenCV_INSTALL_BINARIES_PREFIX}lib" FILE OpenCVModules${modules_file_suffix}.cmake COMPONENT dev)
else()
- install(FILES "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" DESTINATION "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib" COMPONENT dev)
- install(EXPORT OpenCVModules DESTINATION "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib" FILE OpenCVModules${modules_file_suffix}.cmake COMPONENT dev)
+ install(FILES "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" DESTINATION "${OpenCV_INSTALL_BINARIES_PREFIX}lib" COMPONENT dev)
+ install(EXPORT OpenCVModules DESTINATION "${OpenCV_INSTALL_BINARIES_PREFIX}lib" FILE OpenCVModules${modules_file_suffix}.cmake COMPONENT dev)
endif()
install(FILES "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig-version.cmake" DESTINATION "${CMAKE_INSTALL_PREFIX}" COMPONENT dev)
install(FILES "${OpenCV_SOURCE_DIR}/cmake/OpenCVConfig.cmake" DESTINATION "${CMAKE_INSTALL_PREFIX}/" COMPONENT dev)
diff -ru a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt 2014-10-01 08:33:36.000000000 +0100
+++ b/CMakeLists.txt 2015-01-06 22:31:50.118454434 +0000
@@ -269,14 +269,7 @@
set(OPENCV_DOC_INSTALL_PATH share/OpenCV/doc)
Contains ad hoc patches for cross building.
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Gregorio Litenstein <g.litenstein@gmail.com>
Date: Thu, 31 Aug 2017 18:32:39 -0300
Subject: [PATCH] Update patch 2 for opencv-3.3.0
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1111111..2222222 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -360,14 +360,7 @@ else()
ocv_update(OPENCV_DOC_INSTALL_PATH share/OpenCV/doc)
endif()
-if(WIN32)
-if(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
- if(DEFINED OpenCV_RUNTIME AND DEFINED OpenCV_ARCH)
- set(OpenCV_INSTALL_BINARIES_PREFIX "${OpenCV_ARCH}/${OpenCV_RUNTIME}/")
- ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "${OpenCV_ARCH}/${OpenCV_RUNTIME}/")
- else()
- message(STATUS "Can't detect runtime and/or arch")
- set(OpenCV_INSTALL_BINARIES_PREFIX "")
- ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "")
- endif()
-elseif(ANDROID)
+if(ANDROID)
set(OpenCV_INSTALL_BINARIES_PREFIX "sdk/native/")
ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "sdk/native/")
else()
set(OpenCV_INSTALL_BINARIES_PREFIX "")
@@ -310,12 +303,8 @@
set(LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/lib")
set(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib${LIB_SUFFIX}")
if(WIN32)
ocv_update(OpenCV_INSTALL_BINARIES_PREFIX "")
@@ -415,12 +408,8 @@ else()
ocv_update(3P_LIBRARY_OUTPUT_PATH "${OpenCV_BINARY_DIR}/3rdparty/lib${LIB_SUFFIX}")
if(WIN32 AND CMAKE_HOST_SYSTEM_NAME MATCHES Windows)
- if(OpenCV_STATIC)
- set(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}")
- ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}")
- else()
- set(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}")
- ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}")
- endif()
- set(OPENCV_3P_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}")
+ set(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}")
+ set(OPENCV_3P_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}")
set(OPENCV_SAMPLES_SRC_INSTALL_PATH samples/native)
else()
set(OPENCV_LIB_INSTALL_PATH lib${LIB_SUFFIX})
@@ -339,15 +328,9 @@
set(OPENCV_INCLUDE_INSTALL_PATH ${OPENCV_INCLUDE_INSTALL_PATH}/opencv-${OPENCV_VERSION})
- ocv_update(OPENCV_3P_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}staticlib${LIB_SUFFIX}")
+ ocv_update(OPENCV_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}")
+ ocv_update(OPENCV_3P_LIB_INSTALL_PATH "${OpenCV_INSTALL_BINARIES_PREFIX}lib${LIB_SUFFIX}")
ocv_update(OPENCV_SAMPLES_SRC_INSTALL_PATH samples/native)
ocv_update(OPENCV_JAR_INSTALL_PATH java)
ocv_update(OPENCV_OTHER_INSTALL_PATH etc)
@@ -464,15 +453,9 @@ if(INSTALL_TO_MANGLED_PATHS)
endif()
-if(WIN32)
- # Postfix of DLLs:
- set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}")

View File

@ -0,0 +1,39 @@
This file is part of MXE. See LICENSE.md for licensing information.
Contains ad hoc patches for cross building.
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Gregorio Litenstein <g.litenstein@gmail.com>
Date: Thu, 31 Aug 2017 18:35:23 -0300
Subject: [PATCH] Update patch-3 for opencv-3.3.0
Originally From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Boris Nagaev <bnagaev@gmail.com>
Date: Sun, 20 Dec 2015 18:14:56 +0300
Subject: [PATCH] fix CMake error if a directory contains ++
See https://github.com/mxe/mxe/issues/1091
diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake
index 1111111..2222222 100644
--- a/cmake/OpenCVModule.cmake
+++ b/cmake/OpenCVModule.cmake
@@ -491,12 +491,16 @@ function(__ocv_resolve_dependencies)
# process private deps
foreach(m ${OPENCV_MODULES_BUILD})
foreach(d ${OPENCV_MODULE_${m}_PRIVATE_REQ_DEPS})
- if(NOT (";${deps_${m}};" MATCHES ";${d};"))
+ # can't use MATCH because file paths can include regexp special chars
+ string(FIND ";${deps_${m}};" ";${d};" d_offset)
+ if(${d_offset} EQUAL -1)
list(APPEND deps_${m} ${d})
endif()
endforeach()
foreach(d ${OPENCV_MODULE_${m}_PRIVATE_OPT_DEPS})
- if(NOT (";${deps_${m}};" MATCHES ";${d};"))
+ # can't use MATCH because file paths can include regexp special chars
+ string(FIND ";${deps_${m}};" ";${d};" d_offset)
+ if(${d_offset} EQUAL -1)
if(HAVE_${d} OR TARGET ${d})
list(APPEND deps_${m} ${d})
endif()

View File

@ -1,156 +0,0 @@
This file is part of MXE. See LICENSE.md for licensing information.
This patch was committed to OpenCV's 2.4 branch and we should be able to drop
it in the next point release.
commit eceada586bbf18fc267e437522ec4f1f23ddc656
Author: Samuel Martin <s.martin49@gmail.com>
Date: Fri Oct 3 00:32:40 2014 +0200
cmake/OpenCVGenPkgconfig.cmake: rework opencv.pc generation
Using absolute path to locate the components in the "Libs:" field of the
*.pc can badly break cross-compilation, especially when building
statically linked objects.
Indeed, pkg-config automatically replaces the '-I...' and '-L...' paths
when the PKG_CONFIG_SYSROOT_DIR and PKG_CONFIG_LIBDIR environment
variables are set [1]. This feature is very helpful and common in
cross-compilation framework like Buildroot [2,3].
When there are absolute paths in the *.pc files, pkg-config won't be
able to do the path substitions for these paths when the afromentioned
environment variables are set.
In such case, since the prefix is the target one, not the sysroot one,
these libraries' abolute paths will point to:
- in the best case: a non-existing file (i.e. these files do not exists
on the host system;
- at worst: the host system's libraries. This will make the linking
failed because these host system's libraries will most likely not be
build for the target architecture [4].
So, this patch replace the components' absolute paths by the form:
-L<libdir> -l<libname>
This way, the linker will be able to resolve each dependency path,
whatever the kind of objects/build (shared object or static build) it
is dealing with.
Note that for static link, the library order does matter [5]. The order
of the opencv components has been carefully chosen to comply with this
requirement.
Fixes #3931
[1] http://linux.die.net/man/1/pkg-config
[2] http://buildroot.org/
[3] http://git.buildroot.net/buildroot/tree/package/pkgconf/pkg-config.in
[4] http://autobuild.buildroot.net/results/e8a/e8a859276db34aff87ef181b0cce98916b0afc90/build-end.log
[5] http://stackoverflow.com/questions/45135/linker-order-gcc
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
---
Note: this patch properly applies on top of the master branch, though it
has been written on top of the 2.4 branch.
diff --git a/cmake/OpenCVGenPkgconfig.cmake b/cmake/OpenCVGenPkgconfig.cmake
index fa57db9..183c56d 100644
--- a/cmake/OpenCVGenPkgconfig.cmake
+++ b/cmake/OpenCVGenPkgconfig.cmake
@@ -8,10 +8,6 @@
#
# ${BIN_DIR}/unix-install/opencv.pc -> For use *with* "make install"
# -------------------------------------------------------------------------------------------
-set(prefix "${CMAKE_INSTALL_PREFIX}")
-set(exec_prefix "\${prefix}")
-set(libdir "") #TODO: need link paths for OpenCV_EXTRA_COMPONENTS
-set(includedir "\${prefix}/${OPENCV_INCLUDE_INSTALL_PATH}")
if(CMAKE_BUILD_TYPE MATCHES "Release")
set(ocv_optkind OPT)
@@ -35,42 +31,66 @@ ocv_list_reverse(OpenCV_LIB_COMPONENTS)
ocv_list_reverse(OpenCV_EXTRA_COMPONENTS)
#build the list of components
-set(OpenCV_LIB_COMPONENTS_ "")
-foreach(CVLib ${OpenCV_LIB_COMPONENTS})
- get_target_property(libpath ${CVLib} LOCATION_${CMAKE_BUILD_TYPE})
- get_filename_component(libname "${libpath}" NAME)
- if(INSTALL_TO_MANGLED_PATHS)
- set(libname "${libname}.${OPENCV_VERSION}")
- endif()
+# Note:
+# when linking against static libraries, if libfoo depends on libbar, then
+# libfoo must come first in the linker flags.
+
+# world is a special target whose library should come first, especially for
+# static link.
+if(OpenCV_LIB_COMPONENTS MATCHES "opencv_world")
+ list(REMOVE_ITEM OpenCV_LIB_COMPONENTS "opencv_world")
+ list(INSERT OpenCV_LIB_COMPONENTS 0 "opencv_world")
+endif()
+
+set(OpenCV_LIB_COMPONENTS_)
+foreach(CVLib ${OpenCV_LIB_COMPONENTS})
- #need better solution....
- if(libpath MATCHES "3rdparty")
- set(installDir "share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH}")
+ get_target_property(libloc ${CVLib} LOCATION_${CMAKE_BUILD_TYPE})
+ if(libloc MATCHES "3rdparty")
+ set(libpath "\${exec_prefix}/share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH}")
else()
- set(installDir "${OPENCV_LIB_INSTALL_PATH}")
+ set(libpath "\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}")
endif()
+ list(APPEND OpenCV_LIB_COMPONENTS_ "-L${libpath}")
+
+ get_filename_component(libname ${CVLib} NAME_WE)
+ string(REGEX REPLACE "^lib" "" libname "${libname}")
+ list(APPEND OpenCV_LIB_COMPONENTS_ "-l${libname}")
- set(OpenCV_LIB_COMPONENTS_ "${OpenCV_LIB_COMPONENTS_} \${exec_prefix}/${installDir}/${libname}")
endforeach()
# add extra dependencies required for OpenCV
-set(OpenCV_LIB_COMPONENTS ${OpenCV_LIB_COMPONENTS_})
if(OpenCV_EXTRA_COMPONENTS)
foreach(extra_component ${OpenCV_EXTRA_COMPONENTS})
- if(extra_component MATCHES "^-[lL]" OR extra_component MATCHES "[\\/]")
- set(maybe_l_prefix "")
+ if(extra_component MATCHES "^-[lL]")
+ set(libprefix "")
+ set(libname "${extra_component}")
+ elseif(extra_component MATCHES "[\\/]")
+ get_filename_component(libdir "${extra_component}" PATH)
+ list(APPEND OpenCV_LIB_COMPONENTS_ "-L${libdir}")
+ get_filename_component(libname "${extra_component}" NAME_WE)
+ string(REGEX REPLACE "^lib" "" libname "${libname}")
+ set(libprefix "-l")
else()
- set(maybe_l_prefix "-l")
+ set(libprefix "-l")
+ set(libname "${extra_component}")
endif()
-
- set(OpenCV_LIB_COMPONENTS "${OpenCV_LIB_COMPONENTS} ${maybe_l_prefix}${extra_component}")
+ list(APPEND OpenCV_LIB_COMPONENTS_ "${libprefix}${libname}")
endforeach()
endif()
+list(REMOVE_DUPLICATES OpenCV_LIB_COMPONENTS_)
+string(REPLACE ";" " " OpenCV_LIB_COMPONENTS "${OpenCV_LIB_COMPONENTS_}")
+
#generate the .pc file
+set(prefix "${CMAKE_INSTALL_PREFIX}")
+set(exec_prefix "\${prefix}")
+set(libdir "\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}")
+set(includedir "\${prefix}/${OPENCV_INCLUDE_INSTALL_PATH}")
+
if(INSTALL_TO_MANGLED_PATHS)
set(OPENCV_PC_FILE_NAME "opencv-${OPENCV_VERSION}.pc")
else()

View File

@ -1,37 +0,0 @@
This file is part of MXE. See LICENSE.md for licensing information.
From 20cf852345e364f7e18c8721561d7c4d1ebd1d6e Mon Sep 17 00:00:00 2001
From: Boris Nagaev <bnagaev@gmail.com>
Date: Sun, 6 Sep 2015 00:53:13 +0100
Subject: [PATCH] reverse deps list before inserting to another list
Order of items in ${m}_EXTRA_DEPS_${ocv_optkind} corresponds
to the order in which a linker expects items to appear:
a depender before a dependee.
But the order of items of OpenCV_EXTRA_COMPONENTS is
reversed (afterwards this list is unique'ed and reversed).
That is why sub-lists must be inserted in reversed form.
---
cmake/OpenCVGenPkgconfig.cmake | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/cmake/OpenCVGenPkgconfig.cmake b/cmake/OpenCVGenPkgconfig.cmake
index 183c56d..180210d 100644
--- a/cmake/OpenCVGenPkgconfig.cmake
+++ b/cmake/OpenCVGenPkgconfig.cmake
@@ -19,9 +19,11 @@ endif()
set(OpenCV_LIB_COMPONENTS "")
set(OpenCV_EXTRA_COMPONENTS "")
foreach(m ${OPENCV_MODULES_PUBLIC})
list(INSERT OpenCV_LIB_COMPONENTS 0 ${${m}_MODULE_DEPS_${ocv_optkind}} ${m})
if(${m}_EXTRA_DEPS_${ocv_optkind})
+ ocv_list_reverse(${m}_EXTRA_DEPS_${ocv_optkind})
list(INSERT OpenCV_EXTRA_COMPONENTS 0 ${${m}_EXTRA_DEPS_${ocv_optkind}})
+ ocv_list_reverse(${m}_EXTRA_DEPS_${ocv_optkind})
endif()
endforeach()
--
2.1.4

View File

@ -1,65 +0,0 @@
This file is part of MXE. See LICENSE.md for licensing information.
Contains ad hoc patches for cross building.
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Boris Nagaev <bnagaev@gmail.com>
Date: Sun, 20 Dec 2015 18:14:56 +0300
Subject: [PATCH] fix CMake error if a directory contains ++
See https://github.com/mxe/mxe/issues/1091
diff --git a/cmake/OpenCVModule.cmake b/cmake/OpenCVModule.cmake
index 1111111..2222222 100644
--- a/cmake/OpenCVModule.cmake
+++ b/cmake/OpenCVModule.cmake
@@ -364,12 +364,16 @@ function(__ocv_resolve_dependencies)
# process private deps
foreach(m ${OPENCV_MODULES_BUILD})
foreach(d ${OPENCV_MODULE_${m}_PRIVATE_REQ_DEPS})
- if(NOT (";${deps_${m}};" MATCHES ";${d};"))
+ # can't use MATCH because file paths can include regexp special chars
+ string(FIND ";${deps_${m}};" ";${d};" d_offset)
+ if(${d_offset} EQUAL -1)
list(APPEND deps_${m} ${d})
endif()
endforeach()
foreach(d ${OPENCV_MODULE_${m}_PRIVATE_OPT_DEPS})
- if(NOT (";${deps_${m}};" MATCHES ";${d};"))
+ # can't use MATCH because file paths can include regexp special chars
+ string(FIND ";${deps_${m}};" ";${d};" d_offset)
+ if(${d_offset} EQUAL -1)
if(HAVE_${d} OR TARGET ${d})
list(APPEND deps_${m} ${d})
endif()
diff --git a/cmake/OpenCVPCHSupport.cmake b/cmake/OpenCVPCHSupport.cmake
index 1111111..2222222 100644
--- a/cmake/OpenCVPCHSupport.cmake
+++ b/cmake/OpenCVPCHSupport.cmake
@@ -54,7 +54,9 @@ MACRO(_PCH_GET_COMPILE_FLAGS _out_compile_flags)
GET_DIRECTORY_PROPERTY(DIRINC INCLUDE_DIRECTORIES )
FOREACH(item ${DIRINC})
- if(item MATCHES "^${OpenCV_SOURCE_DIR}/modules/")
+ # can't use MATCH because file paths can include regexp special chars
+ string(FIND "${item}" "${OpenCV_SOURCE_DIR}/modules/" modules_offset)
+ if(${modules_offset} EQUAL 0)
LIST(APPEND ${_out_compile_flags} "${_PCH_include_prefix}\"${item}\"")
else()
LIST(APPEND ${_out_compile_flags} "${_PCH_isystem_prefix}\"${item}\"")
diff --git a/cmake/OpenCVUtils.cmake b/cmake/OpenCVUtils.cmake
index 1111111..2222222 100644
--- a/cmake/OpenCVUtils.cmake
+++ b/cmake/OpenCVUtils.cmake
@@ -39,7 +39,10 @@ function(ocv_include_directories)
set(__add_before "")
foreach(dir ${ARGN})
get_filename_component(__abs_dir "${dir}" ABSOLUTE)
- if("${__abs_dir}" MATCHES "^${OpenCV_SOURCE_DIR}" OR "${__abs_dir}" MATCHES "^${OpenCV_BINARY_DIR}")
+ # can't use MATCH because file paths can include regexp special chars
+ string(FIND "${__abs_dir}" "${OpenCV_SOURCE_DIR}" OpenCV_SOURCE_DIR_offset)
+ string(FIND "${__abs_dir}" "${OpenCV_BINARY_DIR}" OpenCV_BINARY_DIR_offset)
+ if($OpenCV_BINARY_DIR_offset} EQUAL 0 OR ${OpenCV_BINARY_DIR_offset} EQUAL 0)
list(APPEND __add_before "${dir}")
else()
include_directories(AFTER SYSTEM "${dir}")

View File

@ -4,13 +4,13 @@ PKG := opencv
$(PKG)_WEBSITE := http://opencv.org/
$(PKG)_DESCR := OpenCV
$(PKG)_IGNORE :=
$(PKG)_VERSION := 2.4.10
$(PKG)_CHECKSUM := 1bf4cb87283797fd91669d4f90b622a677a903c20b4a577b7958a2164f7596c6
$(PKG)_VERSION := 3.3.0
$(PKG)_CHECKSUM := 3546c3837f88177c898e4172942da7a3ca6c4e8e98a33d0cbccb2b499167c5ba
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := opencv-$($(PKG)_VERSION).zip
$(PKG)_URL := https://$(SOURCEFORGE_MIRROR)/project/$(PKG)library/$(PKG)-unix/$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_URL_2 := https://distfiles.macports.org/opencv/$($(PKG)_FILE)
$(PKG)_DEPS := gcc eigen ffmpeg jasper jpeg lcms1 libpng openexr tiff xz zlib
$(PKG)_DEPS := gcc eigen ffmpeg jasper jpeg lcms1 libpng libwebp openexr protobuf tiff xz zlib
define $(PKG)_UPDATE
$(WGET) -q -O- 'https://sourceforge.net/projects/opencvlibrary/files/opencv-unix/' | \
@ -39,10 +39,13 @@ define $(PKG)_BUILD
-DBUILD_TIFF=OFF \
-DBUILD_JASPER=OFF \
-DBUILD_JPEG=OFF \
-DBUILD_WEBP=OFF \
-DBUILD_PROTOBUF=OFF \
-DPROTOBUF_UPDATE_FILES=ON \
-DBUILD_PNG=OFF \
-DBUILD_OPENEXR=OFF \
-DCMAKE_VERBOSE=ON \
-DCMAKE_CXX_FLAGS='-D_WIN32_WINNT=0x0500 -D__STDC_LIMIT_MACROS'
-DCMAKE_CXX_FLAGS='-D_WIN32_WINNT=0x0500'
# install
$(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' VERBOSE=1
@ -53,11 +56,13 @@ define $(PKG)_BUILD
# opencv builds it's own libIlmImf.a
$(if $(findstring x86_64-w64-mingw32,$(TARGET)),\
$(SED) -i 's/OpenEXR//' '$(BUILD_DIR)/unix-install/opencv.pc')
$(SED) -i 's,share/OpenCV/3rdparty/,,g' '$(BUILD_DIR)/unix-install/opencv.pc'
$(INSTALL) -m755 '$(BUILD_DIR)/unix-install/opencv.pc' '$(PREFIX)/$(TARGET)/lib/pkgconfig'
'$(TARGET)-g++' \
-W -Wall -Werror -ansi -pedantic \
'$(1)/samples/c/fback_c.c' -o '$(PREFIX)/$(TARGET)/bin/test-opencv.exe' \
-W -Wall -Werror -ansi \
'$(SOURCE_DIR)/samples/cpp/fback.cpp' -o '$(PREFIX)/$(TARGET)/bin/test-opencv.exe' \
`'$(TARGET)-pkg-config' opencv --cflags --libs`
endef