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

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/c5179d799bbe7a1154b5e2d82f927c24f6cbc404">https://github.com/macports/macports-ports/commit/c5179d799bbe7a1154b5e2d82f927c24f6cbc404</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit c5179d799bbe7a1154b5e2d82f927c24f6cbc404
</span>Author: Christopher Nielsen <mascguy@github.com>
AuthorDate: Tue Jan 26 21:20:35 2021 -0500

<span style='display:block; white-space:pre;color:#404040;'>    opencv3: migrate python bindings to subports; refine file layout, for consistency with opencv4
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    See: https://trac.macports.org/ticket/62011
</span><span style='display:block; white-space:pre;color:#404040;'>    See: https://trac.macports.org/ticket/49670
</span>---
 graphics/opencv3/Portfile | 496 +++++++++++++++++++++++++---------------------
 1 file changed, 272 insertions(+), 224 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/opencv3/Portfile b/graphics/opencv3/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 65b9ab44d1e..09723038d92 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/opencv3/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/opencv3/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7,7 +7,7 @@ PortGroup           legacysupport 1.0
</span> 
 name                opencv3
 version             3.4.13
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            1
</span> categories          graphics science
 platforms           darwin
 license             BSD
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -16,15 +16,16 @@ maintainers         \
</span>                     {@mascguy} \
                     openmaintainer
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-description         Intel(R) Open Source Computer Vision Library
</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:#ffe0e0;'>-long_description    OpenCV is a library that is mainly aimed at real time \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    computer vision. Some example areas would be \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    Human-Computer Interaction (HCI), Object Identification, \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    Segmentation and Recognition, Face Recognition, Gesture \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    Recognition, Motion Tracking, Ego Motion, Motion \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    Understanding, Structure From Motion (SFM), and Mobile \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    Robotics.
</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> 
 homepage            https://opencv.org
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -53,9 +54,19 @@ platform macosx {
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-worksrcdir          ${subport}-${version}
</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;'>+set physical_subport_name \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${name}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-compiler.cxx_standard   2011
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+worksrcdir          ${physical_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> 
 compiler.blacklist-append \
                     cc \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -110,34 +121,34 @@ configure.args-append \
</span>                     \
                     -DENABLE_CONFIG_VERIFICATION=OFF \
                     \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DCMAKE_INSTALL_PREFIX=${prefix}/libexec/${subport} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_CONFIG_INSTALL_PATH=${prefix}/libexec/${subport}/cmake \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_BIN_INSTALL_PATH=${prefix}/libexec/${subport}/bin \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_SETUPVARS_INSTALL_PATH=${prefix}/libexec/${subport}/scripts \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_SBIN_INSTALL_PATH=${prefix}/libexec/${subport}/sbin \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_JAR_INSTALL_PATH=${prefix}/libexec/${subport}/java/jar \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_JNI_INSTALL_PATH=${prefix}/libexec/${subport}/java/jni/bin \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_JNI_BIN_INSTALL_PATH=${prefix}/libexec/${subport}/java/jni/lib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_TEST_INSTALL_PATH=${prefix}/libexec/${subport}/test/bin \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_TEST_DATA_PATH=${prefix}/libexec/${subport}/test/data \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_SAMPLES_BIN_INSTALL_PATH=${prefix}/libexec/${subport}/share/samples/bin \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_SAMPLES_SRC_INSTALL_PATH=${prefix}/libexec/${subport}/share/samples/src \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_OTHER_INSTALL_PATH=${prefix}/libexec/${subport}/share/data \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_DOC_INSTALL_PATH=${prefix}/libexec/${subport}/share/doc \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_LICENSES_INSTALL_PATH=${prefix}/libexec/${subport}/share/license \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_INCLUDE_INSTALL_PATH=${prefix}/include/${subport} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_LIB_INSTALL_PATH=${prefix}/lib/${subport} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_3P_LIB_INSTALL_PATH=${prefix}/lib/${subport}/3rdparty \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_LIB_ARCHIVE_INSTALL_PATH=${prefix}/lib/${subport}/static \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DCMAKE_BINARY_DIR=${prefix}/libexec/${subport}/bin \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DCMAKE_INSTALL_LIBEXECDIR=${prefix}/libexec/${subport} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DCMAKE_INSTALL_BINDIR=${prefix}/libexec/${subport}/bin \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DCMAKE_INSTALL_SBINDIR=${prefix}/libexec/${subport}/sbin \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DCMAKE_INSTALL_SHAREDIR=${prefix}/libexec/${subport}/share \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DCMAKE_INSTALL_INCLUDEDIR=${prefix}/include/${subport} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DCMAKE_INSTALL_LIBDIR=${prefix}/lib/${subport} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DCMAKE_INSTALL_NAME_DIR=${prefix}/lib/${subport} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DCMAKE_INSTALL_RPATH=${prefix}/lib/${subport} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DCMAKE_INSTALL_PREFIX=${prefix}/libexec/${physical_subport_name} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_CONFIG_INSTALL_PATH=${prefix}/libexec/${physical_subport_name}/cmake \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_BIN_INSTALL_PATH=${prefix}/libexec/${physical_subport_name}/bin \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_SETUPVARS_INSTALL_PATH=${prefix}/libexec/${physical_subport_name}/scripts \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_SBIN_INSTALL_PATH=${prefix}/libexec/${physical_subport_name}/sbin \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_JAR_INSTALL_PATH=${prefix}/libexec/${physical_subport_name}/java/jar \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_JNI_INSTALL_PATH=${prefix}/libexec/${physical_subport_name}/java/jni \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_JNI_BIN_INSTALL_PATH=${prefix}/libexec/${physical_subport_name}/java/jni \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_TEST_INSTALL_PATH=${prefix}/libexec/${physical_subport_name}/test/bin \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_TEST_DATA_PATH=${prefix}/libexec/${physical_subport_name}/test/data \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_SAMPLES_BIN_INSTALL_PATH=${prefix}/libexec/${physical_subport_name}/share/samples/bin \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_SAMPLES_SRC_INSTALL_PATH=${prefix}/libexec/${physical_subport_name}/share/samples/src \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_OTHER_INSTALL_PATH=${prefix}/libexec/${physical_subport_name}/share/data \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_DOC_INSTALL_PATH=${prefix}/libexec/${physical_subport_name}/share/doc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_LICENSES_INSTALL_PATH=${prefix}/libexec/${physical_subport_name}/share/license \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_INCLUDE_INSTALL_PATH=${prefix}/include/${physical_subport_name} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_LIB_INSTALL_PATH=${prefix}/lib/${physical_subport_name} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_3P_LIB_INSTALL_PATH=${prefix}/lib/${physical_subport_name}/3rdparty \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_LIB_ARCHIVE_INSTALL_PATH=${prefix}/lib/${physical_subport_name}/static \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DCMAKE_BINARY_DIR=${prefix}/libexec/${physical_subport_name}/bin \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DCMAKE_INSTALL_LIBEXECDIR=${prefix}/libexec/${physical_subport_name} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DCMAKE_INSTALL_BINDIR=${prefix}/libexec/${physical_subport_name}/bin \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DCMAKE_INSTALL_SBINDIR=${prefix}/libexec/${physical_subport_name}/sbin \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DCMAKE_INSTALL_SHAREDIR=${prefix}/libexec/${physical_subport_name}/share \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DCMAKE_INSTALL_INCLUDEDIR=${prefix}/include/${physical_subport_name} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DCMAKE_INSTALL_LIBDIR=${prefix}/lib/${physical_subport_name} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DCMAKE_INSTALL_NAME_DIR=${prefix}/lib/${physical_subport_name} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DCMAKE_INSTALL_RPATH=${prefix}/lib/${physical_subport_name} \
</span>                     \
                     -DWITH_1394=OFF \
                     -DWITH_CARBON=OFF \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -209,14 +220,17 @@ configure.args-append \
</span>                     \
                     -DBUILD_opencv_java=OFF \
                     \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DPYTHON_EXECUTABLE=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DBUILD_opencv_python2=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DBUILD_opencv_python3=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DINSTALL_C_EXAMPLES=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DINSTALL_PYTHON_EXAMPLES=OFF \
</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>                     -DENABLE_PRECOMPILED_HEADERS=ON \
                     -DOPENCV_ENABLE_NONFREE=OFF \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DENABLE_CXX11=ON
</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> 
 platform darwin {
     configure.args-append \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -280,212 +294,232 @@ if {[variant_isset universal]} {
</span>                             -DENABLE_PRECOMPILED_HEADERS=OFF
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-notes \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    "${subport} binaries are now prefixed with '${subport}_', to prevent conflicts\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    with other opencv-related ports."
</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}-${physical_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:${physical_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_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 ${physical_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:#ffe0e0;'>-variant debug description {Build with debugging info} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            -DBUILD_WITH_DEBUG_INFO=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            -DBUILD_WITH_DEBUG_INFO=ON
</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}-${physical_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:${physical_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=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 ${physical_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:#ffe0e0;'>-variant avx conflicts avx2 description {Enable AVX (and SSE4*) support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   -DENABLE_AVX=ON \
</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 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>                             -DENABLE_SSE41=ON -DENABLE_SSE42=ON
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant avx2 conflicts avx description {Enable AVX, AVX2 (and SSE4*) support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   -DENABLE_AVX=ON -DENABLE_AVX2=ON \
</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>                             -DENABLE_SSE41=ON -DENABLE_SSE42=ON
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant eigen description {Enable eigen support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append      port:eigen3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace  -DWITH_EIGEN=OFF \
</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>                             -DWITH_EIGEN=ON
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   -DEIGEN_INCLUDE_PATH=${prefix}/include/eigen3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</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:#ffe0e0;'>-variant opencl description {Enable OpenCL support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    pre-configure {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {${os.platform} eq "darwin" && ${os.major} < 11} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ui_error "The OpenCL variant only works with OS X 10.7 Lion or later."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            return -code error "incompatible OS X version"
</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:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace  -DWITH_OPENCL=OFF \
</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>                             -DWITH_OPENCL=ON
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant openmp description {Include OpenMP support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    compiler.openmp_version 4.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace \
</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>                             -DWITH_OPENMP=OFF \
                             -DWITH_OPENMP=ON
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant openni description {Enable OpenNI support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append      port:openni
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append       patch-cmake_OpenCVFindOpenNI.cmake.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace  -DWITH_OPENNI=OFF \
</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>                             -DWITH_OPENNI=ON
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    post-patch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         reinplace "s,@@PREFIX@@,${prefix},g" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             ${worksrcpath}/cmake/OpenCVFindOpenNI.cmake
</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:#ffe0e0;'>-}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant dc1394 description {Use libdc1394 for FireWire camera; breaks compatibility with Apple iSight FireWire camera} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append      port:libdc1394
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace  -DWITH_1394=OFF \
</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  -DWITH_1394=OFF \
</span>                             -DWITH_1394=ON
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   -DHAVE_DC1394_2=ON
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append   -DHAVE_DC1394_2=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant qt4 conflicts qt5 description {Build with Qt4 Backend support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    PortGroup               qt4 1.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace  -DWITH_QT=OFF \
</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;'>+        configure.args-replace  -DWITH_QT=OFF \
</span>                             -DWITH_QT=4
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant qt5 conflicts qt4 description {Build with Qt5 Backend support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    PortGroup               qt5 1.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace  -DWITH_QT=OFF \
</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;'>+        configure.args-replace  -DWITH_QT=OFF \
</span>                             -DWITH_QT=5
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant java description {Add Java bindings} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    PortGroup               java 1.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # OpenCV appears to support older Java versions,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # and MacPorts users have requested Java 8 support:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # see https://trac.macports.org/ticket/60193
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    java.version            1.6+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Use latest LTS Java version as fallback
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    java.fallback           openjdk11
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_build-append    port:apache-ant
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace  -DBUILD_opencv_java=OFF \
</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;'>+        # 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    port:apache-ant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace  -DBUILD_opencv_java=OFF \
</span>                             -DBUILD_opencv_java=ON
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {[variant_isset java] && ![variant_isset python27]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace  -DPYTHON_EXECUTABLE=OFF \
</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  -DPYTHON_EXECUTABLE=OFF \
</span>                             -DPYTHON_EXECUTABLE=/usr/bin/python
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-delete   -DBUILD_opencv_python2=OFF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-variant python27 description {Add Python 2.7 bindings} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append      port:python27 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            port:py27-numpy
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-delete   -DINSTALL_PYTHON_EXAMPLES=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            -DBUILD_opencv_python2=OFF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace  -DPYTHON_EXECUTABLE=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            -DPYTHON_EXECUTABLE=${prefix}/bin/python2.7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   -DINSTALL_PYTHON_EXAMPLES=ON \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            -DPYTHON2_EXECUTABLE=${prefix}/bin/python2.7 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            -DPYTHON_LIBRARIES=${prefix}/lib/libpython2.7.dylib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            -DPYTHON2_LIBRARIES=${prefix}/lib/libpython2.7.dylib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            -DPYTHON2_INCLUDE_DIR=${frameworks_dir}/Python.framework/Versions/2.7/Headers \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            -DPYTHON2_PACKAGES_PATH=${frameworks_dir}/Python.framework/Versions/2.7/lib/python2.7/site-packages
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set pythonversions {3.5 3.6 3.7 3.8 3.9}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach pdv ${pythonversions} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set pv [join [lrange [split ${pdv} .] 0 1] ""]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set conflist ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach v ${pythonversions} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {${v} ne ${pdv}} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set vv [join [lrange [split ${v} .] 0 1] ""]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set conflist "${conflist} python${vv}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-delete   -DBUILD_opencv_python2=OFF
</span>     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    variant python${pv} conflicts {*}${conflist} description "Add bindings for Python ${pdv}" {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-delete \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            -DINSTALL_PYTHON_EXAMPLES=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            -DBUILD_opencv_python3=OFF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # settings that depend on loop variables must be set in an appropriate if, not in the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # variant declaration scope.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[variant_isset python${pv}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        depends_lib-append  port:python${pv} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            port:py${pv}-numpy
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {![variant_isset python27]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            configure.args-replace \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            -DPYTHON_EXECUTABLE=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            -DPYTHON_EXECUTABLE=${prefix}/bin/python${pdv}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            -DINSTALL_PYTHON_EXAMPLES=ON \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            -DPYTHON3_EXECUTABLE=${prefix}/bin/python${pdv} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            -DPYTHON3_LIBRARY=${frameworks_dir}/Python.framework/Versions/${pdv}/lib/libpython${pdv}.dylib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            -DPYTHON3_INCLUDE_DIR=${frameworks_dir}/Python.framework/Versions/${pdv}/Headers \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            -DPYTHON3_PACKAGES_PATH=${frameworks_dir}/Python.framework/Versions/${pdv}/lib/python${pdv}/site-packages
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant tbb description {Use Intel TBB} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append      port:tbb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace  -DWITH_TBB=OFF \
</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      port:tbb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace  -DWITH_TBB=OFF \
</span>                             -DWITH_TBB=ON
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   -DHAVE_TBB=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append   -DHAVE_TBB=ON \
</span>                             -DTBB_INCLUDE_DIRS=${prefix}/include
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant vtk description {Include VTK support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append      port:vtk
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace  -DWITH_VTK=OFF \
</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      port:vtk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace  -DWITH_VTK=OFF \
</span>                             -DWITH_VTK=ON
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant gdal description {Include GDAL support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append      port:gdal
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace  -DWITH_GDAL=OFF \
</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      port:gdal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace  -DWITH_GDAL=OFF \
</span>                             -DWITH_GDAL=ON
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant contrib description {Build OpenCV with extra modules} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    master_sites-append     https://github.com/opencv/opencv_contrib/archive:opencv_contrib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    distfiles-append        ${version}.zip:opencv_contrib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    checksums-append        ${version}.zip \
</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>                             rmd160  e3fe150fa131a4cf7cd9e0bf9f6a597df6e8f3f3 \
                             sha256  4412a8b1a9d55b4bac489d79c21c567e0bf69272e6fbc7f45a68a7b72fb59066 \
                             size    56393041
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   -DOPENCV_EXTRA_MODULES_PATH=${workpath}/opencv_contrib-${version}/modules \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append   -DOPENCV_EXTRA_MODULES_PATH=${workpath}/opencv_contrib-${version}/modules \
</span>                             -DBUILD_PROTOBUF=YES
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append      \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append      \
</span>                             port:gflags \
                             port:google-glog \
                             port:ceres-solver
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    post-extract {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # gunzip cannot handle multi-member .zip archives
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        exec unzip -oq ${distpath}/${version}.zip -d ${extract.dir}
</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:#ffe0e0;'>-        # less than ideal way for patchfiles to be applied to contrib directory
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ln -s ${workpath}/opencv_contrib-${version} ${worksrcpath}/opencv_contrib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</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:#ffe0e0;'>-    extract.only            ${distname}${extract.suffix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        extract.only            ${distname}${extract.suffix}
</span> #                            ${version}.zip
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # dnn_modern:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    master_sites-append     https://github.com/tiny-dnn/tiny-dnn/archive/:tiny-dnn
</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:#ffe0e0;'>-    distfiles-append        v1.0.0a3.tar.gz:tiny-dnn
</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:#ffe0e0;'>-    checksums-append        v1.0.0a3.tar.gz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        checksums-append        v1.0.0a3.tar.gz \
</span>                             rmd160 1d44a0f0c3b0a6f31a333afdfb246526c42336ad \
                             sha256 e2c61ce8c5debaa644121179e9dbdcf83f497f39de853f8dd5175846505aa18b \
                             size 12885646
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append  -DOPENCV_TINY_DNN_URL=file://${distpath}/
</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:#ffe0e0;'>-    # xfeatures2d/boostdesc:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    master_sites-append    https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26:boostdesc
</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:#ffe0e0;'>-    distfiles-append       boostdesc_bgm.i:boostdesc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        distfiles-append       boostdesc_bgm.i:boostdesc \
</span>                            boostdesc_bgm_bi.i:boostdesc \
                            boostdesc_bgm_hd.i:boostdesc \
                            boostdesc_binboost_064.i:boostdesc \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -493,7 +527,7 @@ variant contrib description {Build OpenCV with extra modules} {
</span>                            boostdesc_binboost_256.i:boostdesc \
                            boostdesc_lbgm.i:boostdesc
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    checksums-append       boostdesc_bgm.i \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        checksums-append       boostdesc_bgm.i \
</span>                                rmd160 a090147b1ff8cdb23cbb3898cb5cd9cdb181f000 \
                                sha256 c441a027f15b9b8ff6c006b0775cd86781169ebd5b6257a94bdce668010d5df5 \
                                size 14852 \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -522,17 +556,17 @@ variant contrib description {Build OpenCV with extra modules} {
</span>                                sha256 42f6091199242fb6d96aec2f25644cd6f5e5f2fdddd1720f3422282e88cf3cd8 \
                                size 426280
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append  -DOPENCV_BOOSTDESC_URL=file://${distpath}/
</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:#ffe0e0;'>-    #xfeatures2d/vggdesc:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    master_sites-append    https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d:vggdesc
</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:#ffe0e0;'>-    distfiles-append       vgg_generated_48.i:vggdesc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        distfiles-append       vgg_generated_48.i:vggdesc \
</span>                            vgg_generated_64.i:vggdesc \
                            vgg_generated_80.i:vggdesc \
                            vgg_generated_120.i:vggdesc
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    checksums-append       vgg_generated_48.i \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        checksums-append       vgg_generated_48.i \
</span>                                rmd160 fdb2d976ec287c4989e9d3b6f95104a0bef9c9a4 \
                                sha256 71274a67ab0896865e27de830eda0065e387d75fe071dab4a887e2430ccb8a35 \
                                size 773330 \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -549,38 +583,46 @@ variant contrib description {Build OpenCV with extra modules} {
</span>                                sha256 f05e7eb7183ecbc788bfc26cea9db7dad8585178175411b93e444acdc8fb2048 \
                                size 1257733
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append  -DOPENCV_VGGDESC_URL=file://${distpath}/
</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:#ffe0e0;'>-    #face:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    master_sites-append    https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12:face
</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:#ffe0e0;'>-    distfiles-append       face_landmark_model.dat:face
</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:#ffe0e0;'>-    checksums-append       face_landmark_model.dat \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        checksums-append       face_landmark_model.dat \
</span>                            rmd160 3a4e4a80f2c74a6af2b36b4d74e3c6d59c347ce0 \
                            sha256 eeab592db2861a6c94d592a48456cf59945d31483ce94a6bc4d3a4e318049ba3 \
                            size 72368157
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append  -DOPENCV_FACE_ALIGNMENT_URL=file://${distpath}/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</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:#ffe0e0;'>-variant nonfree description {Include nonfree algorithms} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace \
</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>                             -DOPENCV_ENABLE_NONFREE=OFF \
                             -DOPENCV_ENABLE_NONFREE=ON
<span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant tests description {Enable tests} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace \
</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>                             -DBUILD_TESTS=OFF \
                             -DBUILD_TESTS=ON
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span>                             -DBUILD_PERF_TESTS=OFF \
                             -DBUILD_PERF_TESTS=ON
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    test.run     yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    test.target  test
</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> }
 
 platform darwin {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -594,7 +636,7 @@ platform darwin {
</span> 
 pre-configure {
     configure.args-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DOPENCV_LINKER_LIBS=\"[join ${opencv_linker_libs} " "]\"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            -DOPENCV_LINKER_LIBS=\"[join ${opencv_linker_libs} " "]\"
</span> }
 
 proc opencv_move_binaries {p_bin_main_dir p_bin_port_dir} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -639,19 +681,23 @@ proc opencv_soft_link_binaries {p_bin_main_dir p_bin_port_dir p_destroot p_prefi
</span>     return 0
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-post-destroot {
</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 prefix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global destroot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global physical_subport_name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     # http://trac.macports.org/ticket/42702
     if {[variant_isset qt4] || [variant_isset qt5]} {
         reinplace "s|-L//System/Library/Frameworks ||g" \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            ${destroot}${prefix}/lib/${subport}/pkgconfig/opencv.pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${destroot}${prefix}/lib/${physical_subport_name}/pkgconfig/opencv.pc
</span>         reinplace "s|-lOpenGL.framework|-framework OpenGL|g" \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            ${destroot}${prefix}/lib/${subport}/pkgconfig/opencv.pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${destroot}${prefix}/lib/${physical_subport_name}/pkgconfig/opencv.pc
</span>     }
 
     set bin_main_dir \
         "${destroot}${prefix}/bin"
     set bin_port_dir \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        "${destroot}${prefix}/libexec/${subport}/bin"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "${destroot}${prefix}/libexec/${physical_subport_name}/bin"
</span> 
     # While the various configure-related options should catch everything, one or more
     # files may be missed. If so, ensure they're moved to the subport's bin area.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -659,16 +705,18 @@ post-destroot {
</span>         ${bin_main_dir} \
         ${bin_port_dir}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Create soft links for binaries, each prefixed with '<subport>_'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Create soft links for binaries, each prefixed with '<physical_subport_name>_'.
</span>     opencv_soft_link_binaries \
         ${bin_main_dir} \
         ${bin_port_dir} \
         ${destroot} \
         ${prefix} \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ${physical_subport_name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    unset bin_port_dir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    unset bin_main_dir
</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> }
 
 livecheck.type      regex
</pre><pre style='margin:0'>

</pre>