假设一个CMakeList.txt
有一行find_package(Qt6 COMPONENTS Core)
但是,用户没有正确配置QT环境,所以Cmake只会显示它找不到Qt6。
我想提供一条定制消息,比如“无法找到Qt6,也许可以尝试cmake -DCMAKE_PREFIX_PATH=/path/to/qt/6.2.3/macos
”。
是否有可能实现这一目标?
发布于 2022-11-24 20:16:11
通过将QUIET
传递给find_package
调用,您可以禁用标准消息。调用之后,您可以检查*_FOUND
变量的值,以确定find_package
是否成功,并打印相应的消息。就像这样:
find_package(Qt6 QUIET COMPONENTS Core)
if (Qt6_FOUND)
# Success
message(STATUS "Found Qt6")
else()
# Fail
message(FATAL_ERROR "Cannot find Qt6, maybe try 'cmake -DCMAKE_PREFIX_PATH=/path/to/qt/6.2.3/macos'")
endif()
在else
分支中,关键字FATAL_ERROR
确保在打印消息后CMake将停止执行。当找不到所需的依赖项时,这是用于项目的标准工作流。但是,如果您的项目也是在不使用Qt6的情况下开发的,您可以省略FATAL_ERROR
并为消息调用使用任何其他关键字。
https://stackoverflow.com/questions/74559547
复制相似问题