Option to enable/disable plugin linking with OpenCV
authorMaksim Shabunin <maksim.shabunin@gmail.com>
Fri, 13 Aug 2021 11:20:32 +0000 (14:20 +0300)
committerMaksim Shabunin <maksim.shabunin@intel.com>
Tue, 1 Feb 2022 11:53:15 +0000 (14:53 +0300)
cmake/OpenCVPluginStandalone.cmake

index 15b7a80..129ede1 100644 (file)
@@ -78,10 +78,17 @@ function(ocv_create_plugin module default_name dependency_target dependency_targ
     set_target_properties(${OPENCV_PLUGIN_NAME} PROPERTIES PREFIX "${OPENCV_PLUGIN_MODULE_PREFIX}")
   endif()
 
-  if(APPLE)
-    set_target_properties(${OPENCV_PLUGIN_NAME} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
-  elseif(WIN32)
-    # Hack for Windows only, Linux/MacOS uses global symbol table (without exact .so binding)
+  if(WIN32 OR NOT APPLE)
+    set(OPENCV_PLUGIN_NO_LINK FALSE CACHE BOOL "")
+  else()
+    set(OPENCV_PLUGIN_NO_LINK TRUE CACHE BOOL "")
+  endif()
+
+  if(OPENCV_PLUGIN_NO_LINK)
+    if(APPLE)
+      set_target_properties(${OPENCV_PLUGIN_NAME} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
+    endif()
+  else()
     find_package(OpenCV REQUIRED ${module} ${OPENCV_PLUGIN_DEPS})
     target_link_libraries(${OPENCV_PLUGIN_NAME} PRIVATE ${OpenCV_LIBRARIES})
   endif()