find_package() - 如果可用则使用旧版本,否则使用更新版本

时间:2017-10-02 05:48:42

标签: opencv cmake

有标准的CMake命令:

find_package(OpenCV REQUIRED)

安装v2和v3时,将选择v3。

现在,由于各种问题,我想使用OpenCV v2(如果可用),但如果没有,请转到OpenCV v3。不幸的是,这不是一个有效的关键字:

find_package(OpenCV 2 AT_LEAST)

一种解决方案可能是:

find_package(OpenCV 2 REQUIRED)
if (NOT OpenCV_FOUND)
    find_package(OpenCV 3 REQUIRED)
endif()

有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

一些基于您的解决方案

find_package(OpenCV 2 EXACT QUIET)
if (NOT OpenCV_FOUND)
    message(STATUS "OpenCV v2 not found. Trying to find OpenCV v3")
    find_package(OpenCV 3 REQUIRED)
endif()