FindwxWidgets¶
查找 wxWidgets 安装并提供项目使用的必要要求。
find_package(wxWidgets [<version>] [COMPONENTS <components>...] [...])
wxWidgets(以前称为 wxWindows)是一个用于创建跨平台应用程序图形用户界面 (GUI) 的小部件工具包和工具库。
在版本 3.4 中添加: 对 find_package() 版本参数的支持。
在版本 3.14 中添加: OPTIONAL_COMPONENTS 支持。
组件¶
wxWidgets 是一个模块化库。此模块支持组件以指定要使用的模块。组件可以通过 find_package() 命令指定。
find_package(
wxWidgets
[COMPONENTS <components>...]
[OPTIONAL_COMPONENTS <components>...]
)
支持的组件包括
base查找提供任何 wxWidgets 代码都依赖的强制性类的库。此组件对于实现 wxWidgets 的应用程序始终是必需的。
core查找提供基本 GUI 类(如 GDI 类或控件)的库。
gl查找 OpenGL 支持。
mono查找 wxWidgets 单体库。
aui查找高级用户界面停靠库。
net查找提供网络访问的库。
webview3.4 版本新增。
查找提供 Web 文档(HTML/CSS/JavaScript)渲染的库。
有关支持的 wxWidgets 组件的完整列表,请参阅上游文档。
如果未指定任何组件,此模块默认会搜索 core 和 base 组件。
导入的目标¶
此模块提供以下 导入目标
wxWidgets::wxWidgets在 3.27 版本中新增。
一个接口导入目标,封装了找到的组件的 wxWidgets 使用要求,如果找到 wxWidgets 则可用。
结果变量¶
此模块定义了以下变量
wxWidgets_FOUND布尔值,指示是否找到了(请求版本)的 wxWidgets 及其所有请求的组件。
wxWidgets_VERSION版本 4.2 中添加。
找到的 wxWidgets 的版本。
wxWidgets_INCLUDE_DIRSWIN32 的包含目录,即查找 `
<wx/wx.h>和 `<wx/setup.h>的位置;在类 Unix 系统上可能为空。wxWidgets_LIBRARIESwxWidgets 库的路径。
wxWidgets_LIBRARY_DIRS编译时链接目录,在类 Unix 系统上用于设置
rpath。在 WIN32 环境中通常为空字符串。wxWidgets_DEFINITIONS包含编译/链接 WX 所需的编译定义,例如
WXUSINGDLL。wxWidgets_DEFINITIONS_DEBUG包含编译/链接 WX 调试版本所需的编译定义,例如
__WXDEBUG__。wxWidgets_CXX_FLAGS类 Unix 系统的包含目录和编译器标志,在 Windows 上为空。本质上是
wx-config --cxxflags的输出。
提示¶
此模块在调用 find_package(wxWidgets) 之前接受以下变量。
WX_CONFIG3.11 版本新增。
环境变量,用于手动指定 wxWidgets 库配置提供程序可执行文件的名称,除了默认名称 `
wx-config` 之外进行搜索。WXRC_CMD3.11 版本新增。
环境变量,用于手动指定 wxWidgets 资源文件编译器可执行文件的名称,除了默认名称 `
wxrc` 之外进行搜索。
有两个搜索分支:Windows 风格和类 Unix 风格。对于 Windows,会搜索以下变量,并在有多个选择时设置为默认值。如果不希望使用默认值,请更改它们(即,这是唯一应该更改以选择配置的变量)。
wxWidgets_ROOT_DIRwxWidgets 的基目录(例如,
C:/wxWidgets-3.2.0)。wxWidgets_LIB_DIRwxWidgets 库的路径(例如,
C:/wxWidgets-3.2.0/lib/vc_x64_lib)。wxWidgets_CONFIGURATION要使用的配置(例如,msw、mswd、mswu、mswunivud 等)。
wxWidgets_EXCLUDE_COMMON_LIBRARIES设置为 TRUE 以排除链接常用必需库(例如,png、tiff、jpeg、zlib、webp、regex、expat、scintilla、lexilla 等)。
对于类 Unix 风格,此模块使用 `wx-config` 工具。通过打开/关闭以下变量,可以在 QtDialog 或 ccmake 界面中选择调试/发布、Unicode/ANSI、通用/非通用和静态/共享。
wxWidgets_USE_DEBUG如果启用,将搜索 wxWidgets 调试版本。
wxWidgets_USE_UNICODE如果启用,将搜索 wxWidgets Unicode 版本。
wxWidgets_USE_UNIVERSAL如果启用,将搜索 wxWidgets 通用版本。
wxWidgets_USE_STATIC如果启用,将链接静态 wxWidgets 库。
wxWidgets_CONFIG_OPTIONS此变量可用于传递给 wx-config 工具的所有其他选项。例如,要在系统安装前缀 `/usr` 处使用找到的 base 工具集,请在调用(在调用
find_package()命令之前)设置变量,如下所示。set(wxWidgets_CONFIG_OPTIONS --toolkit=base --prefix=/usr)
已弃用变量¶
以下变量提供用于向后兼容性
wxWidgets_VERSION_STRING自版本 4.2 起已弃用: 使用
wxWidgets_VERSION,它具有相同的值。3.4 版本新增。
找到的 wxWidgets 的版本。
wxWidgets_USE_FILE自版本 4.2 起已弃用: 与其使用此变量,不如直接包含
UsewxWidgets模块。include(UsewxWidgets)
指向
UsewxWidgets模块的路径,用于在当前目录中使用 wxWidgets。例如:find_package(wxWidgets) if(wxWidgets_FOUND) include(${wxWidgets_USE_FILE}) endif()
示例¶
示例:查找 wxWidgets¶
查找 wxWidgets 并使其成为必需的(如果找不到 wxWidgets,则处理将停止并显示错误消息)
find_package(wxWidgets REQUIRED)
示例:使用导入的目标¶
查找 wxWidgets 并在项目中导入目标
find_package(wxWidgets)
target_link_libraries(example PRIVATE wxWidgets::wxWidgets)
示例:使用组件¶
查找 wxWidgets 并指定组件
find_package(wxWidgets COMPONENTS gl core base OPTIONAL_COMPONENTS net)
target_link_libraries(example PRIVATE wxWidgets::wxWidgets)
示例:单体 wxWidgets 构建¶
使用单体 wxWidgets 构建的示例用法
find_package(wxWidgets COMPONENTS mono)
target_link_libraries(example PRIVATE wxWidgets::wxWidgets)
示例:使用变量¶
在导入的目标可用之前的 CMake 版本 3.27 之前查找和使用 wxWidgets
# Note that for MinGW users the order of libs is important.
find_package(wxWidgets COMPONENTS gl core base OPTIONAL_COMPONENTS net)
if(wxWidgets_FOUND)
include(UsewxWidgets)
# and for each of the project dependent executable/library targets:
target_link_libraries(example ${wxWidgets_LIBRARIES})
endif()