FindGTK2¶
注意
此模块专门针对 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)
查找 GTK 小部件库及其多个其他可选组件
find_package(GTK2 [<version>] [COMPONENTS <components>...] [...])
GTK 是一个用于创建图形用户界面的跨平台工具包。
组件¶
此模块支持可选组件,这些组件可以通过 find_package() 命令指定
find_package(GTK2 [COMPONENTS <components>...])
支持的组件包括
|
|
3.16.7 版本新增:
harfbuzz
如果未指定任何组件,则模块默认搜索 gtk 组件。
导入的目标¶
此模块提供以下 导入目标(取决于组件选择)
GTK2::<component>封装指定的 GTK 组件使用要求的目标,如果找到 GTK 和该组件则可用。<component> 应与上面列出的顺序和大小写相同。例如,使用
GTK2::gtk来表示gtk组件,或者使用GTK2::gdk_pixbuf来表示gdk_pixbuf组件,依此类推。GTK2::sigc++3.5 版本新增。
封装使用 sigc++ 2.5.1 或更高版本时,在依赖项上启用 c++11 的使用要求的目标。此目标会在需要时自动应用于依赖项目标。
结果变量¶
此模块定义了以下变量
GTK2_FOUND布尔值,指示是否找到(请求版本的)GTK 2 和所有指定的组件。
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_TARGETS3.5 版本新增。
所有已定义导入目标的列表。
GTK2_DEFINITIONS使用 GTK 所需的附加编译器标志。
输入变量¶
此模块在调用 find_package(GTK2) 之前接受以下可选变量
GTK2_DEBUG布尔变量,启用此模块的详细调试输出。
GTK2_ADDITIONAL_SUFFIXES用于搜索头文件的附加路径后缀列表。
GTK2_USE_IMPORTED_TARGETS3.5 版本新增。
当此变量设置为布尔值 true 时,
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)