<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/eed13afb303470755ed9fdc19f8d276f346609e1">https://github.com/macports/macports-ports/commit/eed13afb303470755ed9fdc19f8d276f346609e1</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit eed13afb303470755ed9fdc19f8d276f346609e1
</span>Author: Christopher Nielsen <mascguy@github.com>
AuthorDate: Wed Oct 27 11:16:27 2021 -0400

<span style='display:block; white-space:pre;color:#404040;'>    opencv3-devel: new port for testing
</span>---
 graphics/opencv3-devel/Portfile                    | 816 +++++++++++++++++++++
 .../patch-modules-highgui-src-window_cocoa.mm.diff |  12 +
 .../patch-modules_core_src_parallel.cpp.diff       |  13 +
 ...patch-modules_imgcodecs_src_grfmt_tiff.cpp.diff |  16 +
 .../files/patch-32bit_accelerate.diff              | 165 +++++
 .../files/patch-cmake_OpenCVFindOpenNI.cmake.diff  |  13 +
 .../opencv3-devel/files/patch-dylib_suffix.diff    |  11 +
 .../opencv3-devel/files/patch-find-openexr.diff    |  19 +
 .../opencv3-devel/files/patch-local_protobuf.diff  |  11 +
 graphics/opencv3-devel/files/patch-pchsupport.diff |  23 +
 10 files changed, 1099 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/opencv3-devel/Portfile b/graphics/opencv3-devel/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..1d0a38f2fb3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/opencv3-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,816 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem          1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           cmake 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           compiler_blacklist_versions 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           legacysupport 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#==============================================================================
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# IMPORTANT NOTE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Before updating to a new version from upstream, please test building with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# +contrib, in addition to the default. Reason being, the extra functionality
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# is used by many, including our own MacPorts members. Enough so that we may
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# want to enable +contrib by default at some point.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Also note that upstream has occassionally broken the Contrib build, so it's
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# not a given that it will compile successfully.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Net-Net: If upstream breaks Contrib for a certain release, please don't
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# update to it. And submit a ticket for the issue, if none exists.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Thanks!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#==============================================================================
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name                opencv3-devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+conflicts           opencv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set my_name         opencv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             3.4.16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories          graphics science
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms           darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             BSD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    {mascguy @mascguy}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         Open Source Computer Vision Library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    OpenCV (Open Source Computer Vision Library) is an \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    open source computer vision and machine learning \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    software library. OpenCV was built to provide a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    common infrastructure for computer vision \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    applications and to accelerate the use of machine \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    perception in the commercial products. Being a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    BSD-licensed product, OpenCV makes it easy for \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    businesses to utilize and modify the code.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            https://opencv.org
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites        https://github.com/opencv/opencv/archive/:opencv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distname            ${version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distfiles           ${distname}${extract.suffix}:opencv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+dist_subdir         ${my_name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# don't forget to also update the checksums under the contrib variant.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${distname}${extract.suffix} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  c8c3c68a05b01d58505ca84e328996bbe17706b2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  5e37b791b2fe42ed39b52d9955920b951ee42d5da95f79fbc9765a08ef733399 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    87694121
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platform macosx {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${os.major} <= 10} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Build requires at least 10.7.3 SDK, even when targeting 10.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set lion_sdkpath ${developer_dir}/SDKs/MacOSX10.7.sdk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[file exists $lion_sdkpath]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.sdkroot $lion_sdkpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            pre-fetch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                error "Building ${subport} @${version} on Mac OS X 10.6 requires the MacOSX10.7.sdk to be present in ${developer_dir}/SDKs/"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#------------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Subport name used for staging files, etc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# This is needed to support Python subports, whose names have no relation to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# the actual physical file layout.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# NOTE: Presently, 'parent_subport_name' matches 'name'. HOWEVER, this will
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#   change once the various OpenCV-related ports are merged.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#------------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set parent_subport_name \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${my_name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+worksrcdir          ${parent_subport_name}-${version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    2011
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.blacklist-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    cc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    *gcc* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    {clang < 800} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    {macports-clang-3.[0-9]} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    macports-clang-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:pkgconfig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:ffmpeg \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:zlib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:bzip2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:libpng \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    path:include/turbojpeg.h:libjpeg-turbo \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:openjpeg \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:tiff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:webp \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:ilmbase \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:openexr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# only search for openexr in ${prefix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append   patch-find-openexr.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# recognize dylib as a valid library suffix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append   patch-dylib_suffix.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# do not find protobuf3-cpp header files if installed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.cppflags-replace -I${prefix}/include -isystem${prefix}/include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append   patch-local_protobuf.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s|@PREFIX@|${prefix}|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${worksrcpath}/cmake/OpenCVFindOpenEXR.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# TODO: check and adapt those patches
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                    candidates/patch-modules_imgcodecs_src_grfmt_tiff.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                    candidates/patch-modules_core_src_parallel.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                    candidates/patch-modules-highgui-src-window_cocoa.mm.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# not currently used in the cmake build system:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                     -DWITH_GTK_2_X=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                     -DWITH_NVCUVID=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                     -DCMAKE_VERBOSE=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#------------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# CMake Variables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# When/if the CMake portgroup is extended to support more of these options,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# they can be replaced with those equivalents. For now, define them ahead of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# time, for later re-use.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#------------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Define all of our base paths up-front
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set opencv_install_prefix \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${prefix}/libexec/${parent_subport_name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set opencv_install_cmake \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${opencv_install_prefix}/cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set opencv_install_include \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${prefix}/include/${parent_subport_name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set opencv_install_lib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${prefix}/lib/${parent_subport_name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Populate the few CMake options currently available
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# TODO: Extend CMake portgroup to support more paths
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake.install_prefix \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${opencv_install_prefix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake_share_module_dir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${opencv_install_cmake}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake.install_rpath \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${opencv_install_lib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DENABLE_CONFIG_VERIFICATION=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_CONFIG_INSTALL_PATH=${opencv_install_cmake} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_BIN_INSTALL_PATH=${opencv_install_prefix}/bin \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_SETUPVARS_INSTALL_PATH=${opencv_install_prefix}/scripts \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_SBIN_INSTALL_PATH=${opencv_install_prefix}/sbin \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_JAR_INSTALL_PATH=${opencv_install_prefix}/java/jar \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_JNI_INSTALL_PATH=${opencv_install_prefix}/java/jni \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_JNI_BIN_INSTALL_PATH=${opencv_install_prefix}/java/jni \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_TEST_INSTALL_PATH=${opencv_install_prefix}/test/bin \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_TEST_DATA_PATH=${opencv_install_prefix}/test/data \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_SAMPLES_BIN_INSTALL_PATH=${opencv_install_prefix}/share/samples/bin \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_SAMPLES_SRC_INSTALL_PATH=${opencv_install_prefix}/share/samples/src \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_OTHER_INSTALL_PATH=${opencv_install_prefix}/share/data \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_DOC_INSTALL_PATH=${opencv_install_prefix}/share/doc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_LICENSES_INSTALL_PATH=${opencv_install_prefix}/share/license \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_INCLUDE_INSTALL_PATH=${opencv_install_include} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_LIB_INSTALL_PATH=${opencv_install_lib} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_3P_LIB_INSTALL_PATH=${opencv_install_lib}/3rdparty \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_LIB_ARCHIVE_INSTALL_PATH=${opencv_install_lib}/static \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DCMAKE_INSTALL_LIBEXECDIR=${opencv_install_prefix} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DCMAKE_INSTALL_BINDIR=${opencv_install_prefix}/bin \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DCMAKE_INSTALL_SBINDIR=${opencv_install_prefix}/sbin \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DCMAKE_INSTALL_SHAREDIR=${opencv_install_prefix}/share \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DCMAKE_INSTALL_INCLUDEDIR=${opencv_install_include} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DCMAKE_INSTALL_LIBDIR=${opencv_install_lib} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DCMAKE_INSTALL_NAME_DIR=${opencv_install_lib} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_1394=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_CARBON=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_VTK=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_CUDA=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_CUFFT=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_CUBLAS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_EIGEN=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_FFMPEG=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_GSTREAMER=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_GTK=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_IPP=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_JASPER=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_JPEG=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENJPEG=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_WEBP=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENEXR=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENGL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENNI=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENNI2=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_PNG=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_PVAPI=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_GIGEAPI=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_QT=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_QUICKTIME=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_TBB=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENMP=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_CSTRIPES=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_PTHREADS_PF=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_TIFF=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_UNICAP=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_V4L=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_LIBV4L=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_XIMEA=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_XINE=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_CLP=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENCL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENCL_SVM=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENCLAMDFFT=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENCLAMDBLAS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_INTELPERC=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_MATLAB=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_IPP_A=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_VA=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_VA_INTEL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_GDAL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_GPHOTO2=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_WITH_DEBUG_INFO=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_SHARED_LIBS=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_opencv_apps=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_DOCS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_EXAMPLES=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_PACKAGE=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_PERF_TESTS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_TESTS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_WITH_DYNAMIC_IPP=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_ZLIB=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_TIFF=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_JASPER=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_JPEG=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_OPENJPEG=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_WEBP=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_PNG=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_OPENEXR=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_TBB=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_FFMPEG=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_opencv_java=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DINSTALL_C_EXAMPLES=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DINSTALL_PYTHON_EXAMPLES=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DENABLE_PRECOMPILED_HEADERS=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_ENABLE_NONFREE=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DENABLE_CXX11=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_opencv_python2=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_opencv_python3=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_PYTHON_SKIP_DETECTION=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DPYTHON_EXECUTABLE=/usr/bin/python \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DPYTHON_DEFAULT_EXECUTABLE=/usr/bin/python
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {![info exists universal_possible]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set universal_possible [expr {${os.universal_supported} && [llength ${configure.universal_archs}] >= 2}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platform darwin {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DZLIB_LIBRARY=${prefix}/lib/libz.dylib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBZIP2_LIBRARIES=${prefix}/lib/libbz2.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # do not opportunistically find other LAPACK implementations
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # see cmake/OpenCVFindLAPACK.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DLAPACK_IMPL=Apple \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DLAPACK_LIBRARIES="-framework Accelerate" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DLAPACK_CBLAS_H=Accelerate/Accelerate.h \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DLAPACK_LAPACKE_H=Accelerate/Accelerate.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # the AVFoundation backend is failing to build up to 10.8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # it might be possible to work around or repair this on 10.7 and 10.8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # there is also a qtkit video implementation prior to the AVFoundation version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # that is about 2016 vintage. This could possibly be resuscitated if there
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # is motivation or interest in so doing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${os.major} < 13} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_AVFOUNDATION=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if { ${configure.build_arch} in [list i386 ppc] || (${universal_possible} && [variant_isset universal] &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ("i386" in ${configure.universal_archs} || "ppc" in ${configure.universal_archs}))} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        #The Accelerate ABI requires 32-bit signed integers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        #In clapack.h, __CLPK_integer is a typedef for either
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        #   int (64-bit) or long int (32-bit).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        #opencv only uses ints.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        #Casting between pointers is never recommended, but
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        #   int and long int should have the same representations
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        #   on 32-bit systems.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append patch-32bit_accelerate.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # no thread-local storage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # see https://trac.macports.org/ticket/53543
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${os.major} < 11} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.cppflags-append -DGOOGLE_PROTOBUF_NO_THREADLOCAL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { !${configure.ccache} } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        -DENABLE_CCACHE=NO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set opencv_linker_libs ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# TODO: Actually fix this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match "*clang*" ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace "/-Werror=sequence-point/d" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${worksrcpath}/cmake/OpenCVCompilerOptions.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# PCH broken when universal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${universal_possible} && [variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace  -DENABLE_PRECOMPILED_HEADERS=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DENABLE_PRECOMPILED_HEADERS=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Python Bindings
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Name consistency with ${python.branch} and ${python.version} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# ${prefix}/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/_resources/port1.0/group/python-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach python_branch {2.7} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set python_version [join [lrange [split ${python_branch} .] 0 1] ""]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    subport py${python_version}-${name} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            port:${name} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            port:python${python_version} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            port:py${python_version}-numpy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DBUILD_opencv_python2=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DBUILD_opencv_python2=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DBUILD_opencv_apps=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DBUILD_opencv_apps=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DPYTHON_EXECUTABLE=/usr/bin/python \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DPYTHON_EXECUTABLE=${prefix}/bin/python${python_branch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DPYTHON2_EXECUTABLE=${prefix}/bin/python${python_branch} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DPYTHON_LIBRARIES=${prefix}/lib/libpython${python_branch}.dylib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DPYTHON2_LIBRARIES=${prefix}/lib/libpython${python_branch}.dylib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DPYTHON2_INCLUDE_DIR=${frameworks_dir}/Python.framework/Versions/${python_branch}/Headers \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DPYTHON2_PACKAGES_PATH=${frameworks_dir}/Python.framework/Versions/${python_branch}/lib/python${python_branch}/site-packages
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Deconflict with parent port contents
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_debug "${subport}: python subport: removing files unrelated to Python bindings"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            foreach f [exec port contents ${name}] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                delete ${destroot}${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set python_branches {3.5 3.6 3.7 3.8 3.9}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach python_branch ${python_branches} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set python_version [join [lrange [split ${python_branch} .] 0 1] ""]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    subport py${python_version}-${name} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            port:${name} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            port:python${python_version} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            port:py${python_version}-numpy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DBUILD_opencv_python3=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DBUILD_opencv_python3=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DBUILD_opencv_apps=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DBUILD_opencv_apps=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DPYTHON3_EXECUTABLE=${prefix}/bin/python${python_branch} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DPYTHON3_LIBRARY=${frameworks_dir}/Python.framework/Versions/${python_branch}/lib/libpython${python_branch}.dylib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DPYTHON3_INCLUDE_DIR=${frameworks_dir}/Python.framework/Versions/${python_branch}/Headers \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DPYTHON3_PACKAGES_PATH=${frameworks_dir}/Python.framework/Versions/${python_branch}/lib/python${python_branch}/site-packages
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Deconflict with parent port contents
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_debug "${subport}: python subport: removing files unrelated to Python bindings"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            foreach f [exec port contents ${name}] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                delete ${destroot}${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${name} eq ${subport}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    notes \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "* ${subport} binaries are now prefixed with '${my_name}_', to prevent conflicts\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        with other OpenCV-related ports." \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "* Python bindings are now implemented via subports 'pyXX-${subport}',\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        to support multiple Python versions side-by-side."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant avx conflicts avx2 description {Enable AVX (and SSE4*) support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DENABLE_AVX=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DENABLE_SSE41=ON -DENABLE_SSE42=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant avx2 conflicts avx description {Enable AVX, AVX2 (and SSE4*) support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DENABLE_AVX=ON -DENABLE_AVX2=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DENABLE_SSE41=ON -DENABLE_SSE42=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant eigen description {Enable eigen support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append  port:eigen3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DWITH_EIGEN=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DWITH_EIGEN=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DEIGEN_INCLUDE_PATH=${prefix}/include/eigen3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant opencl description {Enable OpenCL support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        pre-configure {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {${os.platform} eq "darwin" && ${os.major} < 11} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ui_error "The OpenCL variant only works with OS X 10.7 Lion or later."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                return -code error "incompatible OS X version"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DWITH_OPENCL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DWITH_OPENCL=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant openmp description {Include OpenMP support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        compiler.openmp_version 4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DWITH_OPENMP=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DWITH_OPENMP=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant openni description {Enable OpenNI support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append  port:openni
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append   patch-cmake_OpenCVFindOpenNI.cmake.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DWITH_OPENNI=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DWITH_OPENNI=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             reinplace "s,@@PREFIX@@,${prefix},g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 ${worksrcpath}/cmake/OpenCVFindOpenNI.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant dc1394 description {Use libdc1394 for FireWire camera; breaks compatibility with Apple iSight FireWire camera} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append  port:libdc1394
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DWITH_1394=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DWITH_1394=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DHAVE_DC1394_2=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant qt4 conflicts qt5 description {Build with Qt4 Backend support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        PortGroup           qt4 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DWITH_QT=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DWITH_QT=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant qt5 conflicts qt4 description {Build with Qt5 Backend support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        PortGroup           qt5 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DWITH_QT=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DWITH_QT=5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant java description {Add Java bindings} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        PortGroup           java 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # OpenCV appears to support older Java versions,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # and MacPorts users have requested Java 8 support:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # see https://trac.macports.org/ticket/60193
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        java.version        1.6+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Use latest LTS Java version as fallback
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        java.fallback       openjdk11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            port:apache-ant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DBUILD_opencv_java=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DBUILD_opencv_java=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[variant_isset java] && ![variant_isset python27]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DPYTHON_EXECUTABLE=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DPYTHON_EXECUTABLE=/usr/bin/python
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-delete \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DBUILD_opencv_python2=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant tbb description {Use Intel TBB} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            port:tbb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DWITH_TBB=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DWITH_TBB=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DHAVE_TBB=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DTBB_INCLUDE_DIRS=${prefix}/include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant vtk description {Include VTK support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            port:vtk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DWITH_VTK=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DWITH_VTK=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant gdal description {Include GDAL support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            port:gdal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DWITH_GDAL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DWITH_GDAL=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant contrib description {Build OpenCV with extra modules} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        master_sites-append     https://github.com/opencv/opencv_contrib/archive:opencv_contrib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        distfiles-append        ${version}.zip:opencv_contrib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        checksums-append        ${version}.zip \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                rmd160  1f4a256abf81291ba41e941b8519c160c4798963 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                sha256  46306034f3ebe3d245724f633df1b5ddde755266c95b2aaec76092f848fec7fb \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                size    56441730
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DOPENCV_EXTRA_MODULES_PATH=${workpath}/opencv_contrib-${version}/modules \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DBUILD_PROTOBUF=YES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append      \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            port:gflags \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            port:google-glog \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            port:ceres-solver
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # gunzip cannot handle multi-member .zip archives
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            exec unzip -oq ${distpath}/${version}.zip -d ${extract.dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # less than ideal way for patchfiles to be applied to contrib directory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ln -s ${workpath}/opencv_contrib-${version} ${worksrcpath}/opencv_contrib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        extract.only        ${distname}${extract.suffix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#                            ${version}.zip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # dnn_modern:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        master_sites-append     https://github.com/tiny-dnn/tiny-dnn/archive/:tiny-dnn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        distfiles-append        v1.0.0a3.tar.gz:tiny-dnn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        checksums-append        v1.0.0a3.tar.gz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                rmd160  1d44a0f0c3b0a6f31a333afdfb246526c42336ad \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                sha256  e2c61ce8c5debaa644121179e9dbdcf83f497f39de853f8dd5175846505aa18b \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                size    12885646
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append  -DOPENCV_TINY_DNN_URL=file://${distpath}/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # xfeatures2d/boostdesc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        master_sites-append    https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26:boostdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        distfiles-append   boostdesc_bgm.i:boostdesc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           boostdesc_bgm_bi.i:boostdesc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           boostdesc_bgm_hd.i:boostdesc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           boostdesc_binboost_064.i:boostdesc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           boostdesc_binboost_128.i:boostdesc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           boostdesc_binboost_256.i:boostdesc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           boostdesc_lbgm.i:boostdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        checksums-append   boostdesc_bgm.i \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               rmd160 a090147b1ff8cdb23cbb3898cb5cd9cdb181f000 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               sha256 c441a027f15b9b8ff6c006b0775cd86781169ebd5b6257a94bdce668010d5df5 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               size 14852 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           boostdesc_bgm_bi.i \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               rmd160 a4f858f29a638286065aba9a7cbddf25323b35b2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               sha256 3d54b2934f0de963abbce985da303254ee78eebd05eb2af517105f9b0e670566 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               size 14864 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           boostdesc_bgm_hd.i \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               rmd160 92cadac9bd2c73ffa014fb552480ee33bf252568 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               sha256 4b068631287f9914c3aa5bbdab76368b01493cea494ab47f7a70d2fa4f1c3e1b \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               size 7832 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           boostdesc_binboost_064.i \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               rmd160 6567930c5f8839bb8c877201ffed07b91edbdec3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               sha256 090c9cc50663df3a91f2d7c704fa664493c96c39749b4cee9ebc29a20eb680d2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               size 138093 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           boostdesc_binboost_128.i \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               rmd160 5c9f9171ecb5100ab7390119a02d7dd072dd35de \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               sha256 8f3622c1f3c0a14b1f1b7b955c518e97f7ccd0e9796e1dd9e7a975aad9bb2a22 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               size 275322 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           boostdesc_binboost_256.i \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               rmd160 27a39257b04cad5143f369fccbea5dd495c219c0 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               sha256 a1c778059332b4904c9ce30ed888e9dd2e44621579362e6deb20ef4f4b0cf819 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               size 549754 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           boostdesc_lbgm.i \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               rmd160 35efe18cb9449a41af2166255a23e29822aae4e9 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               sha256 42f6091199242fb6d96aec2f25644cd6f5e5f2fdddd1720f3422282e88cf3cd8 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               size 426280
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append  -DOPENCV_BOOSTDESC_URL=file://${distpath}/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        #xfeatures2d/vggdesc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        master_sites-append    https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d:vggdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        distfiles-append   vgg_generated_48.i:vggdesc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vgg_generated_64.i:vggdesc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vgg_generated_80.i:vggdesc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vgg_generated_120.i:vggdesc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        checksums-append   vgg_generated_48.i \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               rmd160 fdb2d976ec287c4989e9d3b6f95104a0bef9c9a4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               sha256 71274a67ab0896865e27de830eda0065e387d75fe071dab4a887e2430ccb8a35 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               size 773330 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vgg_generated_64.i \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               rmd160 1e4cbba9038c165d53d5e9c9bdd299cde54dbd3a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               sha256 2746c272af82b9a839a69de151c262be55d9ef8464b268001c33f99f9f5cebbe \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               size 915012 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vgg_generated_80.i \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               rmd160 d950552c95026ae80c6fe5b9e30037104081cca2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               sha256 08fbc8cb1686b6c45032a08c98f3857ead4755116410e16c68713f4dea4cbf5c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               size 1012932 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vgg_generated_120.i \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               rmd160 a8e2a8e88102871c4e7d75c1f8a474a006e90aaa \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               sha256 f05e7eb7183ecbc788bfc26cea9db7dad8585178175411b93e444acdc8fb2048 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               size 1257733
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append  -DOPENCV_VGGDESC_URL=file://${distpath}/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        #face:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        master_sites-append    https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12:face
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        distfiles-append   face_landmark_model.dat:face
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        checksums-append   face_landmark_model.dat \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           rmd160 3a4e4a80f2c74a6af2b36b4d74e3c6d59c347ce0 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           sha256 eeab592db2861a6c94d592a48456cf59945d31483ce94a6bc4d3a4e318049ba3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           size 72368157
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append  -DOPENCV_FACE_ALIGNMENT_URL=file://${distpath}/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant nonfree description {Include nonfree algorithms} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DOPENCV_ENABLE_NONFREE=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DOPENCV_ENABLE_NONFREE=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant tests description {Enable tests} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DBUILD_TESTS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DBUILD_TESTS=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DBUILD_PERF_TESTS=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DBUILD_PERF_TESTS=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        test.run            yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        test.target         test
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# NOTE: Variant 'debug' is the only one that should be shared with Python subports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant debug description {Build with debugging info} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DBUILD_WITH_DEBUG_INFO=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DBUILD_WITH_DEBUG_INFO=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platform darwin {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${os.major} < 10} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            reinplace "s:HAVE_GCD 1:HAVE_GCD 0:" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ${worksrcpath}/cmake/OpenCVFindLibsPerf.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+pre-configure {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DOPENCV_LINKER_LIBS=\"[join ${opencv_linker_libs} " "]\"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc opencv_move_binaries {p_bin_main_dir p_bin_port_dir} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set bin_main_files \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        [glob -nocomplain -type f \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -directory ${p_bin_main_dir} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            *]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ui_debug "opencv_move_binaries: bin_main_files: ${bin_main_files}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach f ${bin_main_files} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set fn [file tail ${f}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set f_dest "${p_bin_port_dir}/${fn}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "opencv_move_binaries: moving file: ${f} -> ${f_dest}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        move ${f} ${f_dest}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc opencv_soft_link_binaries {p_bin_main_dir p_bin_port_dir p_destroot p_prefix p_subport} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set bin_prefix_old "opencv_"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set bin_prefix_new "${p_subport}_"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set bin_port_files \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        [glob -nocomplain -type f \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -directory ${p_bin_port_dir} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            *]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ui_debug "opencv_soft_link_binaries: bin_port_files: ${bin_port_files}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Links: Remove prefix 'opencv_', if any; add prefix '<subport>_'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach f ${bin_port_files} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set fn [file tail ${f}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set fn_new \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            [regsub ***=${bin_prefix_old} ${fn} ""]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set f_dest \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            [regsub ***=${p_destroot} ${f} ""]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set f_link \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            "${p_bin_main_dir}/${bin_prefix_new}${fn_new}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "opencv_soft_link_binaries: soft-linking file: ${f_link} -> ${f_dest}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ln -s ${f_dest} ${f_link}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc opencv_fix_pkgconfig {p_destroot p_prefix p_subport p_parent_subport_name} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${p_subport} eq ${p_parent_subport_name}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set pkgconfig_file \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            "${p_destroot}${p_prefix}/lib/${p_parent_subport_name}/pkgconfig/opencv.pc"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "opencv_fix_pkgconfig: fixing pkgconfig file ${pkgconfig_file}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Fix paths
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace "s|\$\{exec_prefix\}\/||g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${pkgconfig_file}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace "s|\$\{prefix\}\/||g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${pkgconfig_file}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # http://trac.macports.org/ticket/42702
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[variant_isset qt4] || [variant_isset qt5]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            reinplace "s|-L//System/Library/Frameworks ||g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ${pkgconfig_file}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            reinplace "s|-lOpenGL.framework|-framework OpenGL|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ${pkgconfig_file}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc opencv_post_destroot {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global destroot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global prefix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global subport
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global parent_subport_name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    opencv_fix_pkgconfig \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${destroot} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${prefix} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${subport} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${parent_subport_name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set bin_main_dir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "${destroot}${prefix}/bin"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set bin_port_dir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "${destroot}${prefix}/libexec/${parent_subport_name}/bin"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # While the various configure-related options should catch everything, one or more
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # files may be missed. If so, ensure they're moved to the subport's bin area.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    opencv_move_binaries \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${bin_main_dir} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${bin_port_dir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Create soft links for binaries, each prefixed with '<parent_subport_name>_'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    opencv_soft_link_binaries \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${bin_main_dir} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${bin_port_dir} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${destroot} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${prefix} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${parent_subport_name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ui_debug "${subport}: phase post-destroot running"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    opencv_post_destroot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.type      regex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.url       https://opencv.org/releases/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.regex     {archive/(3\.[0-9.]+)?\.[tz]}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/opencv3-devel/files/candidates/patch-modules-highgui-src-window_cocoa.mm.diff b/graphics/opencv3-devel/files/candidates/patch-modules-highgui-src-window_cocoa.mm.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..a721ca15a80
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/opencv3-devel/files/candidates/patch-modules-highgui-src-window_cocoa.mm.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Build fix for Leopard and older
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- modules/highgui/src/window_cocoa.mm.orig       2014-10-01 02:33:36.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ modules/highgui/src/window_cocoa.mm    2014-11-13 23:27:53.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -145,7 +145,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     application = [NSApplication sharedApplication];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     windows = [[NSMutableDictionary alloc] init];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef NSAppKitVersionNumber10_5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define NSAppKitVersionNumber10_5 949
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/opencv3-devel/files/candidates/patch-modules_core_src_parallel.cpp.diff b/graphics/opencv3-devel/files/candidates/patch-modules_core_src_parallel.cpp.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3c0135604d5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/opencv3-devel/files/candidates/patch-modules_core_src_parallel.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- modules/core/src/parallel.cpp.orig     2013-03-20 13:41:07.000000000 +0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ modules/core/src/parallel.cpp  2013-03-20 13:41:21.000000000 +0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -65,10 +65,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #define HAVE_OPENMP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    #define HAVE_GCD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined _MSC_VER && _MSC_VER >= 1600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #define HAVE_CONCURRENCY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/opencv3-devel/files/candidates/patch-modules_imgcodecs_src_grfmt_tiff.cpp.diff b/graphics/opencv3-devel/files/candidates/patch-modules_imgcodecs_src_grfmt_tiff.cpp.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..7ba59f2ea0c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/opencv3-devel/files/candidates/patch-modules_imgcodecs_src_grfmt_tiff.cpp.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- modules/imgcodecs/src/grfmt_tiff.cpp.orig      2015-09-17 11:15:11.000000000 +0300
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ modules/imgcodecs/src/grfmt_tiff.cpp   2015-09-17 11:16:06.000000000 +0300
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -247,7 +247,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                (!is_tiled && tile_height0 == std::numeric_limits<uint32>::max()) )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 tile_height0 = m_height;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            const size_t buffer_size = bpp * ncn * tile_height0 * tile_width0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            if(dst_bpp == 8) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                // we will use TIFFReadRGBA* functions, so allocate temporary buffer for 32bit RGBA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                bpp = 8;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                ncn = 4;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            const size_t buffer_size = (bpp/bitsPerByte) * ncn * tile_height0 * tile_width0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             AutoBuffer<uchar> _buffer( buffer_size );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             uchar* buffer = _buffer;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             ushort* buffer16 = (ushort*)buffer;
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/opencv3-devel/files/patch-32bit_accelerate.diff b/graphics/opencv3-devel/files/patch-32bit_accelerate.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..dd58c47d407
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/opencv3-devel/files/patch-32bit_accelerate.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,165 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- modules/core/src/hal_internal.cpp.orig 2017-10-23 08:41:12.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ modules/core/src/hal_internal.cpp      2017-12-16 09:06:29.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -109,9 +109,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if(n == 1 && b_step == sizeof(fptype))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if(typeid(fptype) == typeid(float))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                sgesv_(&m, &n, (float*)a, &lda, piv, (float*)b, &m, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                sgesv_((__CLPK_integer*)&m, (__CLPK_integer*)&n, (float*)a, (__CLPK_integer*)&lda, (__CLPK_integer*)piv, (float*)b, (__CLPK_integer*)&m, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             else if(typeid(fptype) == typeid(double))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                dgesv_(&m, &n, (double*)a, &lda, piv, (double*)b, &m, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                dgesv_((__CLPK_integer*)&m, (__CLPK_integer*)&n, (double*)a, (__CLPK_integer*)&lda, (__CLPK_integer*)piv, (double*)b, (__CLPK_integer*)&m, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -121,9 +121,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             transpose(b, ldb, tmpB, m, m, n);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if(typeid(fptype) == typeid(float))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                sgesv_(&m, &n, (float*)a, &lda, piv, (float*)tmpB, &m, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                sgesv_((__CLPK_integer*)&m, (__CLPK_integer*)&n, (float*)a, (__CLPK_integer*)&lda, (__CLPK_integer*)piv, (float*)tmpB, (__CLPK_integer*)&m, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             else if(typeid(fptype) == typeid(double))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                dgesv_(&m, &n, (double*)a, &lda, piv, (double*)tmpB, &m, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                dgesv_((__CLPK_integer*)&m, (__CLPK_integer*)&n, (double*)a, (__CLPK_integer*)&lda, (__CLPK_integer*)piv, (double*)tmpB, (__CLPK_integer*)&m, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             transpose(tmpB, m, b, ldb, n, m);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             delete[] tmpB;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -132,9 +132,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if(typeid(fptype) == typeid(float))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            sgetrf_(&m, &m, (float*)a, &lda, piv, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            sgetrf_((__CLPK_integer*)&m, (__CLPK_integer*)&m, (float*)a, (__CLPK_integer*)&lda, (__CLPK_integer*)piv, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         else if(typeid(fptype) == typeid(double))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            dgetrf_(&m, &m, (double*)a, &lda, piv, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            dgetrf_((__CLPK_integer*)&m, (__CLPK_integer*)&m, (double*)a, (__CLPK_integer*)&lda, (__CLPK_integer*)piv, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if(*info == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -162,9 +162,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if(n == 1 && b_step == sizeof(fptype))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if(typeid(fptype) == typeid(float))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                sposv_(L, &m, &n, (float*)a, &lda, (float*)b, &m, &lapackStatus);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                sposv_(L, (__CLPK_integer*)&m, (__CLPK_integer*)&n, (float*)a, (__CLPK_integer*)&lda, (float*)b, (__CLPK_integer*)&m, (__CLPK_integer*)&lapackStatus);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             else if(typeid(fptype) == typeid(double))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                dposv_(L, &m, &n, (double*)a, &lda, (double*)b, &m, &lapackStatus);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                dposv_(L, (__CLPK_integer*)&m, (__CLPK_integer*)&n, (double*)a, (__CLPK_integer*)&lda, (double*)b, (__CLPK_integer*)&m, (__CLPK_integer*)&lapackStatus);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -173,9 +173,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             transpose(b, ldb, tmpB, m, m, n);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if(typeid(fptype) == typeid(float))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                sposv_(L, &m, &n, (float*)a, &lda, (float*)tmpB, &m, &lapackStatus);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                sposv_(L, (__CLPK_integer*)&m, (__CLPK_integer*)&n, (float*)a, (__CLPK_integer*)&lda, (float*)tmpB, (__CLPK_integer*)&m, (__CLPK_integer*)&lapackStatus);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             else if(typeid(fptype) == typeid(double))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                dposv_(L, &m, &n, (double*)a, &lda, (double*)tmpB, &m, &lapackStatus);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                dposv_(L, (__CLPK_integer*)&m, (__CLPK_integer*)&n, (double*)a, (__CLPK_integer*)&lda, (double*)tmpB, (__CLPK_integer*)&m, (__CLPK_integer*)&lapackStatus);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             transpose(tmpB, m, b, ldb, n, m);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             delete[] tmpB;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -184,9 +184,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if(typeid(fptype) == typeid(float))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            spotrf_(L, &m, (float*)a, &lda, &lapackStatus);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            spotrf_(L, (__CLPK_integer*)&m, (float*)a, (__CLPK_integer*)&lda, (__CLPK_integer*)&lapackStatus);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         else if(typeid(fptype) == typeid(double))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            dpotrf_(L, &m, (double*)a, &lda, &lapackStatus);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            dpotrf_(L, (__CLPK_integer*)&m, (double*)a, (__CLPK_integer*)&lda, (__CLPK_integer*)&lapackStatus);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if(lapackStatus == 0) *info = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -226,17 +226,17 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if(typeid(fptype) == typeid(float))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        sgesdd_(mode, &m, &n, (float*)a, &lda, (float*)w, (float*)u, &ldu, (float*)vt, &ldv, (float*)&work1, &lwork, iworkBuf, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        sgesdd_(mode, (__CLPK_integer*)&m, (__CLPK_integer*)&n, (float*)a, (__CLPK_integer*)&lda, (float*)w, (float*)u, (__CLPK_integer*)&ldu, (float*)vt, (__CLPK_integer*)&ldv, (float*)&work1, (__CLPK_integer*)&lwork, (__CLPK_integer*)iworkBuf, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else if(typeid(fptype) == typeid(double))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        dgesdd_(mode, &m, &n, (double*)a, &lda, (double*)w, (double*)u, &ldu, (double*)vt, &ldv, (double*)&work1, &lwork, iworkBuf, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        dgesdd_(mode, (__CLPK_integer*)&m, (__CLPK_integer*)&n, (double*)a, (__CLPK_integer*)&lda, (double*)w, (double*)u, (__CLPK_integer*)&ldu, (double*)vt, (__CLPK_integer*)&ldv, (double*)&work1, (__CLPK_integer*)&lwork, (__CLPK_integer*)iworkBuf, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     lwork = (int)round(work1); //optimal buffer size
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     fptype* buffer = new fptype[lwork + 1];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if(typeid(fptype) == typeid(float))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        sgesdd_(mode, &m, &n, (float*)a, &lda, (float*)w, (float*)u, &ldu, (float*)vt, &ldv, (float*)buffer, &lwork, iworkBuf, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        sgesdd_(mode, (__CLPK_integer*)&m, (__CLPK_integer*)&n, (float*)a, (__CLPK_integer*)&lda, (float*)w, (float*)u, (__CLPK_integer*)&ldu, (float*)vt, (__CLPK_integer*)&ldv, (float*)buffer, (__CLPK_integer*)&lwork, (__CLPK_integer*)iworkBuf, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else if(typeid(fptype) == typeid(double))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        dgesdd_(mode, &m, &n, (double*)a, &lda, (double*)w, (double*)u, &ldu, (double*)vt, &ldv, (double*)buffer, &lwork, iworkBuf, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        dgesdd_(mode, (__CLPK_integer*)&m, (__CLPK_integer*)&n, (double*)a, (__CLPK_integer*)&lda, (double*)w, (double*)u, (__CLPK_integer*)&ldu, (double*)vt, (__CLPK_integer*)&ldv, (double*)buffer, (__CLPK_integer*)&lwork, (__CLPK_integer*)iworkBuf, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if(!(flags & CV_HAL_SVD_NO_UV))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         transpose_square_inplace(vt, ldv, n);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -287,18 +287,18 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (k == 1 && b_step == sizeof(fptype))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if (typeid(fptype) == typeid(float))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                sgels_(mode, &m, &n, &k, (float*)tmpA, &ldtmpA, (float*)b, &m, (float*)&work1, &lwork, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                sgels_(mode, (__CLPK_integer*)&m, (__CLPK_integer*)&n, (__CLPK_integer*)&k, (float*)tmpA, (__CLPK_integer*)&ldtmpA, (float*)b, (__CLPK_integer*)&m, (float*)&work1, (__CLPK_integer*)&lwork, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             else if (typeid(fptype) == typeid(double))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                dgels_(mode, &m, &n, &k, (double*)tmpA, &ldtmpA, (double*)b, &m, (double*)&work1, &lwork, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                dgels_(mode, (__CLPK_integer*)&m, (__CLPK_integer*)&n, (__CLPK_integer*)&k, (double*)tmpA, (__CLPK_integer*)&ldtmpA, (double*)b, (__CLPK_integer*)&m, (double*)&work1, (__CLPK_integer*)&lwork, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             lwork = cvRound(work1); //optimal buffer size
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             std::vector<fptype> workBufMemHolder(lwork + 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             fptype* buffer = &workBufMemHolder.front();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if (typeid(fptype) == typeid(float))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                sgels_(mode, &m, &n, &k, (float*)tmpA, &ldtmpA, (float*)b, &m, (float*)buffer, &lwork, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                sgels_(mode, (__CLPK_integer*)&m, (__CLPK_integer*)&n, (__CLPK_integer*)&k, (float*)tmpA, (__CLPK_integer*)&ldtmpA, (float*)b, (__CLPK_integer*)&m, (float*)buffer, (__CLPK_integer*)&lwork, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             else if (typeid(fptype) == typeid(double))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                dgels_(mode, &m, &n, &k, (double*)tmpA, &ldtmpA, (double*)b, &m, (double*)buffer, &lwork, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                dgels_(mode, (__CLPK_integer*)&m, (__CLPK_integer*)&n, (__CLPK_integer*)&k, (double*)tmpA, (__CLPK_integer*)&ldtmpA, (double*)b, (__CLPK_integer*)&m, (double*)buffer, (__CLPK_integer*)&lwork, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -308,18 +308,18 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             transpose(b, ldb, tmpB, m, m, k);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if (typeid(fptype) == typeid(float))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                sgels_(mode, &m, &n, &k, (float*)tmpA, &ldtmpA, (float*)tmpB, &m, (float*)&work1, &lwork, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                sgels_(mode, (__CLPK_integer*)&m, (__CLPK_integer*)&n, (__CLPK_integer*)&k, (float*)tmpA, (__CLPK_integer*)&ldtmpA, (float*)tmpB, (__CLPK_integer*)&m, (float*)&work1, (__CLPK_integer*)&lwork, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             else if (typeid(fptype) == typeid(double))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                dgels_(mode, &m, &n, &k, (double*)tmpA, &ldtmpA, (double*)tmpB, &m, (double*)&work1, &lwork, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                dgels_(mode, (__CLPK_integer*)&m, (__CLPK_integer*)&n, (__CLPK_integer*)&k, (double*)tmpA, (__CLPK_integer*)&ldtmpA, (double*)tmpB, (__CLPK_integer*)&m, (double*)&work1, (__CLPK_integer*)&lwork, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             lwork = cvRound(work1); //optimal buffer size
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             std::vector<fptype> workBufMemHolder(lwork + 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             fptype* buffer = &workBufMemHolder.front();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if (typeid(fptype) == typeid(float))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                sgels_(mode, &m, &n, &k, (float*)tmpA, &ldtmpA, (float*)tmpB, &m, (float*)buffer, &lwork, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                sgels_(mode, (__CLPK_integer*)&m, (__CLPK_integer*)&n, (__CLPK_integer*)&k, (float*)tmpA, (__CLPK_integer*)&ldtmpA, (float*)tmpB, (__CLPK_integer*)&m, (float*)buffer, (__CLPK_integer*)&lwork, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             else if (typeid(fptype) == typeid(double))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                dgels_(mode, &m, &n, &k, (double*)tmpA, &ldtmpA, (double*)tmpB, &m, (double*)buffer, &lwork, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                dgels_(mode, (__CLPK_integer*)&m, (__CLPK_integer*)&n, (__CLPK_integer*)&k, (double*)tmpA, (__CLPK_integer*)&ldtmpA, (double*)tmpB, (__CLPK_integer*)&m, (double*)buffer, (__CLPK_integer*)&lwork, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             transpose(tmpB, m, b, ldb, k, m);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -327,18 +327,18 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (typeid(fptype) == typeid(float))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            sgeqrf_(&m, &n, (float*)tmpA, &ldtmpA, (float*)dst, (float*)&work1, &lwork, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            sgeqrf_((__CLPK_integer*)&m, (__CLPK_integer*)&n, (float*)tmpA, (__CLPK_integer*)&ldtmpA, (float*)dst, (float*)&work1, (__CLPK_integer*)&lwork, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         else if (typeid(fptype) == typeid(double))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            dgeqrf_(&m, &n, (double*)tmpA, &ldtmpA, (double*)dst, (double*)&work1, &lwork, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            dgeqrf_((__CLPK_integer*)&m, (__CLPK_integer*)&n, (double*)tmpA, (__CLPK_integer*)&ldtmpA, (double*)dst, (double*)&work1, (__CLPK_integer*)&lwork, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         lwork = cvRound(work1); //optimal buffer size
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         std::vector<fptype> workBufMemHolder(lwork + 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         fptype* buffer = &workBufMemHolder.front();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (typeid(fptype) == typeid(float))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            sgeqrf_(&m, &n, (float*)tmpA, &ldtmpA, (float*)dst, (float*)buffer, &lwork, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            sgeqrf_((__CLPK_integer*)&m, (__CLPK_integer*)&n, (float*)tmpA, (__CLPK_integer*)&ldtmpA, (float*)dst, (float*)buffer, (__CLPK_integer*)&lwork, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         else if (typeid(fptype) == typeid(double))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            dgeqrf_(&m, &n, (double*)tmpA, &ldtmpA, (double*)dst, (double*)buffer, &lwork, info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            dgeqrf_((__CLPK_integer*)&m, (__CLPK_integer*)&n, (double*)tmpA, (__CLPK_integer*)&ldtmpA, (double*)dst, (double*)buffer, (__CLPK_integer*)&lwork, (__CLPK_integer*)info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (m == n)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/opencv3-devel/files/patch-cmake_OpenCVFindOpenNI.cmake.diff b/graphics/opencv3-devel/files/patch-cmake_OpenCVFindOpenNI.cmake.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..a4ac2f64ce9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/opencv3-devel/files/patch-cmake_OpenCVFindOpenNI.cmake.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- cmake/OpenCVFindOpenNI.cmake.orig      2012-11-14 03:26:38.000000000 +0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ cmake/OpenCVFindOpenNI.cmake   2012-11-14 11:19:10.000000000 +0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -26,8 +26,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         find_library(OPENNI_LIBRARY "OpenNI64" PATHS $ENV{OPEN_NI_LIB64} DOC "OpenNI library")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elseif(UNIX OR APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    find_file(OPENNI_INCLUDES "XnCppWrapper.h" PATHS "/usr/include/ni" "/usr/include/openni" DOC "OpenNI c++ interface header")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    find_library(OPENNI_LIBRARY "OpenNI" PATHS "/usr/lib" DOC "OpenNI library")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    find_file(OPENNI_INCLUDES "XnCppWrapper.h" PATHS "@@PREFIX@@/include/ni" "@@PREFIX@@/include/openni" DOC "OpenNI c++ interface header")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    find_library(OPENNI_LIBRARY "OpenNI" PATHS "@@PREFIX@@/lib" DOC "OpenNI library")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(OPENNI_LIBRARY AND OPENNI_INCLUDES)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/opencv3-devel/files/patch-dylib_suffix.diff b/graphics/opencv3-devel/files/patch-dylib_suffix.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..a6ff1a4629d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/opencv3-devel/files/patch-dylib_suffix.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- cmake/OpenCVUtils.cmake.orig   2018-02-23 01:38:33.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ cmake/OpenCVUtils.cmake        2018-04-20 06:20:44.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1335,7 +1335,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ macro(ocv_get_libname var_name)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   get_filename_component(__libname "${ARGN}" NAME)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # libopencv_core.so.3.3 -> opencv_core
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  string(REGEX REPLACE "^lib(.+)\\.(a|so|dll)(\\.[.0-9]+)?$" "\\1" __libname "${__libname}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  string(REGEX REPLACE "^lib(.+)\\.(a|so|dll|dylib)(\\.[.0-9]+)?$" "\\1" __libname "${__libname}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # MacOSX: libopencv_core.3.3.1.dylib -> opencv_core
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   string(REGEX REPLACE "^lib(.+[^.0-9])\\.([.0-9]+\\.)?dylib$" "\\1" __libname "${__libname}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set(${var_name} "${__libname}")
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/opencv3-devel/files/patch-find-openexr.diff b/graphics/opencv3-devel/files/patch-find-openexr.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..4facc779155
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/opencv3-devel/files/patch-find-openexr.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- cmake/OpenCVFindOpenEXR.cmake.orig     2020-04-02 14:59:58.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ cmake/OpenCVFindOpenEXR.cmake  2020-04-25 13:31:42.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -21,15 +21,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         SET(OPENEXR_LIBSEARCH_SUFFIXES Win32/Release Win32 Win32/Debug)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elseif(UNIX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    SET(OPENEXR_LIBSEARCH_SUFFIXES ${CMAKE_LIBRARY_ARCHITECTURE})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(OPENEXR_ROOT "@PREFIX@")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SET(SEARCH_PATHS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "${OPENEXR_ROOT}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    /usr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    /usr/local
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    /sw
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    /opt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "${ProgramFiles_ENV_PATH}/OpenEXR")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MACRO(FIND_OPENEXR_LIBRARY LIBRARY_NAME LIBRARY_SUFFIX)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/opencv3-devel/files/patch-local_protobuf.diff b/graphics/opencv3-devel/files/patch-local_protobuf.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..e636e461682
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/opencv3-devel/files/patch-local_protobuf.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 3rdparty/protobuf/CMakeLists.txt.orig  2020-12-20 16:15:49.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ 3rdparty/protobuf/CMakeLists.txt       2020-12-23 18:53:09.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -142,7 +142,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include_directories(BEFORE "${PROTOBUF_ROOT}/src")  # ensure using if own headers: https://github.com/opencv/opencv/issues/13328
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ add_library(libprotobuf STATIC ${OPENCV_3RDPARTY_EXCLUDE_FROM_ALL} ${Protobuf_SRCS})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-target_include_directories(libprotobuf SYSTEM PUBLIC $<BUILD_INTERFACE:${PROTOBUF_ROOT}/src>)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++target_include_directories(libprotobuf PUBLIC $<BUILD_INTERFACE:${PROTOBUF_ROOT}/src>)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set_target_properties(libprotobuf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     PROPERTIES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FOLDER "3rdparty"
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/opencv3-devel/files/patch-pchsupport.diff b/graphics/opencv3-devel/files/patch-pchsupport.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..d53f73dcce2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/opencv3-devel/files/patch-pchsupport.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,23 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From a0fdc91a14f07de25d858037940fcd3ba859b4e2 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Maksim Shabunin <maksim.shabunin@itseez.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Fri, 13 May 2016 13:28:09 +0300
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Disabled PCH support for gcc >= 6.0.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Command line generation routine uses "-isystem" to include headers outside of "<opencv>/modules" folder, but GCC 6 does not work when passed "-isystem /usr/include" option.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cmake/OpenCVPCHSupport.cmake | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 1 insertion(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git cmake/OpenCVPCHSupport.cmake cmake/OpenCVPCHSupport.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 243fb4c..a2df014 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- cmake/OpenCVPCHSupport.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ cmake/OpenCVPCHSupport.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,7 +19,7 @@ IF(CMAKE_COMPILER_IS_GNUCXX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         ARGS ${CMAKE_CXX_COMPILER_ARG1} -dumpversion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         OUTPUT_VARIABLE gcc_compiler_version)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #MESSAGE("GCC Version: ${gcc_compiler_version}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    IF(gcc_compiler_version VERSION_GREATER "4.2.-1")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    IF(gcc_compiler_version VERSION_GREATER "4.2.-1" AND gcc_compiler_version VERSION_LESS "6.0.0")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         SET(PCHSupport_FOUND TRUE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ENDIF()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span></pre><pre style='margin:0'>

</pre>