【发布时间】:2010-04-26 08:14:33
【问题描述】:
这是FindGTK.cmake:
# don't even bother under WIN32
IF(UNIX)
...
ENDIF(UNIX)
所以它根本不打算在 Windows 中工作,即使我已经在几天前安装了 gtk+-bundle_2.20.0-20100406_win32。
我现在应该如何正确使用gtk 和cmake?
【问题讨论】:
这是FindGTK.cmake:
# don't even bother under WIN32
IF(UNIX)
...
ENDIF(UNIX)
所以它根本不打算在 Windows 中工作,即使我已经在几天前安装了 gtk+-bundle_2.20.0-20100406_win32。
我现在应该如何正确使用gtk 和cmake?
【问题讨论】:
鉴于您使用的是 GTK 2.20.0(即版本 >= 2),您应该使用 GTK2 而不是 GTK。但是,如果 FindGTK2 有同样的问题,那么你可以使用find_path 来定位头文件,你可以使用find_library 来定位相关的库文件。将它们放在一起,您可以构造它应该生成的符号 GTK2_FOUND、GTK2_LIBRARIES 和 GTK2_INCLUDE_DIRS。您可能会发现我的FindUnitTestPlusPlus.cmake 文件有点帮助;它使用“FindPackageHandleStandardArgs”,它负责确保在库不存在并且给出 REQUIRED 标志时确保失败的细节。不幸的是,关于创建自定义 FindXYZ.cmake 模块的文档并不多。但是,我认为您应该能够从现有模块中一起破解一些东西。
另一种选择是联系该特定模块的维护者。可以在链接中找到list of CMake find module maintainers。 Philip Lowman 是 FindGTK2 模块的首选人。
【讨论】:
FindGTK2.cmake,但是如何在不删除或替换为我自己的文件的情况下覆盖内置的呢?
FindGTK2.cmake 比我想象的要难...我怎样才能手动包含gtk2 的头文件和库而不是写FindGTK2.cmake?