LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File fix_processor_detection_for_32bit_on_64bit.patch of Package opencv (Project openSUSE:Factory)

diff --git a/cmake/OpenCVDetectCXXCompiler.cmake b/cmake/OpenCVDetectCXXCompiler.cmake
index 8c9ff03..4bedf51 100644
--- a/cmake/OpenCVDetectCXXCompiler.cmake
+++ b/cmake/OpenCVDetectCXXCompiler.cmake
@@ -83,6 +83,7 @@ if(WIN32 AND CV_GCC)
   endif()
 endif()
 
+message(STATUS "Detected processor: ${CMAKE_SYSTEM_PROCESSOR}")
 if(MSVC64 OR MINGW64)
   set(X86_64 1)
 elseif(MINGW OR (MSVC AND NOT CMAKE_CROSSCOMPILING))
@@ -101,11 +102,17 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64")
   set(PPC64 1)
 endif()
 
-# Workaround for 32-bit operating systems on 64-bit x86_64 processor
-if(X86_64 AND CMAKE_SIZEOF_VOID_P EQUAL 4 AND NOT FORCE_X86_64)
-  message(STATUS "sizeof(void) = 4 on x86 / x86_64 processor. Assume 32-bit compilation mode (X86=1)")
-  unset(X86_64)
-  set(X86 1)
+# Workaround for 32-bit operating systems on x86_64/aarch64 processor
+if(CMAKE_SIZEOF_VOID_P EQUAL 4 AND NOT FORCE_X86_64)
+  message(STATUS "sizeof(void) = 4 on 64 bit processor. Assume 32-bit compilation mode")
+  if (X86_64)
+    unset(X86_64)
+    set(X86 1)
+  endif()
+  if (AARCH64)
+    unset(AARCH64)
+    set(ARM 1)
+  endif()
 endif()
 
 # Similar code exists in OpenCVConfig.cmake