mirror of https://gitee.com/cxasm/notepad--.git
153 lines
5.0 KiB
CMake
153 lines
5.0 KiB
CMake
|
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})
|
|||
|
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@@; s@Config.cmake$@@; /^\s*$/d'
|
|||
|
|
|||
|
# 排序
|
|||
|
# find /usr/lib/x86_64-linux-gnu/cmake/ -name "*Config.cmake" | sed 's@^.*/Qt5@Qt5@;' | grep ^Qt5 | sed 's@^Qt5@@; s@Config.cmake$@@; /^\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
|
|||
|
)
|