find_package(GTK)
如何输出内容以便我知道它是否找到了什么?
平台:Windows XP
答案 0 :(得分:11)
您可以使用message命令,如下所示:
FIND_PACKAGE(GTK) IF (${GTK_FOUND}) MESSAGE(STATUS "Found GTK.") ELSE (${GTK_FOUND}) MESSAGE(STATUS "Could not locate GTK.") ENDIF (${GTK_FOUND})
或者,如果你想在没有找到GTK的情况下中止它:
FIND_PACKAGE(GTK) IF (${GTK_FOUND}) MESSAGE(STATUS "Found GTK.") ELSE (${GTK_FOUND}) MESSAGE(FATAL_ERROR "Could not locate GTK.") ENDIF (${GTK_FOUND})
请注意,如果您执行后者,那么您可以简单地将“REQUIRED”标志与FIND_PACKAGE一起使用,因为指定“REQUIRED”标志可确保如果找不到它将失败并显示错误:
FIND_PACKAGE(GTK REQUIRED)
如果找不到GTK,上面的命令将导致CMake中止并打印错误消息。您可能还对FIND_PACKAGE中CMake Manual的文档感兴趣。此外,应该注意FIND_PACKAGE(XYZ)实际上调用CMake模块FindXYZ,因此每个具有相应FIND_PACKAGE的包都有自己的CMake模块实现查找操作...因为CMake还有点新,其中一些查找模块是没有正确实现...根据你的下面的评论,似乎FindGTK没有正确实现(因为如果它不存在,使用REQUIRED标志应该导致它中止致命错误,但不似乎在你的情况下这样做。)