diff -Nuarp opencv-3.4.20.orig/cmake/OpenCVGenConfig.cmake opencv-3.4.20/cmake/OpenCVGenConfig.cmake --- opencv-3.4.20.orig/cmake/OpenCVGenConfig.cmake 2023-06-27 19:29:13.000000000 +0800 +++ opencv-3.4.20/cmake/OpenCVGenConfig.cmake 2023-08-30 11:59:03.095856713 +0800 @@ -15,6 +15,10 @@ if(HAVE_CUDA) ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-CUDA.cmake.in" CUDA_CONFIGCMAKE @ONLY) endif() +if(HAVE_OPENMP) + ocv_cmake_configure("${CMAKE_CURRENT_LIST_DIR}/templates/OpenCVConfig-OPENMP.cmake.in" OPENMP_CONFIGCMAKE @ONLY) +endif() + if(ANDROID) if(NOT ANDROID_NATIVE_API_LEVEL) set(OpenCV_ANDROID_NATIVE_API_LEVEL_CONFIGCMAKE 0) diff -Nuarp opencv-3.4.20.orig/cmake/templates/OpenCVConfig.cmake.in opencv-3.4.20/cmake/templates/OpenCVConfig.cmake.in --- opencv-3.4.20.orig/cmake/templates/OpenCVConfig.cmake.in 2023-06-27 19:29:13.000000000 +0800 +++ opencv-3.4.20/cmake/templates/OpenCVConfig.cmake.in 2023-08-30 11:59:19.223817499 +0800 @@ -94,6 +94,7 @@ endif() @CUDA_CONFIGCMAKE@ +@OPENMP_CONFIGCMAKE@ @ANDROID_CONFIGCMAKE@ @IPPICV_CONFIGCMAKE@ diff -Nuarp opencv-3.4.20.orig/cmake/templates/OpenCVConfig-OPENMP.cmake.in opencv-3.4.20/cmake/templates/OpenCVConfig-OPENMP.cmake.in --- opencv-3.4.20.orig/cmake/templates/OpenCVConfig-OPENMP.cmake.in 1970-01-01 08:00:00.000000000 +0800 +++ opencv-3.4.20/cmake/templates/OpenCVConfig-OPENMP.cmake.in 2023-08-30 11:58:12.298980226 +0800 @@ -0,0 +1,5 @@ +set(OpenCV_USE_OPENMP "@HAVE_OPENMP@") + +if(OpenCV_USE_OPENMP) + find_package(OpenMP) +endif() diff -Nuarp opencv-3.4.20.orig/modules/core/CMakeLists.txt opencv-3.4.20/modules/core/CMakeLists.txt --- opencv-3.4.20.orig/modules/core/CMakeLists.txt 2023-06-27 19:29:13.000000000 +0800 +++ opencv-3.4.20/modules/core/CMakeLists.txt 2023-08-30 12:13:56.534064133 +0800 @@ -113,6 +113,16 @@ ocv_target_link_libraries(${the_module} "${OPENCV_HAL_LINKER_LIBS}" ) +if(HAVE_OPENMP) + if(ANDROID_NDK_MAJOR AND (ANDROID_NDK_MAJOR GREATER 20)) + ocv_target_link_libraries(${the_module} PUBLIC "-fopenmp" "-static-openmp") + elseif(OpenMP_CXX_FOUND) + ocv_target_link_libraries(${the_module} PUBLIC OpenMP::OpenMP_CXX) + else() + ocv_target_link_libraries(${the_module} PUBLIC "${OpenMP_CXX_FLAGS}") + endif() +endif() + if(OPENCV_CORE_EXCLUDE_C_API) ocv_target_compile_definitions(${the_module} PRIVATE "OPENCV_EXCLUDE_C_API=1") endif()