cmake: add OPENCV_ENABLE_NONFREE option and macro
authorAlexander Alekhin <alexander.alekhin@intel.com>
Thu, 4 Aug 2016 16:23:49 +0000 (19:23 +0300)
committerAlexander Alekhin <alexander.alekhin@intel.com>
Thu, 4 Aug 2016 16:23:49 +0000 (19:23 +0300)
CMakeLists.txt
cmake/templates/opencv_modules.hpp.in
modules/core/include/opencv2/core/base.hpp

index 317edbb..5e575bd 100644 (file)
@@ -164,6 +164,8 @@ endif()
 # OpenCV cmake options
 # ----------------------------------------------------------------------------
 
+OCV_OPTION(OPENCV_ENABLE_NONFREE "Enable non-free algorithms" OFF)
+
 # Optional 3rd party components
 # ===================================================
 OCV_OPTION(WITH_1394           "Include IEEE1394 support"                    ON   IF (NOT ANDROID AND NOT IOS AND NOT WINRT) )
@@ -914,6 +916,11 @@ status("    Disabled:"               OPENCV_MODULES_DISABLED_USER  THEN ${OPENCV
 status("    Disabled by dependency:" OPENCV_MODULES_DISABLED_AUTO  THEN ${OPENCV_MODULES_DISABLED_AUTO_ST}  ELSE "-")
 status("    Unavailable:"            OPENCV_MODULES_DISABLED_FORCE THEN ${OPENCV_MODULES_DISABLED_FORCE_ST} ELSE "-")
 
+if(OPENCV_ENABLE_NONFREE)
+  status("")
+  status("  Non-free algorithms are enabled")
+endif()
+
 # ========================== Android details ==========================
 if(ANDROID)
   status("")
index 1498715..6696bb4 100644 (file)
@@ -6,4 +6,8 @@
  *
 */
 
+// This definition means that OpenCV is built with enabled non-free code.
+// For example, patented algorithms for non-profit/non-commercial use only.
+#cmakedefine OPENCV_ENABLE_NONFREE
+
 @OPENCV_MODULE_DEFINITIONS_CONFIGMAKE@
index ed633f5..0432ccb 100644 (file)
@@ -49,6 +49,8 @@
 #  error base.hpp header must be compiled as C++
 #endif
 
+#include "opencv2/opencv_modules.hpp"
+
 #include <climits>
 #include <algorithm>