<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/8aa10827f997752743a23b690dcc1acd4907faef">https://github.com/macports/macports-ports/commit/8aa10827f997752743a23b690dcc1acd4907faef</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 8aa10827f997752743a23b690dcc1acd4907faef
</span>Author: Christopher Nielsen <mascguy@github.com>
AuthorDate: Wed Oct 27 10:47:51 2021 -0400

<span style='display:block; white-space:pre;color:#404040;'>    opencv4-devel: new port for testing
</span>---
 graphics/opencv4-devel/Portfile                    | 670 +++++++++++++++++++++
 .../opencv4-devel/files/patch-dylib_suffix.diff    |  11 +
 2 files changed, 681 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/opencv4-devel/Portfile b/graphics/opencv4-devel/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..9e11a679253
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/opencv4-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,670 @@
</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           github 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                opencv4-devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+conflicts           opencv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set my_name         opencv4
</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;'>+                    {stromnov @stromnov} \
</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;'>+# OpenCV 4 fails to build on MacOS 10.8 and earlier, from 4.5.1 on.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# So for now, revert to 4.5.0 for older MacOS releases, until we can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# determine a formal fix.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.major} > 12} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    github.setup    opencv opencv 4.5.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    revision        0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</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  8ba17a9c3a9d2c1d515d35aceb8629d9f6e2f78b \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  a35b800d1c17026cba3815019216e90c2ab994553258f6d73cd9a35d4ade59e9 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    89726709
</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.html
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    livecheck.regex {/archive/([0-9.]+)[a-z]?\.[tz]}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    github.setup    opencv opencv 4.5.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    revision        0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</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  fadb405b7d38f829775da60a62d29368b2159ce4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  03d9f7d777d8a62a5481934dbba2fd692b6cb43f1690a8546e45f9bdb1ee0863 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    90119002
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    livecheck.type  none
</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;'>+master_sites        ${github.master_sites}:${github.project}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distfiles           [lindex ${distfiles} 0]:${github.project}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distname            ${my_name}-${version}
</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;'>+#------------------------------------------------------------------------------
</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;'>+# 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;'>+#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;'>+# Claims to only need c++11 but actually uses c++14 features
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# core/cvstd_wrapper.hpp:45:40: warning: variable templates are a C++14 extension [-Wc++14-extensions]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set cxx_standard 14
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    20${cxx_standard}
</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;'>+                    *gcc* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    {clang < 900} \
</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-6].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:cctools \
</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: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:openexr \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:ilmbase \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:ade
</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 use by configure arguments.
</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;'>+                    -DCMAKE_CXX_STANDARD=${cxx_standard} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DENABLE_CONFIG_VERIFICATION:BOOL=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_ADE:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -Dade_DIR:PATH=${prefix}/share/ade/ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_WITH_DEBUG_INFO:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DHAVE_CXX11:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DENABLE_CXX11:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DENABLE_PIC:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_SHARED_LIBS:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_opencv_apps:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_DOCS:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_EXAMPLES:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DINSTALL_C_EXAMPLES:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DINSTALL_PYTHON_EXAMPLES:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_TESTS:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_PERF_TESTS:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DENABLE_CCACHE:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_JAVA:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DENABLE_LTO:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DENABLE_THIN_LTO:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DENABLE_PRECOMPILED_HEADERS:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_ENABLE_NONFREE:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_FORCE_3RDPARTY_BUILD:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_ZLIB:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_TIFF:BOOL=OFF -DWITH_TIFF:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_JASPER:BOOL=OFF -DWITH_JASPER:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_JPEG:BOOL=OFF -DWITH_JPEG:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_OPENJPEG:BOOL=OFF -DWITH_OPENJPEG:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_PNG:BOOL=OFF -DWITH_PNG:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_OPENEXR:BOOL=OFF -DWITH_OPENEXR:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_WEBP:BOOL=OFF -DWITH_WEBP:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_TBB:BOOL=OFF -DWITH_TBB:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_FFMPEG:BOOL=OFF -DWITH_FFMPEG:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENCL:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENCL_SVM:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENCLAMDFFT:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENCLAMDBLAS:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_LAPACK:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_IPP_IW:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_ITT:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_1394:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_AVFOUNDATION:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_VTK:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_EIGEN:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_GSTREAMER:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_GTK:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_IPP:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_HALIDE:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_VULKAN:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_INF_ENGINE:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENGL:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENVX:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENNI:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENNI2:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_GDCM:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_PVAPI:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_ARAVIS:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_QT:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_HPX:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENMP:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_PTHREADS_PF:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_XIMEA:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_LIBREALSENSE:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_VA:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_VA_INTEL:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_MFX:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_GDAL:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_GPHOTO2:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_ITT:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_PROTOBUF:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_IMGCODEC_HDR:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_IMGCODEC_SUNRASTER:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_IMGCODEC_PXM:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_IMGCODEC_PFM:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_QUIRC:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DHAVE_COCOA:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_opencv_aruco:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_opencv_python2:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_opencv_python3:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_PYTHON_SKIP_DETECTION:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DPYTHON_DEFAULT_EXECUTABLE:FILEPATH=/usr/bin/python
</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;'>+    # generate pkg-config file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_GENERATE_PKGCONFIG=YES
</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;'>+universal_variant   no
</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;'>+# Keep around, for when universal support is fixed/enabled
</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;'>+if {${universal_possible} && [variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DENABLE_PRECOMPILED_HEADERS:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DENABLE_PRECOMPILED_HEADERS:BOOL=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.ccache} } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DENABLE_CCACHE:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DENABLE_CCACHE:BOOL=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;'>+    configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DZLIB_LIBRARY:FILEPATH=${prefix}/lib/libz.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 as 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;'>+        ui_debug "AVFoundation not supported on this MacOS release; disabling"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_AVFOUNDATION:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_AVFOUNDATION:BOOL=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;'>+
</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;'>+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}-${parent_subport_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:${parent_subport_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:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_opencv_python3:BOOL=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:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_opencv_apps:BOOL=OFF
</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_aruco:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_opencv_aruco:BOOL=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 ${parent_subport_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 '${subport}_', 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 eigen description {Enable eigen 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: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:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_EIGEN:BOOL=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: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 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:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_GDAL:BOOL=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 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:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_ENABLE_NONFREE:BOOL=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 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:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENCL:BOOL=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 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    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:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENMP:BOOL=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 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:openni
</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:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENNI:BOOL=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENNI_INCLUDE_DIR:PATH=${prefix}/include/ni \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENNI_LIB_DIR:PATH=${prefix}/lib
</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;'>+    # Respect legacy variant name 'opencv_contrib', and replace with 'contrib'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[variant_isset opencv_contrib]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "Legacy variant 'opencv_contrib' set; enabling 'contrib'"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        default_variants-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    +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;'>+    variant contrib description {Build OpenCV with extra modules (untested)} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        master_sites-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    https://github.com/${github.author}/${github.project}_contrib/tarball/${version}:${github.project}_contrib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        distfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${github.project}_contrib-${version}${extract.suffix}:${github.project}_contrib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${os.major} > 12} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            checksums-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${github.project}_contrib-${version}${extract.suffix} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  ed7fabd08db3e57db41ae7844fa01fe99ea02b28 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  92275d7abdb85da720e4dfc669f1dccba1f412c8bf097232cf00077e713c2570 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    61052252
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            checksums-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${github.project}_contrib-${version}${extract.suffix} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    rmd160  179e9842172a67db96c976e6ab4944b826835970 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  f16aa7c7960e6a0d855b681d19437d4e05bc8abd6af5adf5ab86f37d1019d663 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    60120338
</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;'>+        depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:protobuf3-cpp \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:google-glog \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:gflags \
</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;'>+            move_gh_repo ${github.author}-${github.project}-* ${distname}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            move_gh_repo ${github.author}-${github.project}_contrib-* ${github.project}_contrib-${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;'>+        pre-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            delete ${worksrcpath}/${github.project}_contrib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ln -s ${workpath}/${github.project}_contrib-${version} ${worksrcpath}/${github.project}_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;'>+        configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_EXTRA_MODULES_PATH=${worksrcpath}/${github.project}_contrib/modules
</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:BOOL=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:BOOL=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_JAVA:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_JAVA:BOOL=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 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:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_TBB:BOOL=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:BOOL=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:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_VTK:BOOL=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:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_TESTS:BOOL=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:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_PERF_TESTS:BOOL=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:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_WITH_DEBUG_INFO:BOOL=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;'>+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/opencv4.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;'>+
</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 opencv4 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;'>+# modify from _resources/port1.0/group/github-1.0.tcl to avoid file tag issue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc move_gh_repo {repo_dir_patt new_name} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global distfiles workpath worksrcpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {(![file exists ${worksrcpath}] || ![file exists ${workpath}/${new_name}]) && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            [llength ${distfiles}] > 0 && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            [llength [glob -nocomplain ${workpath}/*]] > 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[file exists [glob -nocomplain ${workpath}/${repo_dir_patt}]] && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            [file isdirectory [glob -nocomplain ${workpath}/${repo_dir_patt}]]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            move [glob ${workpath}/${repo_dir_patt}] ${workpath}/${new_name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # tarball is not "${repo_dir_patt}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_error "\n\nGitHub Extract Error: \${worksrcpath} does not exist after extracting\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                distfiles. This might indicate that the author or project is different than set\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                in the Portfile due to a rename at GitHub. Please examine the extracted directory\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                in ${workpath} and try to correct the Portfile by either changing the author or\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                project or adding the worksrcdir option with the correct directory name.\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            return -code error "Unexpected github tarball extract."
</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;'>+post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    move_gh_repo ${github.author}-${github.project}-* ${distname}
</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;'>+if {[string match "py*" ${subport}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    livecheck.type  none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/opencv4-devel/files/patch-dylib_suffix.diff b/graphics/opencv4-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/opencv4-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></pre><pre style='margin:0'>

</pre>