<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/92ea667bfc05f6fbf7036991567f39d8669987f3">https://github.com/macports/macports-ports/commit/92ea667bfc05f6fbf7036991567f39d8669987f3</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 92ea667bfc05f6fbf7036991567f39d8669987f3
</span>Author: Sergey Fedorov <barracuda@macos-powerpc.org>
AuthorDate: Mon Sep 2 16:40:34 2024 +0800
<span style='display:block; white-space:pre;color:#404040;'> opencv4: fix build on powerpc
</span>---
graphics/opencv4/Portfile | 31 +++++++++
graphics/opencv4/files/patch-disable-cocoa.diff | 79 ++++++++++++++++++++++
.../opencv4/files/patch-expose-gtk-choice.diff | 15 ++++
3 files changed, 125 insertions(+)
<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 9bbdc09bbbf..fa28aa41665 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;'>@@ -360,6 +360,37 @@ platform darwin {
</span> -DWITH_AVFOUNDATION:BOOL=ON \
-DWITH_AVFOUNDATION:BOOL=OFF
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Isolate PowerPC-specific fixes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ platform darwin powerpc {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # For now just disable, it is broken.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # window_cocoa.mm: error: expected ';' before 'in'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # window_cocoa.mm: error: no matching function for call to 'max(CGFloat&, double)'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # window_cocoa.mm: error: ivar 'image' used by '@synthesize' declaration must be an existing ivar
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # TODO: forward-port working code from opencv3.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patch-disable-cocoa.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # The code uses libdispatch unconditionally.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:libdispatch-legacy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.cppflags-prepend \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -I${prefix}/libexec/dispatch/usr/include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.ldflags-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${prefix}/libexec/dispatch/usr/lib/libdispatch.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # There are invalid conversion errors in non-Eigen fallbacks which require -fpermissive:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # essential_solver.cpp: error: invalid conversion from 'int*' to '__CLPK_integer*' {aka 'long int*'} [-fpermissive]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Unfortunately, enabling Eigen variant introduces another error:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # /System/Library/Frameworks/vecLib.framework/Headers/vecLibTypes.h:69:26:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # error: two or more data types in declaration of 'vBool32'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.cxxflags-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -fpermissive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Cocoa is broken, enable at least GTK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_variants-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ +gtk3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
# Python Bindings
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/opencv4/files/patch-disable-cocoa.diff b/graphics/opencv4/files/patch-disable-cocoa.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..be9a0285f6c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/opencv4/files/patch-disable-cocoa.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,79 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- cmake/OpenCVFindLibsGUI.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ cmake/OpenCVFindLibsGUI.cmake 2024-09-02 12:52:38.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -89,6 +89,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # --- Cocoa ---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(NOT IOS AND CV_CLANG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- set(HAVE_COCOA YES)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# set(HAVE_COCOA YES)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- modules/highgui/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ modules/highgui/CMakeLists.txt 2024-09-02 13:51:35.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -123,9 +123,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elseif(HAVE_GTK OR HAVE_GTK3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ list(APPEND highgui_srcs ${CMAKE_CURRENT_LIST_DIR}/src/window_gtk.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-elseif(HAVE_COCOA)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- list(APPEND highgui_srcs ${CMAKE_CURRENT_LIST_DIR}/src/window_cocoa.mm)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- list(APPEND HIGHGUI_LIBRARIES "-framework Cocoa")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(TRUE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- modules/highgui/src/window.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ modules/highgui/src/window.cpp 2024-09-02 14:30:57.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -62,8 +62,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cvSetModeWindow_W32(name,prop_value);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined (HAVE_GTK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cvSetModeWindow_GTK(name,prop_value);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- #elif defined (HAVE_COCOA)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cvSetModeWindow_COCOA(name,prop_value);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined (WINRT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cvSetModeWindow_WinRT(name, prop_value);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -87,8 +85,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // nothing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(HAVE_WIN32UI)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cvSetPropTopmost_W32(name, (prop_value != 0 ? true : false));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- #elif defined(HAVE_COCOA)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cvSetPropTopmost_COCOA(name, (prop_value != 0 ? true : false));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -112,8 +108,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return cvGetModeWindow_W32(name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined (HAVE_GTK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return cvGetModeWindow_GTK(name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- #elif defined (HAVE_COCOA)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return cvGetModeWindow_COCOA(name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined (WINRT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return cvGetModeWindow_WinRT(name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -175,8 +169,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(HAVE_WIN32UI)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return cvGetPropTopmost_W32(name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- #elif defined(HAVE_COCOA)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return cvGetPropTopmost_COCOA(name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -198,8 +190,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return cvGetWindowRect_W32(name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined (HAVE_GTK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return cvGetWindowRect_GTK(name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- #elif defined (HAVE_COCOA)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return cvGetWindowRect_COCOA(name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return cv::Rect(-1, -1, -1, -1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -601,7 +591,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined (HAVE_WIN32UI) // see window_w32.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined (HAVE_GTK) // see window_gtk.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#elif defined (HAVE_COCOA) // see window_cocoa.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined (HAVE_QT) // see window_QT.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined (WINRT) && !defined (WINRT_8_0) // see window_winrt.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/opencv4/files/patch-expose-gtk-choice.diff b/graphics/opencv4/files/patch-expose-gtk-choice.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..d82300c8218
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/opencv4/files/patch-expose-gtk-choice.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- CMakeLists.txt 2021-10-09 02:31:56.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ CMakeLists.txt 2024-07-17 01:29:42.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -274,10 +274,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ VISIBLE_IF TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ VERIFY HAVE_GSTREAMER AND GSTREAMER_BASE_VERSION VERSION_LESS "1.0")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OCV_OPTION(WITH_GTK "Include GTK support" ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- VISIBLE_IF UNIX AND NOT APPLE AND NOT ANDROID
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ VISIBLE_IF UNIX AND NOT ANDROID
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ VERIFY HAVE_GTK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OCV_OPTION(WITH_GTK_2_X "Use GTK version 2" OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- VISIBLE_IF UNIX AND NOT APPLE AND NOT ANDROID
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ VISIBLE_IF UNIX AND NOT ANDROID
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ VERIFY HAVE_GTK AND NOT HAVE_GTK3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OCV_OPTION(WITH_IPP "Include Intel IPP support" (NOT MINGW AND NOT CV_DISABLE_OPTIMIZATION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ VISIBLE_IF (X86_64 OR X86) AND NOT WINRT AND NOT IOS
</span></pre><pre style='margin:0'>
</pre>