我已经安装了OpenCV 3.0(从源代码编译而来),并使用以下方法将其包含在基于CMake的项目中:
find_package(OpenCV 3.0 REQUIRED)
使用它一切正常,但我也想使用contrib模块。我在构建OpenCV时指定了OPENCV_EXTRA_MODULES_PATH
,并确信这些模块可用(我可以在项目中使用它们),但我想在没有contrib模块的情况下禁用此功能,即编写类似以下内容的代码:
#ifdef HAVE_OPENCV_CONTRIB
// some tasty functionality
#else
// some replacement or dummies
#endif
是否有办法在我的CMakeLists.txt文件中确定它,而不需要添加显式定义?也就是说,我想在我的CMakeLists.txt文件中执行以下操作:
if (DEFINED ${OPENCV_BUILD_WITH_CONTRIB})
add_definitions(-DHAVE_OPENCV_CONTRIB)
endif(DEFINED ${OPENCV_BUILD_WITH_CONTRIB})
也许有一种简单的方法 - 在
find_package(OpenCV)
之后定义任何已定义的变量?