<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/9b8e658d6007baab27aa29efcdfecbf62e2f12b5">https://github.com/macports/macports-ports/commit/9b8e658d6007baab27aa29efcdfecbf62e2f12b5</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 9b8e658d6007baab27aa29efcdfecbf62e2f12b5
</span>Author: Steven Thomas Smith <s.t.smith@ieee.org>
AuthorDate: Thu Jul 16 21:51:49 2020 -0400

<span style='display:block; white-space:pre;color:#404040;'>    opencv4: Add opencv-python (cv2) python bindings as py*-opencv subports
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * Replace python* variants as py*-opencv subports to allow
</span><span style='display:block; white-space:pre;color:#404040;'>      Portfile dependencies
</span>---
 graphics/opencv4/Portfile | 380 +++++++++++++++++++++++-----------------------
 1 file changed, 194 insertions(+), 186 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/opencv4/Portfile b/graphics/opencv4/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 9f79a3898bc..08bbfd1b656 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/opencv4/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/opencv4/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7,7 +7,7 @@ PortGroup           github 1.0
</span> 
 github.setup        opencv opencv 4.5.0
 name                opencv4
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            2
</span> categories          graphics science
 platforms           darwin
 license             BSD
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -19,16 +19,16 @@ maintainers         \
</span> 
 description         Open Source Computer Vision Library
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-long_description    OpenCV (Open Source Computer Vision Library) is an\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    open source computer vision and machine learning\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    software library. OpenCV was built to provide a\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    common infrastructure for computer vision\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    applications and to accelerate the use of machine\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    perception in the commercial products. Being a\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    BSD-licensed product, OpenCV makes it easy for\
</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>                     businesses to utilize and modify the code.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-homepage            https://opencv.org
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            https://opencv.org/
</span> 
 master_sites        ${github.master_sites}:${github.project}
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -201,27 +201,27 @@ universal_variant   no
</span> # Keep around, for when universal support is fixed/enabled
 if {[variant_isset universal]} {
     configure.args-replace \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DENABLE_PRECOMPILED_HEADERS:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DENABLE_PRECOMPILED_HEADERS: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;'>+                    -DENABLE_PRECOMPILED_HEADERS:BOOL=OFF
</span> }
 
 if { ${configure.ccache} } {
     configure.args-replace \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DENABLE_CCACHE:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DENABLE_CCACHE:BOOL=ON
</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> }
 
 platform darwin {
     configure.args-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DZLIB_LIBRARY:FILEPATH=${prefix}/lib/libz.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DZLIB_LIBRARY:FILEPATH=${prefix}/lib/libz.dylib
</span> 
     # do not opportunistically find other LAPACK implementations
     # see cmake/OpenCVFindLAPACK.cmake
     configure.args-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DLAPACK_IMPL=Apple \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DLAPACK_LIBRARIES="-framework Accelerate" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DLAPACK_CBLAS_H=Accelerate/Accelerate.h \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DLAPACK_LAPACKE_H=Accelerate/Accelerate.h
</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> 
     # the AVFoundation backend is failing to build up to 10.8
     # it might be possible to work around or repair this on 10.7 and 10.8
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -231,204 +231,201 @@ platform darwin {
</span>     if {${os.major} < 13} {
         ui_debug "AVFoundation not supported on this MacOS release; disabling"
         configure.args-replace \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_AVFOUNDATION:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_AVFOUNDATION: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_AVFOUNDATION:BOOL=OFF
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-notes {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    opencv4 binaries are now prefixed with 'opencv4_', to prevent conflicts\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    with opencv.
</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 ${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;'>+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}-${github.project} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:opencv4 \
</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:#ffe0e0;'>-    opencv4 libraries have changed from static to dynamic.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-delete \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DINSTALL_PYTHON_EXAMPLES: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:#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:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DBUILD_WITH_DEBUG_INFO:BOOL=ON
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</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:#ffe0e0;'>-variant opencl description {Enable OpenCL support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_OPENCL:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_OPENCL: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_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;'>+        
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append \
</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;'>+                    -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 port:opencv4 contents
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            opencv4_post_destroot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            foreach f [exec port contents ${name}] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                delete ${destroot}${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> }
 
<span style='display:block; white-space:pre;background:#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 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_EIGEN:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_EIGEN:BOOL=ON
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DEIGEN_INCLUDE_PATH:PATH=${prefix}/include/eigen3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</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;'>+        opencv4 binaries are now prefixed with 'opencv4_', to prevent \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        conflicts with opencv.
</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 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_GDAL:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_GDAL:BOOL=ON
</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 openmp description {Include OpenMP support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    compiler.openmp_version \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        4.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_OPENMP:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_OPENMP:BOOL=ON
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        opencv4 libraries have changed from static to dynamic.
</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;'>-    configure.args-replace  \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_OPENNI:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_OPENNI:BOOL=ON
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DOPENNI_INCLUDE_DIR:PATH=${prefix}/include/ni \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DOPENNI_LIB_DIR:PATH=${prefix}/lib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</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:#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:#ffe0e0;'>-                        -DOPENCV_ENABLE_NONFREE:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DOPENCV_ENABLE_NONFREE:BOOL=ON
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</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:#ffe0e0;'>-# Respect legacy variant name 'opencv_contrib', and replace with 'contrib'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {[variant_isset opencv_contrib]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    ui_debug "Legacy variant 'opencv_contrib' set; enabling 'contrib'"
</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:#ffe0e0;'>-    default_variants-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        +contrib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</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:#ffe0e0;'>-variant contrib description {Build OpenCV with extra modules (untested)} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    master_sites-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        https://github.com/${github.author}/${github.project}_contrib/tarball/${version}:${github.project}_contrib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    distfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        ${github.project}_contrib-${version}${extract.suffix}:${github.project}_contrib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    checksums-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        ${github.project}_contrib-${version}${extract.suffix} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        rmd160  179e9842172a67db96c976e6ab4944b826835970 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        sha256  f16aa7c7960e6a0d855b681d19437d4e05bc8abd6af5adf5ab86f37d1019d663 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        size    60120338
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:protobuf3-cpp \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:google-glog \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:gflags \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:ceres-solver
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    post-extract {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        move_gh_repo ${github.author}-${github.project}-* ${distname}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        move_gh_repo ${github.author}-${github.project}_contrib-* ${github.project}_contrib-${version}
</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:#ffe0e0;'>-    pre-patch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        delete ${worksrcpath}/${github.project}_contrib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ln -s ${workpath}/${github.project}_contrib-${version} ${worksrcpath}/${github.project}_contrib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</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;'>+        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:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DOPENCV_EXTRA_MODULES_PATH=${worksrcpath}/${github.project}_contrib/modules
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</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:#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 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_QT:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_QT=4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</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:#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 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_QT:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_QT=5
</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;'>+                    -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:#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 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:apache-ant
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DBUILD_JAVA:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DBUILD_JAVA:BOOL=ON
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</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 \
</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:#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;'>+    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 \
</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:#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:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DBUILD_opencv_python3:BOOL=OFF
</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;'>+        # 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:#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:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant tbb description {Use Intel TBB} {
</span>         depends_lib-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        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:#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>         configure.args-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DINSTALL_PYTHON_EXAMPLES:BOOL=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:#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:#ffe0e0;'>-variant tbb description {Use Intel TBB} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                         port:tbb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant debug description {Build with debugging info} {
</span>     configure.args-replace \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_TBB:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_TBB:BOOL=ON
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DHAVE_TBB:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DTBB_INCLUDE_DIRS=${prefix}/include
</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:#ffe0e0;'>-variant vtk description {Include VTK support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:vtk
</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>     configure.args-replace \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_VTK:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DWITH_VTK:BOOL=ON
</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> }
 
 variant tests description {Enable tests} {
     configure.args-replace \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DBUILD_TESTS:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DBUILD_TESTS: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_TESTS:BOOL=ON
</span> 
     configure.args-replace \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DBUILD_PERF_TESTS:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DBUILD_PERF_TESTS:BOOL=ON
</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:#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:#ffe0e0;'>-livecheck.type      regex
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.url       https://opencv.org/releases.html
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.regex     {/archive/([0-9.]+)[a-z]?\.[tz]}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> proc opencv4_move_binaries {p_bin_main_dir p_bin_port_dir} {
     set bin_main_files \
         [glob -nocomplain -type f \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -471,26 +468,37 @@ proc opencv4_soft_link_binaries {p_bin_main_dir p_bin_port_dir p_destroot p_pref
</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 opencv4_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;'>+
</span>     set bin_main_dir \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        "${destroot}${prefix}/bin"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "${destroot}${prefix}/bin"
</span>     set bin_port_dir \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        "${destroot}${prefix}/libexec/opencv4/bin"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "${destroot}${prefix}/libexec/opencv4/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 opencv4 bin area.
     opencv4_move_binaries \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${bin_main_dir} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${bin_port_dir}
</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> 
     # Create soft links for binaries, each prefixed with 'opencv4_'.
     opencv4_soft_link_binaries \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${bin_main_dir} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${bin_port_dir} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${destroot} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ${prefix}
</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;'>+}
</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;'>+    opencv4_post_destroot
</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;'>+} else {
</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;'>+}
</span></pre><pre style='margin:0'>

</pre>