FindGTK2¶
查找 GTK 窗口小部件库及其一些其他可选组件。
GTK 是一个用于创建图形用户界面的多平台工具包。
注意
此模块专门用于 GTK 2.x 版本,该版本已过时且不再维护。请使用最新支持的 GTK 版本和 FindPkgConfig
模块在 CMake 中查找 GTK,而不是使用此模块。例如
find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk4>=4.14)
target_link_libraries(example PRIVATE PkgConfig::GTK)
组件¶
此模块支持可选组件,可以使用 find_package()
命令指定
find_package(GTK2 [COMPONENTS <components>...])
支持的组件包括
|
|
在 3.16.7 版本中新增:
harfbuzz
如果未指定组件,模块默认搜索 gtk
组件。
导入的目标¶
此模块提供以下导入目标(取决于组件选择)
GTK2::<组件>
封装指定 GTK 组件使用要求的目标,如果找到 GTK 和此组件,则可用。
<组件>
应以与上面列出的相同的大小写书写。例如,gtk
组件使用GTK2::gtk
,gdk_pixbuf
组件使用GTK2::gdk_pixbuf
,等等。GTK2::sigc++
3.5 版本新增。
封装使用 sigc++ 2.5.1 或更高版本时在其依赖项上启用 c++11 的使用要求的目标。此目标会根据需要自动应用于依赖目标。
结果变量¶
此模块定义了以下变量
GTK2_FOUND
布尔值,指示是否找到 GTK 和所有指定组件。
GTK2_VERSION
找到的 GTK 版本 (x.y.z)。
GTK2_MAJOR_VERSION
找到的 GTK 主版本。
GTK2_MINOR_VERSION
找到的 GTK 次版本。
GTK2_PATCH_VERSION
找到的 GTK 补丁版本。
GTK2_INCLUDE_DIRS
包含使用 GTK 所需头文件的包含目录。
GTK2_LIBRARIES
链接到 GTK 所需的库。
GTK2_TARGETS
3.5 版本新增。
所有已定义导入目标的列表。
GTK2_DEFINITIONS
使用 GTK 所需的额外编译器标志。
输入变量¶
在调用 find_package(GTK2)
之前,此模块接受以下可选变量
GTK2_DEBUG
布尔变量,启用此模块的详细调试输出。
GTK2_ADDITIONAL_SUFFIXES
要搜索包含文件的附加路径后缀列表。
GTK2_USE_IMPORTED_TARGETS
3.5 版本新增。
当此变量设置为布尔真时,
GTK2_LIBRARIES
变量将包含导入目标的列表,而不是库路径。
示例¶
示例:查找 GTK 版本 2¶
调用 find_package()
一次。以下是一些示例供选择。
要求 GTK 2.6 或更高版本
find_package(GTK2 2.6 REQUIRED COMPONENTS gtk)
要求 GTK 2.10 或更高版本及其 Glade 组件
find_package(GTK2 2.10 REQUIRED COMPONENTS gtk glade)
搜索 GTK/GTKMM 2.8 或更高版本
find_package(GTK2 2.8 COMPONENTS gtk gtkmm)
查找 GTK 2 并将其链接到项目目标
find_package(GTK2)
add_executable(mygui mygui.cc)
target_link_libraries(mygui PRIVATE GTK2::gtk)
示例:查找 GTK 版本 3 或更高版本¶
使用 FindPkgConfig
而非此模块查找 GTK 3
find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK3 REQUIRED IMPORTED_TARGET gtk+-3.0>=3.14)
target_link_libraries(example PRIVATE PkgConfig::GTK3)
或类似地查找 GTK 4
find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK4 REQUIRED IMPORTED_TARGET gtk4>=4.14)
target_link_libraries(example PRIVATE PkgConfig::GTK4)