<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/342f7793397fe4c31b2c032c2e82a23008e5106e">https://github.com/macports/macports-ports/commit/342f7793397fe4c31b2c032c2e82a23008e5106e</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 342f7793397fe4c31b2c032c2e82a23008e5106e
</span>Author: Christopher Nielsen <mascguy@github.com>
AuthorDate: Tue Jan 26 21:23:42 2021 -0500

<span style='display:block; white-space:pre;color:#404040;'>    opencv4: cleanup python subports; refine file layout, for consistency with opencv3
</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/opencv4/Portfile | 208 ++++++++++++++++++++++++++++------------------
 1 file changed, 129 insertions(+), 79 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 08bbfd1b656..2fabd6b42ae 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            2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            3
</span> categories          graphics science
 platforms           darwin
 license             BSD
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -28,7 +28,7 @@ long_description    OpenCV (Open Source Computer Vision Library) is an \
</span>                     BSD-licensed product, OpenCV makes it easy for \
                     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;'>@@ -39,9 +39,20 @@ checksums           ${distname}${extract.suffix} \
</span>                     sha256  03d9f7d777d8a62a5481934dbba2fd692b6cb43f1690a8546e45f9bdb1ee0863 \
                     size    90119002
 
<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:#e0ffe0;'>+
</span> # recognize dylib as a valid library suffix
 patchfiles-append   patch-dylib_suffix.diff
 
