| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- cmake_minimum_required(VERSION 3.5.1)
- set(SPARK_FIND_QT5 TRUE)
- find_package(Qt5 COMPONENTS Core Widgets Network REQUIRED)
- # function(target_link_qt5 NAME)
- # target_link_libraries(${NAME}
- # Qt5::Core
- # Qt5::Widgets
- # Qt5::Network)
- # endfunction(target_link_qt5 NAME)
- # 使用 spark_add_link 生成 target_link_qt5 以替代上面内容
- spark_add_link(qt5 Qt5::Core Qt5::Widgets Qt5::Network)
- # spark_add_link_qt5
- # 自定义宏 spark_add_link_qt5 以扩展 target_link_qt5_<name> 结构
- # _IN_NAME: 此宏使用嵌套宏 spark_add_link 时追加 <name> 名称
- # 同等于 spark_add_link(qt_<name> ${ARGN})
- macro(spark_add_link_qt5 _IN_NAME)
- spark_add_link(qt5_${_IN_NAME} ${ARGN})
- endmacro(spark_add_link_qt5 _IN_NAME)
- # 使用 spark_add_link_qt5 生成 target_link_qt5_<name> 的宏
- # spark_add_link_qt5(Concurrent Qt5::Concurrent)
- # 高级自定义
- # spark_add_links_qt5
- # 自定义宏 spark_add_links_qt5 以扩展 spark_add_link_qt5 宏配置组
- # 特点: 任意长度参数
- # qt5_item: 为进行遍历后的单项,类似于 python3 中的 (for item in items:)
- # 例如: qt5_item 为 Core:
- # spark_add_link_qt5(${qt5_item} Qt5::${qt5_item})
- # 展开为 spark_add_link_qt5(Core Qt5::Core)
- # 展开为 spark_add_link(qt5_Core Qt5::Core)
- # 展开为 spark_add_link(qt5_Core Qt5::Core)
- # 特性: 增加 qt5_Core 转 qt5_core
- # string(TOLOWER <string> <output_variable>)
- macro(spark_add_links_qt5)
- set(qt5_items ${ARGN})
- foreach(qt5_item IN LISTS qt5_items)
- find_package(Qt5${qt5_item})
- spark_add_link_qt5(${qt5_item} Qt5::${qt5_item})
- string(TOLOWER "${qt5_item}" qt5_lower_item)
- spark_add_link_qt5(${qt5_lower_item} Qt5::${qt5_item})
- spark_debug_message("add_target_link_qt5_${qt5_item} or add_target_link_qt5_${qt5_lower_item}")
- endforeach(qt5_item IN LISTS qt5_items)
- endmacro(spark_add_links_qt5)
- # Core 用于其它模块的核心非图形类。
- # GUI 图形用户界面 GUI 组件基类。包括 OpenGL。
- # Multimedia 音频 视频 无线电 摄像头功能类。
- # Multimedia Widgets 用于实现多媒体功能,基于 Widget 的类。
- # Network 使网络编程更容易和更可移植的类。
- # QML QML 和 JavaScript 语言类。
- # Quick 以自定义用户界面 UI 构建高动态应用程序的声明性框架。
- # Quick Controls 为桌面、嵌入式及移动设备创建高性能用户界面提供轻量 QML 类型。这些类型运用简单样式化体系结构且非常高效。
- # Quick Dialogs 用于从 Qt Quick 应用程序创建系统对话框,并与之交互的类型。
- # Quick Layouts 布局是用于在用户界面中排列基于 Qt Quick 2 项的项。
- # Quick Test 用于 QML 应用程序的单元测试框架,其测试案例被编写成 JavaScript 函数。
- # 注意: 二进制保证不兼容 Qt Quick Test,但源代码仍兼容。
- # Qt SQL 集成使用 SQL 数据库的类。
- # Qt Test 单元测试 Qt 应用程序和库的类。
- # 注意: 二进制保证不兼容 Qt Test,但源代码仍兼容。
- # Qt Widgets 以 C++ 小部件扩展 Qt GUI 的类。
- # 找出所有 Qt5 模板
- # find /usr/lib/x86_64-linux-gnu/cmake/ -name "*Config.cmake" | sed 's@^.*/Qt5@Qt5@;' | grep ^Qt5
- # 掐头去尾,洗一次
- # find /usr/lib/x86_64-linux-gnu/cmake/ -name "*Config.cmake" | sed 's@^.*/Qt5@Qt5@;' | grep ^Qt5 | sed 's@^Qt5@@; [email protected]$@@; /^\s*$/d'
- # 排序
- # find /usr/lib/x86_64-linux-gnu/cmake/ -name "*Config.cmake" | sed 's@^.*/Qt5@Qt5@;' | grep ^Qt5 | sed 's@^Qt5@@; [email protected]$@@; /^\s*$/d' | sort | pr -t -3
- spark_add_links_qt5(
- # AccessibilitySupport
- # AttributionsScannerTools
- Concurrent
- # Core
- # DBus
- # Designer
- # DesignerComponents
- # DeviceDiscoverySupport
- # DocTools
- # EdidSupport
- # EglFSDeviceIntegration
- # EglFsKmsSupport
- # EglSupport
- # EventDispatcherSupport
- # FbSupport
- # FontDatabaseSupport
- # GlxSupport
- Gui
- # Help
- # InputSupport
- # KmsSupport
- # LinguistTools
- # LinuxAccessibilitySupport
- # Network
- # OpenGL
- # OpenGLExtensions
- # PacketProtocol
- # PlatformCompositorSupport
- # Positioning
- # PositioningQuick
- PrintSupport
- # Qml
- # QmlDebug
- # QmlDevTools
- # QmlImportScanner
- # QmlModels
- # QmlWorkerScript
- # Quick
- # QuickCompiler
- # QuickControls2
- # QuickParticles
- # QuickShapes
- # QuickTemplates2
- # QuickTest
- # QuickWidgets
- # SerialBus
- # SerialPort
- # ServiceSupport
- # Sql
- # Svg
- # Test
- # ThemeSupport
- # UiPlugin
- # UiTools
- # VulkanSupport
- # WebChannel
- # WebEngine
- # WebEngineCore
- # WebEngineWidgets
- # WebKit
- # WebKitWidgets
- # WebSockets
- # Widgets
- # X11Extras
- # XcbQpa
- # XkbCommonSupport
- # Xml
- XmlPatterns
- )
|