diff -Nuarp opencv-4.9.0.orig/cmake/OpenCVGenConfig.cmake opencv-4.9.0/cmake/OpenCVGenConfig.cmake --- opencv-4.9.0.orig/cmake/OpenCVGenConfig.cmake 2023-12-28 00:46:55.000000000 +0800 +++ opencv-4.9.0/cmake/OpenCVGenConfig.cmake 2024-01-17 19:27:59.377215313 +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.9.0.orig/cmake/templates/OpenCVConfig.cmake.in opencv-4.9.0/cmake/templates/OpenCVConfig.cmake.in --- opencv-4.9.0.orig/cmake/templates/OpenCVConfig.cmake.in 2023-12-28 00:46:55.000000000 +0800 +++ opencv-4.9.0/cmake/templates/OpenCVConfig.cmake.in 2024-01-17 19:27:59.377215313 +0800 @@ -94,6 +94,7 @@ endif() @CUDA_CONFIGCMAKE@ +@OPENMP_CONFIGCMAKE@ @ANDROID_CONFIGCMAKE@ @IPPICV_CONFIGCMAKE@ diff -Nuarp opencv-4.9.0.orig/cmake/templates/OpenCVConfig-OPENMP.cmake.in opencv-4.9.0/cmake/templates/OpenCVConfig-OPENMP.cmake.in --- opencv-4.9.0.orig/cmake/templates/OpenCVConfig-OPENMP.cmake.in 1970-01-01 08:00:00.000000000 +0800 +++ opencv-4.9.0/cmake/templates/OpenCVConfig-OPENMP.cmake.in 2024-01-17 19:27:59.377215313 +0800 @@ -0,0 +1,5 @@ +set(OpenCV_USE_OPENMP "@HAVE_OPENMP@") + +if(OpenCV_USE_OPENMP) + find_package(OpenMP) +endif() diff -Nuarp opencv-4.9.0.orig/modules/core/CMakeLists.txt opencv-4.9.0/modules/core/CMakeLists.txt --- opencv-4.9.0.orig/modules/core/CMakeLists.txt 2023-12-28 00:46:55.000000000 +0800 +++ opencv-4.9.0/modules/core/CMakeLists.txt 2024-01-17 19:27:59.377215313 +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.9.0.orig/modules/video/CMakeLists.txt opencv-4.9.0/modules/video/CMakeLists.txt --- opencv-4.9.0.orig/modules/video/CMakeLists.txt 2023-12-28 00:46:55.000000000 +0800 +++ opencv-4.9.0/modules/video/CMakeLists.txt 2024-01-17 19:27:59.377215313 +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()