<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> # modify from _resources/port1.0/group/github-1.0.tcl to avoid file tag issue
 proc move_gh_repo {repo_dir_patt new_name} {
     global distfiles workpath worksrcpath
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -63,7 +74,8 @@ post-extract {
</span>     move_gh_repo ${github.author}-${github.project}-* ${distname}
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-compiler.cxx_standard 2011
</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 \
                     *gcc* \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -92,18 +104,34 @@ configure.args-append \
</span>                     \
                     -DENABLE_CONFIG_VERIFICATION:BOOL=OFF \
                     \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_BIN_INSTALL_PATH=${prefix}/libexec/opencv4/bin \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_SBIN_INSTALL_PATH=${prefix}/libexec/opencv4/sbin \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_TEST_INSTALL_PATH=${prefix}/libexec/opencv4/test \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_SAMPLES_BIN_INSTALL_PATH=${prefix}/libexec/opencv4/samples \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DOPENCV_SETUPVARS_INSTALL_PATH=${prefix}/libexec/opencv4/scripts \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DCMAKE_BINARY_DIR=${prefix}/libexec/opencv4/bin \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DCMAKE_INSTALL_BINDIR=libexec/opencv4/bin \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DCMAKE_INSTALL_SBINDIR=libexec/opencv4/sbin \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DCMAKE_INSTALL_LIBEXECDIR=libexec/opencv4 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DCMAKE_INSTALL_LIBDIR=lib/opencv4 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DCMAKE_INSTALL_NAME_DIR=${prefix}/lib/opencv4 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DCMAKE_INSTALL_RPATH=${prefix}/lib/opencv4 \
</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_ADE:BOOL=ON \
                     -Dade_DIR:PATH=${prefix}/share/ade/ \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -116,7 +144,8 @@ configure.args-append \
</span>                     -DBUILD_opencv_apps:BOOL=ON \
                     -DBUILD_DOCS:BOOL=OFF \
                     -DBUILD_EXAMPLES:BOOL=OFF \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DINSTALL_C_EXAMPLES:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DINSTALL_C_EXAMPLES:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DINSTALL_PYTHON_EXAMPLES:BOOL=ON \
</span>                     -DBUILD_TESTS:BOOL=OFF \
                     -DBUILD_PERF_TESTS:BOOL=OFF \
                     \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -188,9 +217,10 @@ configure.args-append \
</span>                     \
                     -DHAVE_COCOA:BOOL=ON \
                     \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_opencv_aruco:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \
</span>                     -DBUILD_opencv_python2:BOOL=OFF \
                     -DBUILD_opencv_python3:BOOL=OFF \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DBUILD_opencv_aruco:BOOL=ON \
</span>                     -DOPENCV_PYTHON_SKIP_DETECTION:BOOL=OFF \
                     -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python \
                     -DPYTHON_DEFAULT_EXECUTABLE:FILEPATH=/usr/bin/python
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -236,41 +266,37 @@ platform darwin {
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Python bindings
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# 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;'>+# 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> set python_branches {3.5 3.6 3.7 3.8 3.9}
 foreach python_branch ${python_branches} {
     set python_version [join [lrange [split ${python_branch} .] 0 1] ""]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    subport py${python_version}-${github.project} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    subport py${python_version}-${physical_subport_name} {
</span>         depends_lib-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:opencv4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:${physical_subport_name} \
</span>                     port:python${python_version} \
                     port:py${python_version}-numpy
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</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:#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_python3:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DBUILD_opencv_python3:BOOL=ON
</span>         configure.args-replace \
                     -DBUILD_opencv_apps:BOOL=ON \
                     -DBUILD_opencv_apps:BOOL=OFF
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>         configure.args-replace \
                     -DBUILD_opencv_aruco:BOOL=ON \
                     -DBUILD_opencv_aruco:BOOL=OFF
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        
</span>         configure.args-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    -DINSTALL_PYTHON_EXAMPLES:BOOL=ON \
</span>                     -DPYTHON3_EXECUTABLE=${prefix}/bin/python${python_branch} \
                     -DPYTHON3_LIBRARY=${frameworks_dir}/Python.framework/Versions/${python_branch}/lib/libpython${python_branch}.dylib \
                     -DPYTHON3_INCLUDE_DIR=${frameworks_dir}/Python.framework/Versions/${python_branch}/Headers \
                     -DPYTHON3_PACKAGES_PATH=${frameworks_dir}/Python.framework/Versions/${python_branch}/lib/python${python_branch}/site-packages
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        # Deconflict with port:opencv4 contents
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Deconflict with parent port contents
</span>         post-destroot {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            opencv4_post_destroot
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            foreach f [exec port contents ${name}] {
</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>                 delete ${destroot}${f}
             }
         }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -278,11 +304,46 @@ foreach python_branch ${python_branches} {
</span> }
 
 if {${name} eq ${subport}} {
<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 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        conflicts with opencv.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    notes \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "* ${subport} binaries are now prefixed with '${subport}_', to prevent conflicts\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        with other OpenCV-related ports." \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "* Python bindings are now implemented via subports 'pyXX-${subport}',\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        to support multiple Python versions side-by-side."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant eigen description {Enable eigen support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:eigen3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_EIGEN:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_EIGEN:BOOL=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DEIGEN_INCLUDE_PATH:PATH=${prefix}/include/eigen3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        opencv4 libraries have changed from static to dynamic.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant gdal description {Include GDAL support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:gdal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_GDAL:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_GDAL:BOOL=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant nonfree description {Include nonfree algorithms} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_ENABLE_NONFREE:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DOPENCV_ENABLE_NONFREE:BOOL=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant opencl description {Enable OpenCL support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        pre-configure {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {${os.platform} eq "darwin" && ${os.major} < 11} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ui_error "The OpenCL variant only works with OS X 10.7 Lion or later."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                return -code error "incompatible OS X version"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENCL:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -DWITH_OPENCL:BOOL=ON
</span>     }
 
     variant openmp description {Include OpenMP support} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -304,12 +365,6 @@ if {${name} eq ${subport}} {
</span>                     -DOPENNI_LIB_DIR:PATH=${prefix}/lib
     }
 
<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:#ffe0e0;'>-
</span>     # Respect legacy variant name 'opencv_contrib', and replace with 'contrib'
     if {[variant_isset opencv_contrib]} {
         ui_debug "Legacy variant 'opencv_contrib' set; enabling 'contrib'"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -396,63 +451,55 @@ if {${name} eq ${subport}} {
</span>                     -DWITH_VTK:BOOL=OFF \
                     -DWITH_VTK:BOOL=ON
     }
<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 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:#ffe0e0;'>-
</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:#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:BOOL=OFF \
                     -DBUILD_TESTS:BOOL=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:BOOL=OFF \
                     -DBUILD_PERF_TESTS:BOOL=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: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;'>-proc opencv4_move_binaries {p_bin_main_dir p_bin_port_dir} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc opencv_move_binaries {p_bin_main_dir p_bin_port_dir} {
</span>     set bin_main_files \
         [glob -nocomplain -type f \
             -directory ${p_bin_main_dir} \
             *]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    ui_debug "opencv4_move_binaries: bin_main_files: ${bin_main_files}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ui_debug "opencv_move_binaries: bin_main_files: ${bin_main_files}"
</span> 
     foreach f ${bin_main_files} {
         set fn [file tail ${f}]
         set f_dest "${p_bin_port_dir}/${fn}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        ui_debug "opencv4_move_binaries: moving file: ${f} -> ${f_dest}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "opencv_move_binaries: moving file: ${f} -> ${f_dest}"
</span>         move ${f} ${f_dest}
     }
 
     return 0
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-proc opencv4_soft_link_binaries {p_bin_main_dir p_bin_port_dir p_destroot p_prefix} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc opencv_soft_link_binaries {p_bin_main_dir p_bin_port_dir p_destroot p_prefix p_subport} {
</span>     set bin_prefix_old "opencv_"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set bin_prefix_new "opencv4_"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set bin_prefix_new "${p_subport}_"
</span>     set bin_port_files \
         [glob -nocomplain -type f \
             -directory ${p_bin_port_dir} \
             *]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    ui_debug "opencv4_soft_link_binaries: bin_port_files: ${bin_port_files}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ui_debug "opencv_soft_link_binaries: bin_port_files: ${bin_port_files}"
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Links: Remove prefix 'opencv_', if any; add prefix 'opencv4_'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Links: Remove prefix 'opencv_', if any; add prefix '<subport>_'.
</span>     foreach f ${bin_port_files} {
         set fn [file tail ${f}]
         set fn_new \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -461,38 +508,41 @@ proc opencv4_soft_link_binaries {p_bin_main_dir p_bin_port_dir p_destroot p_pref
</span>             [regsub ***=${p_destroot} ${f} ""]
         set f_link \
             "${p_bin_main_dir}/${bin_prefix_new}${fn_new}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        ui_debug "opencv4_soft_link_binaries: soft-linking file: ${f_link} -> ${f_dest}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "opencv_soft_link_binaries: soft-linking file: ${f_link} -> ${f_dest}"
</span>         ln -s ${f_dest} ${f_link}
     }
 
     return 0
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-proc opencv4_post_destroot {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc opencv_post_destroot {} {
</span>     global prefix
     global destroot
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    global physical_subport_name
</span> 
     set bin_main_dir \
                     "${destroot}${prefix}/bin"
     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/${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 opencv4 bin area.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    opencv4_move_binaries \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    opencv_move_binaries \
</span>                     ${bin_main_dir} \
                     ${bin_port_dir}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Create soft links for binaries, each prefixed with 'opencv4_'.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    opencv4_soft_link_binaries \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Create soft links for binaries, each prefixed with '<physical_subport_name>_'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    opencv_soft_link_binaries \
</span>                     ${bin_main_dir} \
                     ${bin_port_dir} \
                     ${destroot} \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    ${prefix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${prefix} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${physical_subport_name}
</span> }
 
 post-destroot {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    opencv4_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> }
 
 if {[string match "py*" ${subport}]} {
</pre><pre style='margin:0'>

</pre>