qt - 如何列出 Qt5 的所有 CMake 组件?
问题描述
我知道在 CMake 中我可以找到并需要我需要的 Qt5 库,代码如下:
find_package(Qt5 5.12.0 REQUIRED
COMPONENTS Gui Qml QuickControls2 Svg
)
但是我怎么知道我可以列出的确切名字COMPONENTS
呢?
解决方案
组件名称由包解释(这里:Qt5),而不是 CMake 本身(参见参考资料)。所以他们的命名方案是特定于包的。在 Qt5 的情况下,${QT5_DIR}/lib/cmake/Qt5/Qt5Config.cmake
表明它们的名称与 CMake 模块名称相同,但没有Qt5
前缀:
foreach(module ${Qt5_FIND_COMPONENTS})
find_package(Qt5${module} ... )
...
endforeach()
因此,要列出所有组件名称,只需列出 CMake 模块(从相应的ModuleNameConfig.cmake
文件名派生)并省略Qt5
前缀。在 Linux 下,这可以完成工作并将输出分类为列:
find /path/to/your/qt5/ -name "*Config.cmake" |
sed 's/^.*\/Qt5//; s/Config.cmake$//; /^\s*$/d' |
sort | pr -t -3
从 Qt 5.12 开始,这列出了COMPONENT
如下名称:
3DAnimation Help QuickWidgets
3DCore LinguistTools RemoteObjects
3DExtras Location RepParser
3DInput Multimedia Scxml
3DLogic MultimediaWidgets Sensors
3DQuick Network SerialPort
3DQuickAnimation Nfc Sql
3DQuickExtras OpenGL Svg
3DQuickInput OpenGLExtensions Test
3DQuickRender Positioning TextToSpeech
3DQuickScene2D PositioningQuick UiPlugin
3DRender PrintSupport UiTools
AndroidExtras Qml WebChannel
Bluetooth Quick WebSockets
Concurrent QuickCompiler WebView
Core QuickControls2 Widgets
Gamepad QuickTemplates2 Xml
Gui QuickTest XmlPatterns
推荐阅读
- codeigniter - 日期比较不适用于我的 codeigniter 模型类
- jquery - 如何在 Angular 6 中使用 jquery 更新 ngModel?
- git - Azure DevOps 构建过程 创建 Git 分支
- powershell - SVN使用powershell在SVN中最后一次写入文件的时间
- hadoop - 在 Hive 中需要有关日期功能的帮助
- python - Pycharm 无法导入包并在我的 vmware 机器 windows 7 中显示 SSL 错误
- python - 防止在 pandas 方法链接期间过早评估操作
- extjs - mainView 上 renderTo EXTJS 的方法
- php - 从星期几、年份和星期数获取日期
- javascript - GatsbyJS + Netlify 表单没有收到提交