我正在尝试创建CMakeLists.txt
文件,尝试查找Qt5
,如果失败,请尝试回退到Qt4
安装。该脚本到目前为止工作,但如果未安装Qt5
,我将始终收到警告。
请注意,FindQt5.cmake
由Qt5
提供,如果仅安装了Qt4
则无法使用。
基本结构是这样的:
cmake_minimum_required(VERSION 2.8.11)
message("-- Searching for Qt5")
find_package(Qt5 COMPONENTS Core Xml Network)
if (Qt5_FOUND)
message("-- Searching for Qt5 - found version ${Qt5Core_VERSION}")
else (Qt5_FOUND)
message("-- Searching for Qt5 - not found")
# ...
endif (Qt5_FOUND)
未安装(或未正确设置)Qt5
的情况下的警告消息如下:
不在CMAKE_MODULE_PATH这个项目中提供“FindQt5.cmake” 已经要求CMake找到提供的包配置文件 “Qt5”,但是CMake没有找到。
找不到“Qt5”提供的包配置文件 以下任何名称:
Qt5Config.cmake
QT5-config.cmake将“Qt5”的安装前缀添加到CMAKE_PREFIX_PATH或设置 “Qt5_DIR”到包含上述文件之一的目录。如果 “Qt5”提供了一个单独的开发包或SDK,确保它有 已安装。
有没有办法抑制此警告?
我还会接受其他方法来检测是否安装了Qt5
。
答案 0 :(得分:4)
为了取消警告,可以使用QUIET
关键字:
find_package(Qt5 COMPONENTS Core Xml Network QUIET)
答案 1 :(得分:0)
find_package
有CONFIG
和MODULE
个参数告诉cmake如何搜索包。
http://www.cmake.org/cmake/help/v3.0/command/find_package.html
http://www.cmake.org/cmake/help/v3.0/manual/cmake-packages.7.html
添加CONFIG
关键字。