|
|
@@ -1,208 +1,53 @@
|
|
|
-From d8b90bb4d709d643c7490ce8a79534769185e24e Mon Sep 17 00:00:00 2001
|
|
|
+From 98323da5e5410ba2a3c98f2aaa1af4aa4ada45ca Mon Sep 17 00:00:00 2001
|
|
|
From: coconil <[email protected]>
|
|
|
Date: Tue, 31 Jan 2023 22:17:32 +0800
|
|
|
-Subject: [PATCH 1/6] add cmake support
|
|
|
+Subject: [PATCH 1/8] add cmake support
|
|
|
|
|
|
---
|
|
|
- CMakeLists.txt | 31 +++++++++++++++++++++++++++++++
|
|
|
- src/findcmpwin.h | 24 ++++++++++++++----------
|
|
|
- src/findwin.h | 29 ++++++++++++++++-------------
|
|
|
- src/qscint/CMakeLists.txt | 35 +++++++++++++++++++++++++++++++++++
|
|
|
- 4 files changed, 96 insertions(+), 23 deletions(-)
|
|
|
- create mode 100644 CMakeLists.txt
|
|
|
- create mode 100644 src/qscint/CMakeLists.txt
|
|
|
+ CMakeLists.txt | 2 ++
|
|
|
+ src/qscint/CMakeLists.txt | 6 +++---
|
|
|
+ 2 files changed, 5 insertions(+), 3 deletions(-)
|
|
|
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
|
-new file mode 100644
|
|
|
-index 0000000..4dd3768
|
|
|
---- /dev/null
|
|
|
+index f1d6eea..f1c6d25 100644
|
|
|
+--- a/CMakeLists.txt
|
|
|
+++ b/CMakeLists.txt
|
|
|
-@@ -0,0 +1,31 @@
|
|
|
-+cmake_minimum_required(VERSION 3.24)
|
|
|
-+project(notepad--)
|
|
|
-+
|
|
|
-+set(CMAKE_AUTOMOC ON)
|
|
|
-+set(CMAKE_AUTOUIC ON)
|
|
|
-+set(CMAKE_AUTORCC ON)
|
|
|
-+
|
|
|
-+find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets Concurrent Network PrintSupport XmlPatterns)
|
|
|
-+
|
|
|
-+add_subdirectory(${PROJECT_SOURCE_DIR}/src/qscint)
|
|
|
-+
|
|
|
-+
|
|
|
-+file(GLOB UI_SRC ${PROJECT_SOURCE_DIR}/src/*.ui)
|
|
|
-+set(UI_SRC ${UI_SRC} ${PROJECT_SOURCE_DIR}/src/cceditor/ccnotepad.ui)
|
|
|
-+aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC)
|
|
|
-+aux_source_directory(${PROJECT_SOURCE_DIR}/src/cceditor SRC)
|
|
|
-+
|
|
|
-+add_executable(${PROJECT_NAME} ${SRC} ${UI_SRC} ${PROJECT_SOURCE_DIR}/src/RealCompare.qrc)
|
|
|
-+target_include_directories(${PROJECT_NAME} PRIVATE
|
|
|
-+${PROJECT_SOURCE_DIR}/src
|
|
|
-+${PROJECT_SOURCE_DIR}/src/cceditor
|
|
|
-+
|
|
|
-+${PROJECT_SOURCE_DIR}/src/qscint/src
|
|
|
-+${PROJECT_SOURCE_DIR}/src/qscint/src/Qsci
|
|
|
-+${PROJECT_SOURCE_DIR}/src/qscint/scintilla/src
|
|
|
-+${PROJECT_SOURCE_DIR}/src/qscint/scintilla/include
|
|
|
-+${PROJECT_SOURCE_DIR}/src/qscint/scintilla/lexlib
|
|
|
-+${PROJECT_SOURCE_DIR}/src/qscint/scintilla/boostregex
|
|
|
-+)
|
|
|
+@@ -53,3 +53,5 @@ install(DIRECTORY ${PROJECT_SOURCE_DIR}/src/linux/usr
|
|
|
+
|
|
|
+ include(${PROJECT_SOURCE_DIR}/cmake/package_config.cmake)
|
|
|
+ include(CPack)
|
|
|
+
|
|
|
+target_link_libraries(${PROJECT_NAME} qscint Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Concurrent Qt5::Network Qt5::PrintSupport Qt5::XmlPatterns)
|
|
|
\ No newline at end of file
|
|
|
-diff --git a/src/findcmpwin.h b/src/findcmpwin.h
|
|
|
-index 4432e85..70deee3 100755
|
|
|
---- a/src/findcmpwin.h
|
|
|
-+++ b/src/findcmpwin.h
|
|
|
-@@ -4,16 +4,20 @@
|
|
|
- #include <QTabWidget>
|
|
|
- #include <QVector>
|
|
|
-
|
|
|
--#include "ui_findcmpwin.h"
|
|
|
--#include "rcglobal.h"
|
|
|
--
|
|
|
--enum FindTabIndex {
|
|
|
-- FIND_TAB,
|
|
|
-- REPLACE_TAB,
|
|
|
--};
|
|
|
--class ScintillaEditView;
|
|
|
--
|
|
|
--//struct FindCmpRecord {
|
|
|
-+#include "ui_findcmpwin.h"
|
|
|
-+#include "rcglobal.h"
|
|
|
-+
|
|
|
-+#ifndef DEF_FIND_TAB_INDEX
|
|
|
-+#define DEF_FIND_TAB_INDEX
|
|
|
-+
|
|
|
-+enum FindTabIndex {
|
|
|
-+ FIND_TAB,
|
|
|
-+ REPLACE_TAB,
|
|
|
-+};
|
|
|
-+#endif
|
|
|
-+class ScintillaEditView;
|
|
|
-+
|
|
|
-+//struct FindCmpRecord {
|
|
|
- // int lineNum;
|
|
|
- // int pos;
|
|
|
- // QString lineContents;
|
|
|
-diff --git a/src/findwin.h b/src/findwin.h
|
|
|
-index c32a7d4..be82deb 100755
|
|
|
---- a/src/findwin.h
|
|
|
-+++ b/src/findwin.h
|
|
|
-@@ -3,19 +3,22 @@
|
|
|
- #include <QMainWindow>
|
|
|
- #include <QTabWidget>
|
|
|
- #include <QVector>
|
|
|
--
|
|
|
--
|
|
|
--#include "ui_findwin.h"
|
|
|
--
|
|
|
--enum FindTabIndex {
|
|
|
-- FIND_TAB =0,
|
|
|
-- REPLACE_TAB,
|
|
|
-- DIR_FIND_TAB,
|
|
|
-- MARK_TAB,
|
|
|
--};
|
|
|
--class ScintillaEditView;
|
|
|
--class QsciScintilla;
|
|
|
--
|
|
|
-+
|
|
|
-+
|
|
|
-+#include "ui_findwin.h"
|
|
|
-+#ifndef DEF_FIND_TAB_INDEX
|
|
|
-+#define DEF_FIND_TAB_INDEX
|
|
|
-+enum FindTabIndex {
|
|
|
-+ FIND_TAB =0,
|
|
|
-+ REPLACE_TAB,
|
|
|
-+ DIR_FIND_TAB,
|
|
|
-+ MARK_TAB,
|
|
|
-+};
|
|
|
-+#endif
|
|
|
-+
|
|
|
-+class ScintillaEditView;
|
|
|
-+class QsciScintilla;
|
|
|
-+
|
|
|
- struct FindRecord {
|
|
|
- int lineNum;
|
|
|
- int lineStartPos; //行开始位置
|
|
|
diff --git a/src/qscint/CMakeLists.txt b/src/qscint/CMakeLists.txt
|
|
|
-new file mode 100644
|
|
|
-index 0000000..f132dc6
|
|
|
---- /dev/null
|
|
|
+index b114614..f132dc6 100644
|
|
|
+--- a/src/qscint/CMakeLists.txt
|
|
|
+++ b/src/qscint/CMakeLists.txt
|
|
|
-@@ -0,0 +1,35 @@
|
|
|
+@@ -1,5 +1,5 @@
|
|
|
+-cmake_minimum_required(VERSION 3.16)
|
|
|
+-project(qscintilla2_qt5 CXX)
|
|
|
+cmake_minimum_required(VERSION 3.24)
|
|
|
+project(qscint CXX)
|
|
|
-+
|
|
|
-+set(CMAKE_AUTOMOC ON)
|
|
|
-+set(CMAKE_AUTOUIC ON)
|
|
|
-+set(CMAKE_AUTORCC ON)
|
|
|
-+
|
|
|
-+find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets PrintSupport)
|
|
|
-+
|
|
|
-+aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC)
|
|
|
-+aux_source_directory(${PROJECT_SOURCE_DIR}/scintilla/lexers SRC)
|
|
|
-+aux_source_directory(${PROJECT_SOURCE_DIR}/scintilla/lexlib SRC)
|
|
|
-+aux_source_directory(${PROJECT_SOURCE_DIR}/scintilla/src SRC)
|
|
|
-+aux_source_directory(${PROJECT_SOURCE_DIR}/scintilla/boostregex SRC)
|
|
|
-+
|
|
|
-+file(GLOB MOC_HEADER ${PROJECT_SOURCE_DIR}/src/Qsci/*.h)
|
|
|
-+
|
|
|
-+#message(${MOC_HEADER})
|
|
|
-+
|
|
|
-+add_library(${PROJECT_NAME} STATIC ${SRC} ${MOC_HEADER})
|
|
|
-+
|
|
|
-+target_compile_definitions(${PROJECT_NAME} PRIVATE SCINTILLA_QT SCI_LEXER INCLUDE_DEPRECATED_FEATURES)
|
|
|
-+
|
|
|
-+target_include_directories(${PROJECT_NAME} PRIVATE
|
|
|
-+${PROJECT_SOURCE_DIR}/scintilla/lexlib
|
|
|
-+${PROJECT_SOURCE_DIR}/scintilla/boostregex
|
|
|
-+)
|
|
|
-+
|
|
|
-+target_include_directories(${PROJECT_NAME} PUBLIC
|
|
|
-+${PROJECT_SOURCE_DIR}/src
|
|
|
+
|
|
|
+ set(CMAKE_AUTOMOC ON)
|
|
|
+ set(CMAKE_AUTOUIC ON)
|
|
|
+@@ -28,7 +28,7 @@ ${PROJECT_SOURCE_DIR}/scintilla/boostregex
|
|
|
+
|
|
|
+ target_include_directories(${PROJECT_NAME} PUBLIC
|
|
|
+ ${PROJECT_SOURCE_DIR}/src
|
|
|
+-${PROJECT_SOURCE_DIR}/src/Qsci
|
|
|
+${PROJECT_SOURCE_DIR}/src/Qsci
|
|
|
-+${PROJECT_SOURCE_DIR}/scintilla/src
|
|
|
-+${PROJECT_SOURCE_DIR}/scintilla/include)
|
|
|
-+
|
|
|
-+target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Concurrent Qt5::Network Qt5::PrintSupport)
|
|
|
---
|
|
|
-2.20.1
|
|
|
-
|
|
|
-
|
|
|
-From af0785b1f7060ac535900f159173153d2028d1a7 Mon Sep 17 00:00:00 2001
|
|
|
-From: coconil <[email protected]>
|
|
|
-Date: Tue, 31 Jan 2023 22:49:55 +0800
|
|
|
-Subject: [PATCH 2/6] add cmake build doc
|
|
|
-
|
|
|
----
|
|
|
- cmake.md | 8 ++++++++
|
|
|
- 1 file changed, 8 insertions(+)
|
|
|
- create mode 100644 cmake.md
|
|
|
-
|
|
|
-diff --git a/cmake.md b/cmake.md
|
|
|
-new file mode 100644
|
|
|
-index 0000000..b5f9785
|
|
|
---- /dev/null
|
|
|
-+++ b/cmake.md
|
|
|
-@@ -0,0 +1,8 @@
|
|
|
-+# cmake构建说明
|
|
|
-+
|
|
|
-+## Ubuntu
|
|
|
-+
|
|
|
-+1. 安装编译环境 `sudo apt-get install g++ make cmake`
|
|
|
-+1. 安装qt工具和库 `sudo apt-get install qtbase5-dev qt5-qmake qtbase5-dev-tools libqt5printsupport5 libqt5xmlpatterns5-dev `
|
|
|
-+1. 配置 `cmake path_to_src`
|
|
|
-+1. 编译 `make -j`
|
|
|
-\ No newline at end of file
|
|
|
+ ${PROJECT_SOURCE_DIR}/scintilla/src
|
|
|
+ ${PROJECT_SOURCE_DIR}/scintilla/include)
|
|
|
+
|
|
|
--
|
|
|
2.20.1
|
|
|
|
|
|
|
|
|
-From 44ef7d609c77688c46a0334bc08d863114b46998 Mon Sep 17 00:00:00 2001
|
|
|
+From 486ece6437385cf06cf99feba504a990ff5c2c6e Mon Sep 17 00:00:00 2001
|
|
|
From: zinface <[email protected]>
|
|
|
Date: Wed, 1 Feb 2023 20:04:05 +0800
|
|
|
-Subject: [PATCH 3/6] =?UTF-8?q?repo:=20=E5=BC=95=E5=85=A5=20Spark=20?=
|
|
|
+Subject: [PATCH 2/8] =?UTF-8?q?repo:=20=E5=BC=95=E5=85=A5=20Spark=20?=
|
|
|
=?UTF-8?q?=E6=9E=84=E5=BB=BA=EF=BC=8C=E6=94=AF=E6=8C=81=E6=9E=84=E5=BB=BA?=
|
|
|
=?UTF-8?q?=20deb?=
|
|
|
MIME-Version: 1.0
|
|
|
@@ -210,8 +55,8 @@ Content-Type: text/plain; charset=UTF-8
|
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
|
|
---
|
|
|
- .gitignore | 36 ++-
|
|
|
- CMakeLists.txt | 34 ++-
|
|
|
+ .gitignore | 48 +++-
|
|
|
+ CMakeLists.txt | 36 ++-
|
|
|
Makefile | 61 +++++
|
|
|
assets/spark.png | Bin 0 -> 4959 bytes
|
|
|
cmake/DebPackageConfig.cmake | 323 +++++++++++++++++++++++++++
|
|
|
@@ -219,7 +64,7 @@ Content-Transfer-Encoding: 8bit
|
|
|
cmake/SparkInstallMacrosConfig.cmake | 131 +++++++++++
|
|
|
cmake/package-deb.descript | 45 ++++
|
|
|
cmake/spark-desktop.desktop.in | 12 +
|
|
|
- 9 files changed, 672 insertions(+), 5 deletions(-)
|
|
|
+ 9 files changed, 679 insertions(+), 12 deletions(-)
|
|
|
create mode 100644 Makefile
|
|
|
create mode 100644 assets/spark.png
|
|
|
create mode 100644 cmake/DebPackageConfig.cmake
|
|
|
@@ -229,16 +74,28 @@ Content-Transfer-Encoding: 8bit
|
|
|
create mode 100644 cmake/spark-desktop.desktop.in
|
|
|
|
|
|
diff --git a/.gitignore b/.gitignore
|
|
|
-index 8d723bc..30bcfd5 100644
|
|
|
+index 8d723bc..bf38a86 100644
|
|
|
--- a/.gitignore
|
|
|
+++ b/.gitignore
|
|
|
-@@ -393,6 +393,36 @@ FodyWeavers.xsd
|
|
|
- *.msix
|
|
|
- *.msm
|
|
|
- *.msp
|
|
|
+@@ -387,12 +387,42 @@ FodyWeavers.xsd
|
|
|
+ # Local History for Visual Studio Code
|
|
|
+ .history/
|
|
|
+
|
|
|
+-# Windows Installer files from build outputs
|
|
|
+-*.cab
|
|
|
+-*.msi
|
|
|
+-*.msix
|
|
|
+-*.msm
|
|
|
+-*.msp
|
|
|
-
|
|
|
-# JetBrains Rider
|
|
|
-*.sln.iml
|
|
|
++# Windows Installer files from build outputs
|
|
|
++*.cab
|
|
|
++*.msi
|
|
|
++*.msix
|
|
|
++*.msm
|
|
|
++*.msp
|
|
|
+
|
|
|
+# JetBrains Rider
|
|
|
+*.sln.iml
|
|
|
@@ -273,19 +130,20 @@ index 8d723bc..30bcfd5 100644
|
|
|
+# End of https://www.toptal.com/developers/gitignore/api/cmake
|
|
|
+!/Makefile
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
|
-index 4dd3768..a48badb 100644
|
|
|
+index f1c6d25..666fbdb 100644
|
|
|
--- a/CMakeLists.txt
|
|
|
+++ b/CMakeLists.txt
|
|
|
@@ -1,5 +1,5 @@
|
|
|
- cmake_minimum_required(VERSION 3.24)
|
|
|
+-cmake_minimum_required(VERSION 3.16)
|
|
|
-project(notepad--)
|
|
|
++cmake_minimum_required(VERSION 3.24)
|
|
|
+project(notepad-- VERSION 1.22.0)
|
|
|
|
|
|
set(CMAKE_AUTOMOC ON)
|
|
|
set(CMAKE_AUTOUIC ON)
|
|
|
-@@ -28,4 +28,34 @@ ${PROJECT_SOURCE_DIR}/src/qscint/scintilla/lexlib
|
|
|
- ${PROJECT_SOURCE_DIR}/src/qscint/scintilla/boostregex
|
|
|
- )
|
|
|
+@@ -54,4 +54,34 @@ install(DIRECTORY ${PROJECT_SOURCE_DIR}/src/linux/usr
|
|
|
+ include(${PROJECT_SOURCE_DIR}/cmake/package_config.cmake)
|
|
|
+ include(CPack)
|
|
|
|
|
|
-target_link_libraries(${PROJECT_NAME} qscint Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Concurrent Qt5::Network Qt5::PrintSupport Qt5::XmlPatterns)
|
|
|
\ No newline at end of file
|
|
|
@@ -1073,10 +931,10 @@ index 0000000..e7c3b18
|
|
|
2.20.1
|
|
|
|
|
|
|
|
|
-From b2c247073dfaf9539af26cb5372f8ba16c297cdc Mon Sep 17 00:00:00 2001
|
|
|
+From 7aa88bae1182ba087631ad0bd0e336c6dda9699b Mon Sep 17 00:00:00 2001
|
|
|
From: zinface <[email protected]>
|
|
|
Date: Wed, 1 Feb 2023 20:09:49 +0800
|
|
|
-Subject: [PATCH 4/6] =?UTF-8?q?repo:=20=E5=BC=95=E5=85=A5=20Spark=20?=
|
|
|
+Subject: [PATCH 3/8] =?UTF-8?q?repo:=20=E5=BC=95=E5=85=A5=20Spark=20?=
|
|
|
=?UTF-8?q?=E6=9E=84=E5=BB=BA=EF=BC=8C=E6=94=AF=E6=8C=81=E6=9E=84=E5=BB=BA?=
|
|
|
=?UTF-8?q?=20Appimage?=
|
|
|
MIME-Version: 1.0
|
|
|
@@ -1093,10 +951,10 @@ Content-Transfer-Encoding: 8bit
|
|
|
create mode 100644 cmake/spark-appimage.desktop.in
|
|
|
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
|
-index a48badb..364adaa 100644
|
|
|
+index 666fbdb..a8f27aa 100644
|
|
|
--- a/CMakeLists.txt
|
|
|
+++ b/CMakeLists.txt
|
|
|
-@@ -54,6 +54,14 @@ if(CMAKE_HOST_UNIX)
|
|
|
+@@ -80,6 +80,14 @@ if(CMAKE_HOST_UNIX)
|
|
|
spark_install_file(/usr/share/notepad--/icons/ assets/spark.png)
|
|
|
spark_install_target(/usr/bin/ ${PROJECT_NAME})
|
|
|
|
|
|
@@ -1307,10 +1165,10 @@ index 0000000..0ca2577
|
|
|
2.20.1
|
|
|
|
|
|
|
|
|
-From bee93666ed61aa5f605ccf98aa79585708ea098a Mon Sep 17 00:00:00 2001
|
|
|
+From 138dc3b7f574b9fd44054d2f1397ff737ce4f41c Mon Sep 17 00:00:00 2001
|
|
|
From: zinface <[email protected]>
|
|
|
Date: Thu, 2 Feb 2023 13:58:29 +0800
|
|
|
-Subject: [PATCH 5/6] =?UTF-8?q?desktop:=20=E4=B8=BA=20desktop=20=E6=B7=BB?=
|
|
|
+Subject: [PATCH 4/8] =?UTF-8?q?desktop:=20=E4=B8=BA=20desktop=20=E6=B7=BB?=
|
|
|
=?UTF-8?q?=E5=8A=A0=E6=96=87=E6=9C=AC=E6=96=87=E4=BB=B6=E7=9A=84=E7=9B=B8?=
|
|
|
=?UTF-8?q?=E5=85=B3=20MimeType?=
|
|
|
MIME-Version: 1.0
|
|
|
@@ -1349,10 +1207,10 @@ index e7c3b18..e33c74e 100644
|
|
|
2.20.1
|
|
|
|
|
|
|
|
|
-From d4d07795f09d33b4995e34c1f86a03c678025f96 Mon Sep 17 00:00:00 2001
|
|
|
+From c75654ae45f30f8039fcf44b42ecb873aef69ddd Mon Sep 17 00:00:00 2001
|
|
|
From: zinface <[email protected]>
|
|
|
Date: Thu, 2 Feb 2023 14:00:54 +0800
|
|
|
-Subject: [PATCH 6/6] =?UTF-8?q?repo:=20=E5=AF=B9=20desktop=20=E6=96=87?=
|
|
|
+Subject: [PATCH 5/8] =?UTF-8?q?repo:=20=E5=AF=B9=20desktop=20=E6=96=87?=
|
|
|
=?UTF-8?q?=E4=BB=B6=E6=B7=BB=E5=8A=A0=20%F=20=E5=8F=82=E6=95=B0=EF=BC=8C?=
|
|
|
=?UTF-8?q?=E4=BB=A5=E4=BF=9D=E8=AF=81=E5=8F=AF=E6=AD=A3=E7=A1=AE=E4=BC=A0?=
|
|
|
=?UTF-8?q?=E5=85=A5=E5=8F=82=E6=95=B0?=
|
|
|
@@ -1365,10 +1223,10 @@ Content-Transfer-Encoding: 8bit
|
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
|
-index 364adaa..fed2a51 100644
|
|
|
+index a8f27aa..63e878c 100644
|
|
|
--- a/CMakeLists.txt
|
|
|
+++ b/CMakeLists.txt
|
|
|
-@@ -44,7 +44,8 @@ if(CMAKE_HOST_UNIX)
|
|
|
+@@ -70,7 +70,8 @@ if(CMAKE_HOST_UNIX)
|
|
|
# 应用类型: Type=
|
|
|
"Application"
|
|
|
# 执行程序: Exec=
|
|
|
@@ -1381,3 +1239,939 @@ index 364adaa..fed2a51 100644
|
|
|
--
|
|
|
2.20.1
|
|
|
|
|
|
+
|
|
|
+From c47eb80929921e9f94ab9e176304b3c4fb1de157 Mon Sep 17 00:00:00 2001
|
|
|
+From: zinface <[email protected]>
|
|
|
+Date: Thu, 2 Feb 2023 14:47:56 +0800
|
|
|
+Subject: [PATCH 6/8] =?UTF-8?q?cmake-version:=20=E5=B0=86=E7=89=88?=
|
|
|
+ =?UTF-8?q?=E6=9C=AC=E9=99=8D=E5=88=B0=203.22=20=E4=BB=A5=E9=80=82?=
|
|
|
+ =?UTF-8?q?=E7=94=A8=E4=BA=8E=20cmake=20=E6=9E=84=E5=BB=BA?=
|
|
|
+MIME-Version: 1.0
|
|
|
+Content-Type: text/plain; charset=UTF-8
|
|
|
+Content-Transfer-Encoding: 8bit
|
|
|
+
|
|
|
+---
|
|
|
+ CMakeLists.txt | 2 +-
|
|
|
+ src/qscint/CMakeLists.txt | 2 +-
|
|
|
+ 2 files changed, 2 insertions(+), 2 deletions(-)
|
|
|
+
|
|
|
+diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
|
+index 63e878c..60e9171 100644
|
|
|
+--- a/CMakeLists.txt
|
|
|
++++ b/CMakeLists.txt
|
|
|
+@@ -1,4 +1,4 @@
|
|
|
+-cmake_minimum_required(VERSION 3.24)
|
|
|
++cmake_minimum_required(VERSION 3.22)
|
|
|
+ project(notepad-- VERSION 1.22.0)
|
|
|
+
|
|
|
+ set(CMAKE_AUTOMOC ON)
|
|
|
+diff --git a/src/qscint/CMakeLists.txt b/src/qscint/CMakeLists.txt
|
|
|
+index f132dc6..77f02f2 100644
|
|
|
+--- a/src/qscint/CMakeLists.txt
|
|
|
++++ b/src/qscint/CMakeLists.txt
|
|
|
+@@ -1,4 +1,4 @@
|
|
|
+-cmake_minimum_required(VERSION 3.24)
|
|
|
++cmake_minimum_required(VERSION 3.22)
|
|
|
+ project(qscint CXX)
|
|
|
+
|
|
|
+ set(CMAKE_AUTOMOC ON)
|
|
|
+--
|
|
|
+2.20.1
|
|
|
+
|
|
|
+
|
|
|
+From 653b68b44490ba0afbf99a95300aa46d96c4ec33 Mon Sep 17 00:00:00 2001
|
|
|
+From: zinface <[email protected]>
|
|
|
+Date: Sun, 5 Feb 2023 12:55:38 +0800
|
|
|
+Subject: [PATCH 7/8] =?UTF-8?q?repo:=20=E5=BC=95=E5=85=A5=20Spark=20?=
|
|
|
+ =?UTF-8?q?=E7=8E=B0=E6=9C=89=E5=AE=8C=E6=95=B4=E6=9E=84=E5=BB=BA=E6=A8=A1?=
|
|
|
+ =?UTF-8?q?=E5=9D=97?=
|
|
|
+MIME-Version: 1.0
|
|
|
+Content-Type: text/plain; charset=UTF-8
|
|
|
+Content-Transfer-Encoding: 8bit
|
|
|
+
|
|
|
+---
|
|
|
+ cmake/SparkEnvConfig.cmake | 8 +
|
|
|
+ cmake/SparkFindQt5Config.cmake | 153 ++++++++++++++++++
|
|
|
+ cmake/SparkFindQt6Config.cmake | 130 +++++++++++++++
|
|
|
+ cmake/SparkMacrosConfig.cmake | 161 +++++++++++++++++++
|
|
|
+ cmake/SparkMacrosExtendConfig.cmake | 237 ++++++++++++++++++++++++++++
|
|
|
+ 5 files changed, 689 insertions(+)
|
|
|
+ create mode 100644 cmake/SparkEnvConfig.cmake
|
|
|
+ create mode 100644 cmake/SparkFindQt5Config.cmake
|
|
|
+ create mode 100644 cmake/SparkFindQt6Config.cmake
|
|
|
+ create mode 100644 cmake/SparkMacrosConfig.cmake
|
|
|
+ create mode 100644 cmake/SparkMacrosExtendConfig.cmake
|
|
|
+
|
|
|
+diff --git a/cmake/SparkEnvConfig.cmake b/cmake/SparkEnvConfig.cmake
|
|
|
+new file mode 100644
|
|
|
+index 0000000..3690f1a
|
|
|
+--- /dev/null
|
|
|
++++ b/cmake/SparkEnvConfig.cmake
|
|
|
+@@ -0,0 +1,8 @@
|
|
|
++cmake_minimum_required(VERSION 3.5.1)
|
|
|
++
|
|
|
++set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
++# set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|
|
++set(CMAKE_AUTOMOC ON)
|
|
|
++set(CMAKE_AUTOUIC ON)
|
|
|
++set(CMAKE_AUTORCC ON)
|
|
|
++# set(CMAKE_BUILD_TYPE "Debug")
|
|
|
+\ No newline at end of file
|
|
|
+diff --git a/cmake/SparkFindQt5Config.cmake b/cmake/SparkFindQt5Config.cmake
|
|
|
+new file mode 100644
|
|
|
+index 0000000..ad2db4c
|
|
|
+--- /dev/null
|
|
|
++++ b/cmake/SparkFindQt5Config.cmake
|
|
|
+@@ -0,0 +1,153 @@
|
|
|
++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@@; [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
|
|
|
++)
|
|
|
+\ No newline at end of file
|
|
|
+diff --git a/cmake/SparkFindQt6Config.cmake b/cmake/SparkFindQt6Config.cmake
|
|
|
+new file mode 100644
|
|
|
+index 0000000..fb2d741
|
|
|
+--- /dev/null
|
|
|
++++ b/cmake/SparkFindQt6Config.cmake
|
|
|
+@@ -0,0 +1,130 @@
|
|
|
++cmake_minimum_required(VERSION 3.5.1)
|
|
|
++
|
|
|
++set(SPARK_FIND_QT6 TRUE)
|
|
|
++
|
|
|
++find_package(Qt6 COMPONENTS Core Widgets Network REQUIRED)
|
|
|
++
|
|
|
++# function(target_link_qt6 NAME)
|
|
|
++# target_link_libraries(${NAME}
|
|
|
++# Qt6::Core
|
|
|
++# Qt6::Widgets
|
|
|
++# Qt6::Network)
|
|
|
++# endfunction(target_link_qt6 NAME)
|
|
|
++
|
|
|
++# 使用 spark_add_link 生成 target_link_qt6 以替代上面内容
|
|
|
++spark_add_link(qt6 Qt6::Core Qt6::Widgets Qt6::Network)
|
|
|
++
|
|
|
++
|
|
|
++# spark_add_link_qt6
|
|
|
++# 自定义宏 spark_add_link_qt6 以扩展 target_link_qt6_<name> 结构
|
|
|
++ # _IN_NAME: 此宏使用嵌套宏 spark_add_link 时追加 <name> 名称
|
|
|
++ # 同等于 spark_add_link(qt_<name> ${ARGN})
|
|
|
++macro(spark_add_link_qt6 _IN_NAME)
|
|
|
++ spark_add_link(qt6_${_IN_NAME} ${ARGN})
|
|
|
++endmacro(spark_add_link_qt6 _IN_NAME)
|
|
|
++
|
|
|
++# 使用 spark_add_link_qt6 生成 target_link_qt6_<name> 的宏
|
|
|
++# spark_add_link_qt5(Concurrent Qt6::Concurrent)
|
|
|
++
|
|
|
++# 高级自定义
|
|
|
++# spark_add_links_qt6
|
|
|
++# 自定义宏 spark_add_links_qt6 以扩展 spark_add_link_qt6 宏配置组
|
|
|
++ # 特点: 任意长度参数
|
|
|
++ # qt6_item: 为进行遍历后的单项,类似于 python3 中的 (for item in items:)
|
|
|
++ # 例如: qt6_item 为 Core:
|
|
|
++ # spark_add_link_qt6(${qt6_item} Qt6::${qt6_item})
|
|
|
++ # 展开为 spark_add_link_qt6(Core Qt6::Core)
|
|
|
++ # 展开为 spark_add_link(qt6_Core Qt6::Core)
|
|
|
++ # 展开为 spark_add_link(qt6_Core Qt6::Core)
|
|
|
++ # 特性: 增加 qt6_Core 转 qt6_core
|
|
|
++ # string(TOLOWER <string> <output_variable>)
|
|
|
++macro(spark_add_links_qt6)
|
|
|
++ set(qt6_items ${ARGN})
|
|
|
++ foreach(qt6_item IN LISTS qt6_items)
|
|
|
++ find_package(Qt6${qt6_item})
|
|
|
++ spark_add_link_qt6(${qt6_item} Qt6::${qt6_item})
|
|
|
++
|
|
|
++ string(TOLOWER "${qt6_item}" qt6_lower_item)
|
|
|
++ spark_add_link_qt6(${qt6_lower_item} Qt6::${qt6_item})
|
|
|
++ message("add_target_link_qt6_${qt6_item} or add_target_link_qt6_${qt6_lower_item}")
|
|
|
++ endforeach(qt6_item IN LISTS qt6_items)
|
|
|
++endmacro(spark_add_links_qt6)
|
|
|
++
|
|
|
++# 找出所有 Qt6 模板
|
|
|
++# find /usr/lib/x86_64-linux-gnu/cmake/ -name "*Config.cmake" | sed 's@^.*/Qt6@Qt6@;' | grep ^Qt6
|
|
|
++
|
|
|
++# 掐头去尾,洗一次
|
|
|
++# 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
|
|
|
++# find /usr/lib/x86_64-linux-gnu/cmake/ -name "*Config.cmake" | sed 's@^.*/Qt6@Qt6@;' | grep ^Qt6 | sed 's@^Qt6@@; [email protected]$@@; /^\s*$/d' | sort | pr -t -3
|
|
|
++
|
|
|
++spark_add_links_qt6(
|
|
|
++ # BuildInternals
|
|
|
++ # BuildInternals/StandaloneTests/Qt5CompatTests
|
|
|
++ # BuildInternals/StandaloneTests/QtBaseTests
|
|
|
++ Concurrent
|
|
|
++ # Core
|
|
|
++ Core5Compat
|
|
|
++ # CoreTools
|
|
|
++ # DBus
|
|
|
++ # DBusTools
|
|
|
++ # DeviceDiscoverySupportPrivate
|
|
|
++ # EglFSDeviceIntegrationPrivate
|
|
|
++ # EglFsKmsGbmSupportPrivate
|
|
|
++ # EglFsKmsSupportPrivate
|
|
|
++ # FbSupportPrivate
|
|
|
++ # Gui
|
|
|
++ # GuiTools
|
|
|
++ # HostInfo
|
|
|
++ # InputSupportPrivate
|
|
|
++ # KmsSupportPrivate
|
|
|
++ # Network
|
|
|
++ # OpenGL
|
|
|
++ # OpenGLWidgets
|
|
|
++ PrintSupport
|
|
|
++ # QComposePlatformInputContextPlugin
|
|
|
++ # QCupsPrinterSupportPlugin
|
|
|
++ # QEglFSEmulatorIntegrationPlugin
|
|
|
++ # QEglFSIntegrationPlugin
|
|
|
++ # QEglFSKmsEglDeviceIntegrationPlugin
|
|
|
++ # QEglFSKmsGbmIntegrationPlugin
|
|
|
++ # QEglFSX11IntegrationPlugin
|
|
|
++ # QEvdevKeyboardPlugin
|
|
|
++ # QEvdevMousePlugin
|
|
|
++ # QEvdevTabletPlugin
|
|
|
++ # QEvdevTouchScreenPlugin
|
|
|
++ # QGifPlugin
|
|
|
++ # QGtk3ThemePlugin
|
|
|
++ # QIBaseDriverPlugin
|
|
|
++ # QIbusPlatformInputContextPlugin
|
|
|
++ # QICOPlugin
|
|
|
++ # QJpegPlugin
|
|
|
++ # QLibInputPlugin
|
|
|
++ # QLinuxFbIntegrationPlugin
|
|
|
++ # QMinimalEglIntegrationPlugin
|
|
|
++ # QMinimalIntegrationPlugin
|
|
|
++ # QMYSQLDriverPlugin
|
|
|
++ # QNetworkManagerNetworkInformationPlugin
|
|
|
++ # QODBCDriverPlugin
|
|
|
++ # QOffscreenIntegrationPlugin
|
|
|
++ # QPSQLDriverPlugin
|
|
|
++ # QSQLiteDriverPlugin
|
|
|
++ # QTlsBackendCertOnlyPlugin
|
|
|
++ # QTlsBackendOpenSSLPlugin
|
|
|
++ # QTsLibPlugin
|
|
|
++ # QTuioTouchPlugin
|
|
|
++ # QVkKhrDisplayIntegrationPlugin
|
|
|
++ # QVncIntegrationPlugin
|
|
|
++ # QXcbEglIntegrationPlugin
|
|
|
++ # QXcbGlxIntegrationPlugin
|
|
|
++ # QXcbIntegrationPlugin
|
|
|
++ # QXdgDesktopPortalThemePlugin
|
|
|
++ # Sql
|
|
|
++ # Test
|
|
|
++ # Widgets
|
|
|
++ # WidgetsTools
|
|
|
++ # XcbQpaPrivate
|
|
|
++ # Xml
|
|
|
++)
|
|
|
+\ No newline at end of file
|
|
|
+diff --git a/cmake/SparkMacrosConfig.cmake b/cmake/SparkMacrosConfig.cmake
|
|
|
+new file mode 100644
|
|
|
+index 0000000..4f68ce1
|
|
|
+--- /dev/null
|
|
|
++++ b/cmake/SparkMacrosConfig.cmake
|
|
|
+@@ -0,0 +1,161 @@
|
|
|
++cmake_minimum_required(VERSION 3.5.1)
|
|
|
++
|
|
|
++# 定义一些 macro 用于自动生成构建结构
|
|
|
++
|
|
|
++# spark_add_library <lib_name> [files]...
|
|
|
++# 构建一个库,基于指定的源文件
|
|
|
++ # 并根据库名生成 target_link_<lib_name> 函数
|
|
|
++macro(spark_add_library _lib_name)
|
|
|
++ message("================ ${_lib_name} Library ================")
|
|
|
++ add_library(${_lib_name} ${ARGN})
|
|
|
++
|
|
|
++ set(SRCS ${ARGN})
|
|
|
++ foreach(item IN LISTS SRCS)
|
|
|
++ message(" -> ${item}")
|
|
|
++ endforeach(item IN LISTS SRCS)
|
|
|
++
|
|
|
++ function(target_link_${_lib_name} TARGET)
|
|
|
++ message("${_lib_name}")
|
|
|
++ target_link_libraries(${TARGET} ${_lib_name})
|
|
|
++ endfunction(target_link_${_lib_name} TARGET)
|
|
|
++
|
|
|
++endmacro(spark_add_library _lib_name)
|
|
|
++
|
|
|
++# spark_add_library_path <lib_name> <lib_path>
|
|
|
++# 构建一个库,基于指定的路径
|
|
|
++ # 并根据库名生成 target_link_<lib_name> 函数
|
|
|
++ # 函数内增加以 <lib_path> 头文件搜索路径
|
|
|
++macro(spark_add_library_path _lib_name _lib_path)
|
|
|
++
|
|
|
++ set(${_lib_name}_SOURCE_PATH ${_lib_path})
|
|
|
++ set(${_lib_name}_TYPE)
|
|
|
++ if(${${_lib_name}_SOURCE_PATH} STREQUAL SHARED OR ${${_lib_name}_SOURCE_PATH} STREQUAL STATIC)
|
|
|
++ set(${_lib_name}_SOURCE_PATH ${ARGV2})
|
|
|
++ set(${_lib_name}_TYPE ${_lib_path})
|
|
|
++ message("_lib_path: ${${_lib_name}_SOURCE_PATH}(${ARGV2})[${${_lib_name}_TYPE}]")
|
|
|
++
|
|
|
++ if(${ARGC} LESS 3)
|
|
|
++ message(FATAL_ERROR "Missing parameter, library path not specified.")
|
|
|
++ endif(${ARGC} LESS 3)
|
|
|
++ endif(${${_lib_name}_SOURCE_PATH} STREQUAL SHARED OR ${${_lib_name}_SOURCE_PATH} STREQUAL STATIC)
|
|
|
++
|
|
|
++ aux_source_directory(${${_lib_name}_SOURCE_PATH} ${_lib_name}_SOURCES)
|
|
|
++
|
|
|
++ message("================ spark_add_library_path: ${_lib_name} ================")
|
|
|
++ file(GLOB UI_LIST RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${${_lib_name}_SOURCE_PATH}/*.ui)
|
|
|
++ add_library(${_lib_name} ${${_lib_name}_TYPE} ${${_lib_name}_SOURCES} ${UI_LIST})
|
|
|
++ message("${_lib_name}_SOURCES: ${${_lib_name}_SOURCES}, ${${_lib_name}_SOURCE_PATH}")
|
|
|
++ foreach(item IN LISTS ${_lib_name}_SOURCES)
|
|
|
++ message(" -> ${item}")
|
|
|
++ endforeach(item IN LISTS ${_lib_name}_SOURCES)
|
|
|
++
|
|
|
++ function(target_link_${_lib_name} TARGET)
|
|
|
++ # message("target_link_${_lib_name}")
|
|
|
++ message(" -> (include): ${${_lib_name}_SOURCE_PATH}")
|
|
|
++ target_include_directories(${TARGET} PUBLIC "${${_lib_name}_SOURCE_PATH}")
|
|
|
++ target_link_libraries(${TARGET} ${_lib_name})
|
|
|
++ endfunction(target_link_${_lib_name} TARGET)
|
|
|
++
|
|
|
++ function(target_include_${_lib_name} TARGET)
|
|
|
++ # message("target_link_${_lib_name}")
|
|
|
++ message(" -> (include): ${${_lib_name}_SOURCE_PATH}")
|
|
|
++ target_include_directories(${TARGET} PUBLIC "${${_lib_name}_SOURCE_PATH}")
|
|
|
++ # target_link_libraries(${TARGET} ${_lib_name})
|
|
|
++ endfunction(target_include_${_lib_name} TARGET)
|
|
|
++
|
|
|
++ # file(GLOB HEADER_LIST RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${${_lib_name}_SOURCE_PATH}/*.h)
|
|
|
++ target_include_directories(${_lib_name} PUBLIC "${${_lib_name}_SOURCE_PATH}")
|
|
|
++
|
|
|
++ # 如果想用以下操作手动实现 target_link_include_directories
|
|
|
++ # 请注意对 LIST 类型使用 "" 进行包围
|
|
|
++ # target_link_include_directories 的 PUBLIC 将会填充(追加)目标的 INCLUDE_DIRECTORIES 属性
|
|
|
++ # target_link_include_directories 支持 cmake 生成大表达式,更容易操作,手动将无法实现此类能力
|
|
|
++ # target_link_include_directories 支持相对路径和绝对路径参数
|
|
|
++ # 手动操作将必须使用绝对路径,这是不好的地方
|
|
|
++ # get_target_property(_lib_include_directories ${_lib_name} INCLUDE_DIRECTORIES)
|
|
|
++ # list(APPEND _lib_include_directories "${CMAKE_CURRENT_LIST_DIR}/${${_lib_name}_SOURCE_PATH}")
|
|
|
++ # message("----> ${CMAKE_CURRENT_LIST_DIR}/${${_lib_name}_SOURCE_PATH}")
|
|
|
++ # message("----> ${_lib_include_directories}")
|
|
|
++ # set_target_properties(${_lib_name} PROPERTIES
|
|
|
++ # INCLUDE_DIRECTORIES "${_lib_include_directories}"
|
|
|
++ # INTERFACE_INCLUDE_DIRECTORIES "${_lib_include_directories}"
|
|
|
++ # )
|
|
|
++
|
|
|
++endmacro(spark_add_library_path _lib_name _lib_path)
|
|
|
++
|
|
|
++# spark_add_executable <exec_name> [files]...
|
|
|
++# 构建一个可执行文件,基于指定的源文件
|
|
|
++ # Qt编译时源文件包括很多类型,需要指定 *.h/*.cpp/*.qrc/*.qm/... 等
|
|
|
++macro(spark_add_executable _exec_name)
|
|
|
++
|
|
|
++ message("================ ${_exec_name} Executable ================")
|
|
|
++ add_executable(${_exec_name} ${ARGN})
|
|
|
++
|
|
|
++endmacro(spark_add_executable _exec_name)
|
|
|
++
|
|
|
++macro(spark_add_executable_path _exec_name _exec_path)
|
|
|
++ aux_source_directory(${_exec_path} ${_exec_name}_SOURCES)
|
|
|
++
|
|
|
++ message("================ ${_exec_name} Executable ================")
|
|
|
++ file(GLOB UI_LIST RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${_exec_path}/*.ui)
|
|
|
++ add_executable(${_exec_name} ${${_exec_name}_SOURCES} ${ARGN} ${UI_LIST})
|
|
|
++ foreach(item IN LISTS ${_exec_name}_SOURCES)
|
|
|
++ message(" -> ${item}")
|
|
|
++ endforeach(item IN LISTS ${_exec_name}_SOURCES)
|
|
|
++
|
|
|
++ # function(target_link_${_exec_name} TARGET)
|
|
|
++ # message("target_link_${_lib_name}")
|
|
|
++ message(" -> (include): ${_exec_path}")
|
|
|
++ target_include_directories(${_exec_name} PUBLIC "${_exec_path}")
|
|
|
++ # target_link_libraries(${TARGET} ${_lib_name})
|
|
|
++ # endfunction(target_link_${_exec_name} TARGET)
|
|
|
++ # target_link_${_exec_name}(${_exec_name})
|
|
|
++
|
|
|
++endmacro(spark_add_executable_path _exec_name _exec_path)
|
|
|
++
|
|
|
++# spark_find_library
|
|
|
++# 搜索一个库,基于指定的库名,调用 pkg-config 搜索库
|
|
|
++ # 并根据库名生成一个 target_link_<prefix> 函数
|
|
|
++macro(spark_find_library _prefix)
|
|
|
++ find_package(PkgConfig REQUIRED)
|
|
|
++
|
|
|
++ # libnotify
|
|
|
++ pkg_check_modules(${_prefix} ${ARGN})
|
|
|
++ function(target_link_${_prefix} TARGET)
|
|
|
++ target_include_directories(${TARGET} PUBLIC
|
|
|
++ ${${_prefix}_INCLUDE_DIRS})
|
|
|
++ target_link_libraries(${TARGET}
|
|
|
++ ${${_prefix}_LIBRARIES})
|
|
|
++ endfunction(target_link_${_prefix} TARGET)
|
|
|
++
|
|
|
++endmacro(spark_find_library _prefix)
|
|
|
++
|
|
|
++
|
|
|
++# spark_add_executable_paths
|
|
|
++# 自定义构建宏,基于指定的前缀名称,处理后续参数为子目录
|
|
|
++ # item: 为进行遍历后的单项,类似于 python3 中的 (for item in items:)
|
|
|
++ # file: 为在目录中不以递归(GLOB_RECURSE)方式寻找 qrc 文件,需要将其参与编译才能被 rcc
|
|
|
++ # 并根据 prefix-<item> 生成构建目标,
|
|
|
++macro(spark_add_executable_paths _prefix_path)
|
|
|
++ set(PATHS ${ARGN})
|
|
|
++ foreach(item IN LISTS PATHS)
|
|
|
++ file(GLOB QRCS "${item}/*.qrc")
|
|
|
++ message(">>> add_executable: " "${_prefix_path}-${item} ${item} + ${QRCS}")
|
|
|
++ spark_add_executable_path(${_prefix_path}-${item} ${item} ${QRCS})
|
|
|
++ target_link_qt5(${_prefix_path}-${item})
|
|
|
++ endforeach(item IN LISTS PATHS)
|
|
|
++endmacro(spark_add_executable_paths _prefix_path)
|
|
|
++
|
|
|
++# spark_add_link
|
|
|
++# 自定义宏以代替当前使用 fucntion 定义 target_link_<name> 结构
|
|
|
++ # _IN_NAME: 此宏生成 target_link_<name> 的要求参数
|
|
|
++ # ARGN: 此宏剩余的参数列表
|
|
|
++ # 在使用 target_link_<name> 时
|
|
|
++ # _NAME: 用于此 fucntion 中的要求参数: <_NAME>目标将要连接此库
|
|
|
++macro(spark_add_link _IN_NAME)
|
|
|
++ function(target_link_${_IN_NAME} _NAME)
|
|
|
++ message("LINK ${_NAME} ${ARGN}")
|
|
|
++ target_link_libraries(${_NAME}
|
|
|
++ ${ARGN})
|
|
|
++ endfunction(target_link_${_IN_NAME} _NAME)
|
|
|
++endmacro(spark_add_link _IN_NAME)
|
|
|
+diff --git a/cmake/SparkMacrosExtendConfig.cmake b/cmake/SparkMacrosExtendConfig.cmake
|
|
|
+new file mode 100644
|
|
|
+index 0000000..bd15f0d
|
|
|
+--- /dev/null
|
|
|
++++ b/cmake/SparkMacrosExtendConfig.cmake
|
|
|
+@@ -0,0 +1,237 @@
|
|
|
++
|
|
|
++# find_plus
|
|
|
++# 寻找 INVAl 传入的字符串,如果存在 + 字符将写入位置到 OUTVAL
|
|
|
++function(find_plus INVAL OUTVAL)
|
|
|
++ string(FIND "${INVAL}" "+" plus_index)
|
|
|
++ set(${OUTVAL} ${plus_index} PARENT_SCOPE)
|
|
|
++ # if(plus_index LESS 0)
|
|
|
++ # set(${OUTVAL} -1 PARENT_SCOPE)
|
|
|
++ # else()
|
|
|
++ # set(${OUTVAL} ${plus_index} PARENT_SCOPE)
|
|
|
++ # endif(plus_index LESS 0)
|
|
|
++endfunction(find_plus INVAL OUTVAL)
|
|
|
++
|
|
|
++# find_plus("FF" FFFF)
|
|
|
++# message("--> FFFF ${FFFF}") # --> FFFF -1
|
|
|
++# find_plus("F+F" FFFF)
|
|
|
++# message("--> FFFF ${FFFF}") # --> FFFF 1
|
|
|
++# find_plus("+F+F" FFFF)
|
|
|
++# message("--> FFFF ${FFFF}") # --> FFFF 0
|
|
|
++
|
|
|
++# set(FFF)
|
|
|
++# list(APPEND FFFF )
|
|
|
++# list(APPEND FFFF "F")
|
|
|
++# list(APPEND FFFF "FA")
|
|
|
++# message("--> FFFF: ${FFFF}") # --> FFFF: F;FA
|
|
|
++
|
|
|
++# set(FFFFS "")
|
|
|
++# list(APPEND FFFFS ${FFFF})
|
|
|
++# message("--> FFFFS: ${FFFFS}") # --> FFFFS: F;FA
|
|
|
++
|
|
|
++# set(FFFF "+AA+BB+CC+DD")
|
|
|
++# string(REPLACE "+" ";" FFFFL "${FFFF}")
|
|
|
++# list(LENGTH FFFFL FFFFLEN)
|
|
|
++# message("--> FFFFL: ${FFFFL} --> ${FFFFLEN}") # --> FFFFL: F;
|
|
|
++
|
|
|
++# plus_list
|
|
|
++# 将传入的 "+AAA+BBB+CCC" 类型数据变成一个 列表(list)
|
|
|
++# 适用于不使用 string 进行替换 + 为 ";" 的情况下使用直接变成 list
|
|
|
++function(plus_list INVAL OUTVAL OUTVALLEN)
|
|
|
++ # set(${OUTVAL} "..." PARENT_SCOPE)
|
|
|
++ # set(${OUTVALLEN} 0 PARENT_SCOPE)
|
|
|
++
|
|
|
++ set(_tmps "") # 设置为空的
|
|
|
++
|
|
|
++ # 寻找下一个 + 位置
|
|
|
++ find_plus(${INVAL} RIGHT_PLUS)
|
|
|
++
|
|
|
++ string(LENGTH "${INVAL}" INVALLEN)
|
|
|
++ message("--> 传入的 INVAL: --> 内容: ${INVAL}")
|
|
|
++ message("--> 传入的 INVAL: --> 长度: ${INVALLEN}")
|
|
|
++ message("--> 传入的 INVAL: --> +位置: ${RIGHT_PLUS}")
|
|
|
++
|
|
|
++ # 判断是否有右侧 + 号
|
|
|
++ if(RIGHT_PLUS LESS 0)
|
|
|
++ message("--> 传入的 INVAL: --> 无需计算新的+位置")
|
|
|
++ # message("--> 计算新的 + 位置: ${_PLUSINDEX}")
|
|
|
++ list(APPEND _tmps ${INVAL})
|
|
|
++ else()
|
|
|
++ math(EXPR _PLUSINDEX "${RIGHT_PLUS}+1")
|
|
|
++ message("--> 传入的 INVAL: --> 需计算+位置 --> 右移: ${_PLUSINDEX}")
|
|
|
++
|
|
|
++ string(SUBSTRING "${INVAL}" ${_PLUSINDEX} ${INVALLEN} NewVal)
|
|
|
++ message("--> 传入的 INVAL: --> 需计算+位置 --> 右移: ${_PLUSINDEX} -> 内容: ${NewVal}")
|
|
|
++ # string(REPLACE "+" ";" _tmps "${NewVal}")
|
|
|
++ # list(LENGTH FFFFL FFFFLEN)
|
|
|
++
|
|
|
++ # message("--> 计算新的 + 位置: ${_PLUSINDEX} --> 后面的 NewVal: ${NewVal}")
|
|
|
++
|
|
|
++ # find_plus(${NewVal} _NextPlus)
|
|
|
++ # if(_NextPlus LESS 0)
|
|
|
++ # list(APPEND _tmps ${NewVal})
|
|
|
++ # message("--> 追加新的 + 位置: ${_PLUSINDEX} --> 后面的")
|
|
|
++ # else()
|
|
|
++ # message("--> 追加新的 + 位置: ${_PLUSINDEX} --> 后面的")
|
|
|
++ # # 重新
|
|
|
++ # # plus_list(${NewVal} NewValS )
|
|
|
++ # # foreach(item)
|
|
|
++ # # list(APPEND _tmps ${item})
|
|
|
++ # # endforeach(item)
|
|
|
++ # endif(_NextPlus LESS 0)
|
|
|
++ endif(RIGHT_PLUS LESS 0)
|
|
|
++
|
|
|
++ set(${OUTVAL} ${_tmps} PARENT_SCOPE)
|
|
|
++ list(LENGTH _tmps _tmps_len)
|
|
|
++ set(${OUTVALLEN} ${_tmps_len} PARENT_SCOPE)
|
|
|
++
|
|
|
++endfunction(plus_list INVAL OUTVAL OUTVALLEN)
|
|
|
++
|
|
|
++# plus_list("+AAA+BBB+CCC+DDD" FFF FFLEN)
|
|
|
++# message("--------> ${FFF}: -> ${FFLEN}")
|
|
|
++
|
|
|
++# spark_add_library_realpaths
|
|
|
++# 基于传入的项进行构建
|
|
|
++# 可接受的值为: 路径列表
|
|
|
++# 可接受的值为: 路径列表+依赖库A+依赖库B
|
|
|
++macro(spark_add_library_realpaths)
|
|
|
++ message("---> 基于传入的项进行构建 <---")
|
|
|
++ # message("--> src/unclassified/ItemDelegates/NdStyledItemDelegate")
|
|
|
++ # string(FIND <string> <substring> <output_variable> [REVERSE])
|
|
|
++ # string(SUBSTRING <string> <begin> <length> <output_variable>)
|
|
|
++ # math(EXPR value "100 * 0xA" OUTPUT_FORMAT DECIMAL) # value is set to "1000"
|
|
|
++
|
|
|
++ set(REALPATHS ${ARGN})
|
|
|
++ foreach(REALPATH IN LISTS REALPATHS)
|
|
|
++ message("---> 传入路径: ${REALPATH} <--- ")
|
|
|
++ string(LENGTH "${REALPATH}" REALPATH_LENGTH)
|
|
|
++ message("---> 计算传入路径长度: --> 长度: ${REALPATH_LENGTH}")
|
|
|
++
|
|
|
++ string(FIND "${REALPATH}" "/" LASTINDEX REVERSE)
|
|
|
++ message("---> 计算传入路径末尾/位置: --> 长度: ${LASTINDEX}")
|
|
|
++ math(EXPR LASTINDEX "${LASTINDEX}+1")
|
|
|
++ message("---> 计算传入路径末尾/右移: --> 长度: ${LASTINDEX}")
|
|
|
++ string(SUBSTRING "${REALPATH}" ${LASTINDEX} ${REALPATH_LENGTH} REALNAME_Dependency)
|
|
|
++
|
|
|
++ # 找 + 号下标,这是找+号的函数
|
|
|
++ find_plus(${REALPATH} RIGHT_PLUS)
|
|
|
++
|
|
|
++ # 判断是否有找到 + 号下标,值为 -1 或 正整数
|
|
|
++ if(RIGHT_PLUS LESS 0) # 小于0: 不存在 + 号
|
|
|
++ set(REALNAME "${REALNAME_Dependency}")
|
|
|
++ message("---> 传入路径末尾/右移部分: --> ${REALNAME} <-- 无依赖+")
|
|
|
++
|
|
|
++ message("---> 构建 ${REALNAME} -> ${REALNAME} ${REALPATH} ")
|
|
|
++
|
|
|
++ spark_add_library_path(${REALNAME} ${REALPATH})
|
|
|
++
|
|
|
++ if(SPARK_FIND_QT5)
|
|
|
++ target_link_qt5(${REALNAME})
|
|
|
++ endif(SPARK_FIND_QT5)
|
|
|
++
|
|
|
++ if(SPARK_FIND_QT6)
|
|
|
++ target_link_qt6(${REALNAME})
|
|
|
++ endif(SPARK_FIND_QT6)
|
|
|
++
|
|
|
++ else()
|
|
|
++ message("---> 传入路径末尾/右移部分: --> ${REALNAME_Dependency} <-- 依赖+")
|
|
|
++
|
|
|
++ # 存在+号,将截取从 / 到 + 号之间的内容作为目标名称
|
|
|
++ # 例如 src/unclassified/widgets/DocTypeListView+JsonDeploy
|
|
|
++ # ^(LASTINDEX) ^(RIGHT_PLUS)
|
|
|
++ # 将 RIGHT_PLUS - LASTINDEX 计算出 DocTypeListView 字符长度
|
|
|
++ math(EXPR REALNAME_LENGTH "${RIGHT_PLUS}-${LASTINDEX}")
|
|
|
++
|
|
|
++ message("---> 计算传入路径末尾/右移部分: --> 位置: ${RIGHT_PLUS}")
|
|
|
++ # message("---> 计算传入路径末尾/右移部分: --> 长度: ${REALNAME_Dependency}")
|
|
|
++
|
|
|
++ # 目标名称为 DocTypeListView
|
|
|
++ # 依赖为 JsonDeploy
|
|
|
++ # set(REALNAME "")
|
|
|
++ string(SUBSTRING "${REALPATH}" 0 ${RIGHT_PLUS} _REALPATH_DIR)
|
|
|
++ string(SUBSTRING "${REALPATH}" ${LASTINDEX} ${REALNAME_LENGTH} REALNAME)
|
|
|
++
|
|
|
++ message("---> 计算传入路径末尾/右移部分: --> 库名: ${REALNAME}")
|
|
|
++
|
|
|
++ string(SUBSTRING "${REALPATH}" ${RIGHT_PLUS} ${REALPATH_LENGTH} Dependency)
|
|
|
++ message("---> 计算传入路径末尾/右移部分: --> 库名: ${REALNAME} --> +部分: ${Dependency}")
|
|
|
++
|
|
|
++ # plus_list(${Dependency} dependencies dependencies_len)
|
|
|
++ string(REPLACE "+" ";" dependencies "${Dependency}")
|
|
|
++ message("---> 计算传入路径末尾/右移部分: --> 库名: ${REALNAME} --> +部分: ${Dependency} --> 列表: ${dependencies} <-- ")
|
|
|
++
|
|
|
++
|
|
|
++ message("---> 构建 ${REALNAME} -> ${REALNAME} ${_REALPATH_DIR}")
|
|
|
++
|
|
|
++ spark_add_library_path(${REALNAME} ${_REALPATH_DIR})
|
|
|
++ # target_link_qt5(${REALNAME}) # 使用依赖的依赖或许也不错
|
|
|
++
|
|
|
++ target_include_directories(${REALNAME} PUBLIC ${_REALPATH_DIR})
|
|
|
++ target_link_libraries(${REALNAME} ${dependencies})
|
|
|
++
|
|
|
++ endif(RIGHT_PLUS LESS 0)
|
|
|
++ endforeach(REALPATH IN LISTS REALPATHS)
|
|
|
++
|
|
|
++endmacro(spark_add_library_realpaths)
|
|
|
++
|
|
|
++
|
|
|
++# spark_aux_source_paths
|
|
|
++# 将指定路径中的文件变成可用的AUX源文件列表
|
|
|
++macro(spark_aux_source_paths AUX_VAR)
|
|
|
++ set(${AUX_VAR} "")
|
|
|
++ set(${AUX_VAR}_PATHS ${ARGN})
|
|
|
++
|
|
|
++ foreach(aux_path IN LISTS ${AUX_VAR}_PATHS)
|
|
|
++ # message("aux_path: ${aux_path}")
|
|
|
++ aux_source_directory(${aux_path} ${AUX_VAR})
|
|
|
++ endforeach(aux_path IN LISTS ${AUX_VAR}_PATHS)
|
|
|
++
|
|
|
++endmacro(spark_aux_source_paths AUX_VAR)
|
|
|
++
|
|
|
++# spark_file_glob
|
|
|
++#
|
|
|
++macro(spark_file_glob FGLOB_VAR)
|
|
|
++ set(${FGLOB_VAR} "")
|
|
|
++ set(${FGLOB_VAR}_PATHS ${ARGN})
|
|
|
++
|
|
|
++ foreach(fglob_path IN LISTS ${FGLOB_VAR}_PATHS)
|
|
|
++
|
|
|
++ file(GLOB FGLOB_PATH_SRCS ${fglob_path})
|
|
|
++ foreach(fglob_path_src IN LISTS FGLOB_PATH_SRCS)
|
|
|
++ # message(" -> ${item}")
|
|
|
++ list(APPEND ${FGLOB_VAR} ${fglob_path_src})
|
|
|
++ endforeach(fglob_path_src IN LISTS FGLOB_PATH_SRCS)
|
|
|
++
|
|
|
++ endforeach(fglob_path IN LISTS ${FGLOB_VAR}_PATHS)
|
|
|
++
|
|
|
++endmacro(spark_file_glob FGLOB_VAR)
|
|
|
++
|
|
|
++
|
|
|
++# spark_add_source_paths
|
|
|
++# 将指定路径中的文件变成可用的源文件列表
|
|
|
++#
|
|
|
++macro(spark_add_source_paths SOURCE_VAR)
|
|
|
++ set(${SOURCE_VAR} "")
|
|
|
++ set(${SOURCE_VAR}_PATHS ${ARGN})
|
|
|
++
|
|
|
++ spark_aux_source_paths(${SOURCE_VAR} ${ARGN})
|
|
|
++ foreach(source_path IN LISTS ${SOURCE_VAR}_PATHS)
|
|
|
++ # list(APPEND ${SOURCE_VAR}_PATHS ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_PATH})
|
|
|
++ # aux_source_directory(${SOURCE_PATH} _SOURCES)
|
|
|
++ # foreach(item IN LISTS _SOURCES)
|
|
|
++ # # message(" -> ${item}")
|
|
|
++ # list(APPEND ${SOURCE_VAR} ${item})
|
|
|
++ # endforeach(item IN LISTS _SOURCES)
|
|
|
++
|
|
|
++ # file(GLOB HEADER_LIST RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${SOURCE_PATH}/*.h)
|
|
|
++ # foreach(item IN LISTS HEADER_LIST)
|
|
|
++ # # message(" -> ${item}")
|
|
|
++ # list(APPEND ${SOURCE_VAR} ${item})
|
|
|
++ # endforeach(item IN LISTS HEADER_LIST)
|
|
|
++
|
|
|
++ file(GLOB UI_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${source_path}/*.ui)
|
|
|
++ foreach(ui_src IN LISTS UI_SRCS)
|
|
|
++ # message(" -> ${item}")
|
|
|
++ list(APPEND ${SOURCE_VAR} ${ui_src})
|
|
|
++ endforeach(ui_src IN LISTS UI_SRCS)
|
|
|
++ endforeach(source_path IN LISTS ${SOURCE_VAR}_PATHS)
|
|
|
++endmacro(spark_add_source_paths SOURCE_VAR)
|
|
|
+--
|
|
|
+2.20.1
|
|
|
+
|
|
|
+
|
|
|
+From fe8a5e0bd891cc978c8fae6f43e34c9457e282a3 Mon Sep 17 00:00:00 2001
|
|
|
+From: zinface <[email protected]>
|
|
|
+Date: Sun, 5 Feb 2023 13:00:22 +0800
|
|
|
+Subject: [PATCH 8/8] =?UTF-8?q?repo:=20=E5=B0=86=E7=8E=B0=E6=9C=89?=
|
|
|
+ =?UTF-8?q?=E6=9E=84=E5=BB=BA=E8=BD=AC=E4=B8=BA=20spark=20=E5=8C=96?=
|
|
|
+MIME-Version: 1.0
|
|
|
+Content-Type: text/plain; charset=UTF-8
|
|
|
+Content-Transfer-Encoding: 8bit
|
|
|
+
|
|
|
+---
|
|
|
+ CMakeLists.txt | 120 +++++++++++++++++++++++++++----------------------
|
|
|
+ 1 file changed, 66 insertions(+), 54 deletions(-)
|
|
|
+
|
|
|
+diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
|
+index 60e9171..d990b1d 100644
|
|
|
+--- a/CMakeLists.txt
|
|
|
++++ b/CMakeLists.txt
|
|
|
+@@ -1,60 +1,72 @@
|
|
|
+ cmake_minimum_required(VERSION 3.22)
|
|
|
++
|
|
|
+ project(notepad-- VERSION 1.22.0)
|
|
|
+
|
|
|
+-set(CMAKE_AUTOMOC ON)
|
|
|
+-set(CMAKE_AUTOUIC ON)
|
|
|
+-set(CMAKE_AUTORCC ON)
|
|
|
+-
|
|
|
+-find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets Concurrent Network PrintSupport XmlPatterns)
|
|
|
+-
|
|
|
+-# TODO: use system provided libraries to build
|
|
|
+-# current status: some header can not be found,for example: Scintilla.h
|
|
|
+-find_library(QSCINTILLA_LIB_PATH qscintilla2_qt5)
|
|
|
+-find_path(QSCINTILLA_INC_PATH qsciscintilla.h PATHS /usr/include/)
|
|
|
+-find_path(SCINTILLA_INC_PATH Scintilla.h PATHS /usr/include/)
|
|
|
+-if((${QSCINTILLA_LIB_PATH} STREQUAL "QSCINTILLA_LIB_PATH-NOTFOUND") OR
|
|
|
+- (${QSCINTILLA_INC_PATH} STREQUAL "QSCINTILLA_INC_PATH-NOTFOUND") OR
|
|
|
+- (${SCINTILLA_INC_PATH} STREQUAL "SCINTILLA_INC_PATH-NOTFOUND") )
|
|
|
+-set(NOTEPAD_USE_SYS_LIB OFF)
|
|
|
+-message("system libraries or header not found,build from local")
|
|
|
+-add_subdirectory(${PROJECT_SOURCE_DIR}/src/qscint)
|
|
|
+-else()
|
|
|
+-set(NOTEPAD_USE_SYS_LIB ON)
|
|
|
+-message("use system libraries")
|
|
|
+-message("QSCINTILLA_LIB_PATH:" ${QSCINTILLA_LIB_PATH})
|
|
|
+-message("QSCINTILLA_INC_PATH:" ${QSCINTILLA_INC_PATH})
|
|
|
+-message("SCINTILLA_INC_PATH:" ${SCINTILLA_INC_PATH})
|
|
|
+-endif()
|
|
|
+-
|
|
|
+-file(GLOB UI_SRC ${PROJECT_SOURCE_DIR}/src/*.ui)
|
|
|
+-set(UI_SRC ${UI_SRC} ${PROJECT_SOURCE_DIR}/src/cceditor/ccnotepad.ui)
|
|
|
+-aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC)
|
|
|
+-aux_source_directory(${PROJECT_SOURCE_DIR}/src/cceditor SRC)
|
|
|
+-
|
|
|
+-add_executable(${PROJECT_NAME} ${SRC} ${UI_SRC} ${PROJECT_SOURCE_DIR}/src/RealCompare.qrc)
|
|
|
+-target_include_directories(${PROJECT_NAME} PRIVATE
|
|
|
+-${PROJECT_SOURCE_DIR}/src
|
|
|
+-${PROJECT_SOURCE_DIR}/src/cceditor
|
|
|
+-)
|
|
|
+-
|
|
|
+-if(NOTEPAD_USE_SYS_LIB)
|
|
|
+-target_include_directories(${PROJECT_NAME} PRIVATE ${QSCINTILLA_INC_PATH} ${SCINTILLA_INC_PATH})
|
|
|
+-endif()
|
|
|
+-
|
|
|
+-target_link_libraries(${PROJECT_NAME} qscintilla2_qt5 Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Concurrent Qt5::Network Qt5::PrintSupport Qt5::XmlPatterns)
|
|
|
+-
|
|
|
+-install(
|
|
|
+- TARGETS ${PROJECT_NAME}
|
|
|
+- DESTINATION "bin"
|
|
|
+-)
|
|
|
+-
|
|
|
+-install(DIRECTORY ${PROJECT_SOURCE_DIR}/src/linux/usr
|
|
|
+- DESTINATION "/")
|
|
|
+-
|
|
|
+-include(${PROJECT_SOURCE_DIR}/cmake/package_config.cmake)
|
|
|
+-include(CPack)
|
|
|
+-
|
|
|
+-target_link_libraries(${PROJECT_NAME} qscint Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Concurrent Qt5::Network Qt5::PrintSupport Qt5::XmlPatterns)
|
|
|
++include(cmake/SparkEnvConfig.cmake)
|
|
|
++include(cmake/SparkMacrosConfig.cmake)
|
|
|
++include(cmake/SparkFindQt5Config.cmake)
|
|
|
++# include(cmake/SparkFindQt6Config.cmake)
|
|
|
++include(cmake/SparkMacrosExtendConfig.cmake)
|
|
|
++
|
|
|
++# ----------------- Build QScint ----------------- #
|
|
|
++if(TRUE)
|
|
|
++ # add_subdirectory(${PROJECT_SOURCE_DIR}/src/qscint)
|
|
|
++ # file(GLOB MOC_HEADER src/qscint/src/Qsci/*.h)
|
|
|
++ spark_file_glob(MOC_HEADER "src/qscint/src/Qsci/*.h")
|
|
|
++
|
|
|
++ spark_add_source_paths(QSciSources
|
|
|
++ src/qscint/src
|
|
|
++ src/qscint/scintilla/lexers
|
|
|
++ src/qscint/scintilla/lexlib
|
|
|
++ src/qscint/scintilla/src
|
|
|
++ src/qscint/scintilla/boostregex
|
|
|
++
|
|
|
++ # src/qscint/src/Qsci
|
|
|
++ # FAIL: only *.ui will spark_file_glob(MOC_HEADER ...)
|
|
|
++ )
|
|
|
++ spark_add_library(QSci STATIC ${QSciSources} ${MOC_HEADER})
|
|
|
++ target_compile_definitions(QSci PRIVATE SCINTILLA_QT SCI_LEXER INCLUDE_DEPRECATED_FEATURES)
|
|
|
++ target_include_directories(QSci PRIVATE
|
|
|
++ src/qscint/scintilla/boostregex
|
|
|
++ src/qscint/scintilla/lexlib)
|
|
|
++ target_include_directories(QSci PUBLIC
|
|
|
++ src/qscint/src
|
|
|
++ src/qscint/src/Qsci
|
|
|
++ src/qscint/scintilla/src
|
|
|
++ src/qscint/scintilla/include)
|
|
|
++ target_link_qt5(QSci)
|
|
|
++ target_link_qt5_PrintSupport(QSci)
|
|
|
++ target_link_qt5_Concurrent(QSci)
|
|
|
++endif(TRUE)
|
|
|
++
|
|
|
++
|
|
|
++# ----------------- Build CCEditor ----------------- #
|
|
|
++if(TRUE)
|
|
|
++
|
|
|
++ # 准备构建 CCEditor
|
|
|
++ set(QRC_SOURCES src/RealCompare.qrc)
|
|
|
++ spark_aux_source_paths(CCEditorSources
|
|
|
++ src
|
|
|
++ src/cceditor
|
|
|
++ )
|
|
|
++ spark_add_executable(${PROJECT_NAME} ${CCEditorSources} ${QRC_SOURCES})
|
|
|
++ target_include_directories(${PROJECT_NAME} PRIVATE
|
|
|
++ ${PROJECT_SOURCE_DIR}/src
|
|
|
++ ${PROJECT_SOURCE_DIR}/src/cceditor
|
|
|
++
|
|
|
++ ${PROJECT_SOURCE_DIR}/src/qscint/src
|
|
|
++ ${PROJECT_SOURCE_DIR}/src/qscint/src/Qsci
|
|
|
++ ${PROJECT_SOURCE_DIR}/src/qscint/scintilla/src
|
|
|
++ ${PROJECT_SOURCE_DIR}/src/qscint/scintilla/include
|
|
|
++ ${PROJECT_SOURCE_DIR}/src/qscint/scintilla/lexlib
|
|
|
++ ${PROJECT_SOURCE_DIR}/src/qscint/scintilla/boostregex
|
|
|
++ )
|
|
|
++ # target_link_libraries(${PROJECT_NAME} QSci)
|
|
|
++ target_link_QSci(${PROJECT_NAME})
|
|
|
++ target_link_qt5_XmlPatterns(${PROJECT_NAME})
|
|
|
++
|
|
|
++endif(TRUE)
|
|
|
++
|
|
|
+
|
|
|
+ if(CMAKE_HOST_UNIX)
|
|
|
+ include(cmake/SparkInstallMacrosConfig.cmake)
|
|
|
+--
|
|
|
+2.20.1
|
|
|
+
|