diff -Nuarp opencv-4.10.0.orig/cmake/OpenCVGenConfig.cmake opencv-4.10.0/cmake/OpenCVGenConfig.cmake --- opencv-4.10.0.orig/cmake/OpenCVGenConfig.cmake 2024-06-02 04:41:06.000000000 +0800 +++ opencv-4.10.0/cmake/OpenCVGenConfig.cmake 2024-06-04 21:00:46.778862221 +0800 @@ -19,6 +19,10 @@ if(HAVE_CUDA) endif() 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-4.10.0.orig/cmake/templates/OpenCVConfig.cmake.in opencv-4.10.0/cmake/templates/OpenCVConfig.cmake.in --- opencv-4.10.0.orig/cmake/templates/OpenCVConfig.cmake.in 2024-06-02 04:41:06.000000000 +0800 +++ opencv-4.10.0/cmake/templates/OpenCVConfig.cmake.in 2024-06-04 21:01:05.274804136 +0800 @@ -94,6 +94,7 @@ endif() @CUDA_CONFIGCMAKE@ +@OPENMP_CONFIGCMAKE@ @ANDROID_CONFIGCMAKE@ @IPPICV_CONFIGCMAKE@ diff -Nuarp opencv-4.10.0.orig/cmake/templates/OpenCVConfig-OPENMP.cmake.in opencv-4.10.0/cmake/templates/OpenCVConfig-OPENMP.cmake.in --- opencv-4.10.0.orig/cmake/templates/OpenCVConfig-OPENMP.cmake.in 1970-01-01 08:00:00.000000000 +0800 +++ opencv-4.10.0/cmake/templates/OpenCVConfig-OPENMP.cmake.in 2024-06-04 21:01:34.441712541 +0800 @@ -0,0 +1,5 @@ +set(OpenCV_USE_OPENMP "@HAVE_OPENMP@") + +if(OpenCV_USE_OPENMP) + find_package(OpenMP) +endif() diff -Nuarp opencv-4.10.0.orig/modules/core/CMakeLists.txt opencv-4.10.0/modules/core/CMakeLists.txt --- opencv-4.10.0.orig/modules/core/CMakeLists.txt 2024-06-02 04:41:06.000000000 +0800 +++ opencv-4.10.0/modules/core/CMakeLists.txt 2024-06-04 20:59:13.030307438 +0800 @@ -190,8 +190,14 @@ if(HAVE_HPX) ocv_target_link_libraries(${the_module} LINK_PRIVATE "${HPX_LIBRARIES}") endif() -if(HAVE_OPENMP AND DEFINED OpenMP_CXX_LIBRARIES AND OpenMP_CXX_LIBRARIES) - ocv_target_link_libraries(${the_module} LINK_PRIVATE "${OpenMP_CXX_LIBRARIES}") +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() ocv_add_accuracy_tests() diff -Nuarp opencv-4.10.0.orig/modules/video/CMakeLists.txt opencv-4.10.0/modules/video/CMakeLists.txt --- opencv-4.10.0.orig/modules/video/CMakeLists.txt 2024-06-02 04:41:06.000000000 +0800 +++ opencv-4.10.0/modules/video/CMakeLists.txt 2024-06-04 20:59:36.412174358 +0800 @@ -10,7 +10,3 @@ ocv_define_module(video python js ) - -if(HAVE_OPENMP AND DEFINED OpenMP_CXX_LIBRARIES AND OpenMP_CXX_LIBRARIES) - ocv_target_link_libraries(${the_module} LINK_PRIVATE "${OpenMP_CXX_LIBRARIES}") -endif()