diff --git a/.gitignore b/.gitignore
index 9b8015da..c8f4c823 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,17 @@ Makefile
 .qmake.cache
 .qmake.super
 *.pro.user*
+.vscode
+.qmake.stash
+config.cache
+config.log
+config.opt
+config.status.bat
+config.summary
+*/config.tests/*
+*.o
+*.obj
+*.moc
+moc_*.cpp
+*-debug/
+*-release/
\ No newline at end of file
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 00000000..805db031
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,182 @@
+stages:
+  - HarmonyOS-17
+  - HarmonyOS-16
+  - HarmonyOS-15
+  - HarmonyOS-14
+  - HarmonyOS-13
+  - OpenHarmony-15
+
+
+variables:
+  GIT_SUBMODULE_STRATEGY: recursive
+
+###################### Qt5.15.12 ######################
+
+Qt5_15_12-OHOS17 for Windows:
+  stage: HarmonyOS-17
+  variables:
+    BUILD_TYPE: profile
+    OHOS_ARCH: arm64-v8a
+    SELECT_OHOS_API: 17
+  script:
+    - .\issbuild\harmonyos\windows_build.bat
+  tags:
+    - Windows_x86_64_Shared_Runner
+  only:
+    - 5.15.12-ohos-next
+  
+Qt5_15_12-OHOS16 for Windows:
+  stage: HarmonyOS-16
+  variables:
+    BUILD_TYPE: profile
+    OHOS_ARCH: arm64-v8a
+    SELECT_OHOS_API: 16
+  script:
+    - .\issbuild\harmonyos\windows_build.bat
+  tags:
+    - Windows_x86_64_Shared_Runner
+  only:
+    - 5.15.12-ohos-next
+
+Qt5_15_12-OHOS15 for Windows:
+  stage: HarmonyOS-15
+  variables:
+    BUILD_TYPE: profile
+    OHOS_ARCH: arm64-v8a
+    SELECT_OHOS_API: 15
+  script:
+    - .\issbuild\harmonyos\windows_build.bat
+  tags:
+    - Windows_x86_64_Shared_Runner
+  only:
+    - 5.15.12-ohos-next
+
+.Qt5_15_12-OHOS14 for Windows:
+  stage: HarmonyOS-14
+  variables:
+    BUILD_TYPE: profile
+    OHOS_ARCH: arm64-v8a
+    SELECT_OHOS_API: 14
+  script:
+    - .\issbuild\harmonyos\windows_build.bat
+  tags:
+    - Windows_x86_64_Shared_Runner
+  only:
+    - 5.15.12-ohos-next
+
+Qt5_15_12-OHOS17 for Linux:
+  stage: HarmonyOS-17
+  variables:
+    BUILD_TYPE: profile
+    OHOS_ARCH: arm64-v8a
+  script:
+    - chmod +x ./issbuild/harmonyos/*
+    - ./issbuild/harmonyos/linux_build.sh
+  tags:
+    - Linux_x86_64_Shared_Runner
+  image:
+    name: liyaosong/ohos-sdk:17
+  only:
+    - 5.15.12-ohos-next
+
+Qt5_15_12-OHOS16 for Linux:
+  stage: HarmonyOS-16
+  variables:
+    BUILD_TYPE: profile
+    OHOS_ARCH: arm64-v8a
+  script:
+    - chmod +x ./issbuild/harmonyos/*
+    - ./issbuild/harmonyos/linux_build.sh
+  tags:
+    - Linux_x86_64_Shared_Runner
+  image:
+    name: liyaosong/ohos-sdk:16
+  only:
+    - 5.15.12-ohos-next
+
+Qt5_15_12-OHOS15 for Linux:
+  stage: HarmonyOS-15
+  variables:
+    BUILD_TYPE: profile
+    OHOS_ARCH: arm64-v8a
+  script:
+    - chmod +x ./issbuild/harmonyos/*
+    - ./issbuild/harmonyos/linux_build.sh
+  tags:
+    - Linux_x86_64_Shared_Runner
+  image:
+    name: liyaosong/ohos-sdk:15
+  only:
+    - 5.15.12-ohos-next
+
+.Qt5_15_12-OHOS14 for Linux:
+  stage: HarmonyOS-14
+  variables:
+    BUILD_TYPE: profile
+    OHOS_ARCH: arm64-v8a
+  script:
+    - chmod +x ./issbuild/harmonyos/*
+    - ./issbuild/harmonyos/linux_build.sh
+  tags:
+    - Linux_x86_64_Shared_Runner
+  image:
+    name: liyaosong/ohos-sdk:14
+  only:
+    - 5.15.12-ohos-next
+  
+######################## OpenHarmony-15 ######################
+Qt5_15_12-OpenHarmony15 for Windows:
+  stage: OpenHarmony-15
+  variables:
+    BUILD_TYPE: profile
+    OHOS_ARCH: arm64-v8a
+    SELECT_OHOS_API: 15
+  script:
+    - .\issbuild\openharmony\windows_build.bat
+  tags:
+    - Windows_x86_64_Shared_Runner
+  only:
+    - 5.15.12-openharmony
+
+Qt5_15_12-OpenHarmony15-arm32 for Windows:
+  stage: OpenHarmony-15
+  variables:
+    BUILD_TYPE: profile
+    OHOS_ARCH: armeabi-v7a
+    SELECT_OHOS_API: 15
+  script:
+    - .\issbuild\openharmony\windows_build.bat
+  tags:
+    - Windows_x86_64_Shared_Runner
+  only:
+    - 5.15.12-openharmony
+
+.Qt5_15_12-OpenHarmony15 for Linux:
+  stage: OpenHarmony-15
+  variables:
+    BUILD_TYPE: profile
+    OHOS_ARCH: arm64-v8a
+  script:
+    - chmod +x ./issbuild/openharmony/*
+    - ./issbuild/openharmony/linux_build.sh
+  tags:
+    - Linux_x86_64_Shared_Runner
+  image:
+    name: liyaosong/ohos-sdk:15
+  only:
+    - 5.15.12-openharmony
+
+.Qt5_15_12-OpenHarmony15-arm32 for Linux:
+  stage: OpenHarmony-15
+  variables:
+    BUILD_TYPE: profile
+    OHOS_ARCH: armeabi-v7a
+  script:
+    - chmod +x ./issbuild/openharmony/*
+    - ./issbuild/openharmony/linux_build.sh
+  tags:
+    - Linux_x86_64_Shared_Runner
+  image:
+    name: liyaosong/ohos-sdk:15
+  only:
+    - 5.15.12-openharmony
\ No newline at end of file
diff --git a/.gitmodules b/.gitmodules
index 45223365..424dc9f0 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,7 +1,7 @@
 [submodule "qtbase"]
 	path = qtbase
 	url = ../qtbase.git
-	branch = 5.15
+	branch = 5.15.12-ohos-next
 	status = essential
 [submodule "qtsvg"]
 	depends = qtbase
@@ -14,7 +14,7 @@
 	recommends = qtsvg
 	path = qtdeclarative
 	url = ../qtdeclarative.git
-	branch = 5.15
+	branch = 5.15.12-ohos-next
 	status = essential
 [submodule "qtactiveqt"]
 	depends = qtbase
@@ -27,21 +27,21 @@
 	recommends = qttools
 	path = qtscript
 	url = ../qtscript.git
-	branch = 5.15
+	branch = 5.15.12-ohos-next
 	status = deprecated
 [submodule "qtmultimedia"]
 	depends = qtbase
 	recommends = qtdeclarative
 	path = qtmultimedia
 	url = ../qtmultimedia.git
-	branch = 5.15
+	branch = 5.15.12-ohos-next
 	status = essential
 [submodule "qttools"]
 	depends = qtbase
 	recommends = qtdeclarative qtactiveqt
 	path = qttools
 	url = ../qttools.git
-	branch = 5.15
+	branch = 5.15.12-ohos-next
 	status = essential
 [submodule "qtxmlpatterns"]
 	depends = qtbase
@@ -75,7 +75,7 @@
 	depends = qtbase
 	path = qtqa
 	url = ../qtqa.git
-	branch = master
+	branch = dev
 	status = essential
 	priority = 50
 [submodule "qtlocation"]
@@ -83,14 +83,14 @@
 	recommends = qtdeclarative qtquickcontrols qtquickcontrols2 qtserialport
 	path = qtlocation
 	url = ../qtlocation.git
-	branch = 5.15
+	branch = 5.15.12-ohos-next
 	status = addon
 [submodule "qtsensors"]
 	depends = qtbase
 	recommends = qtdeclarative
 	path = qtsensors
 	url = ../qtsensors.git
-	branch = 5.15
+	branch = 5.15.12-ohos-next
 	status = addon
 [submodule "qtsystems"]
 	depends = qtbase
@@ -123,7 +123,7 @@
 	recommends = qtdeclarative qtandroidextras
 	path = qtconnectivity
 	url = ../qtconnectivity.git
-	branch = 5.15
+	branch = 5.15.12-ohos-next
 	status = addon
 [submodule "qtwayland"]
 	depends = qtbase
@@ -137,7 +137,7 @@
 	recommends = qtdeclarative qtimageformats qtgamepad
 	path = qt3d
 	url = ../qt3d.git
-	branch = 5.15
+	branch = 5.15.12-ohos-next
 	status = addon
 [submodule "qtimageformats"]
 	depends = qtbase
@@ -156,7 +156,7 @@
 	recommends = qtgraphicaleffects
 	path = qtquickcontrols
 	url = ../qtquickcontrols.git
-	branch = 5.15
+	branch = 5.15.12-ohos-next
 	status = addon
 [submodule "qtserialbus"]
 	depends = qtbase
@@ -215,7 +215,7 @@
 	recommends = qtquickcontrols qtquickcontrols2 qtlocation qtwebchannel qttools
 	path = qtwebengine
 	url = ../qtwebengine.git
-	branch = 5.15
+	branch = 5.15.12-ohos-next
 	status = addon
 	priority = 10
 [submodule "qtcanvas3d"]
@@ -229,7 +229,7 @@
 	recommends = qtwebengine
 	path = qtwebview
 	url = ../qtwebview.git
-	branch = 5.15
+	branch = 5.15.12-ohos-next
 	status = addon
 [submodule "qtquickcontrols2"]
 	depends = qtgraphicaleffects
@@ -250,7 +250,7 @@
 	recommends = qtdeclarative qtmultimedia
 	path = qtcharts
 	url = ../qtcharts.git
-	branch = 5.15
+	branch = 5.15.12-ohos-next
 	status = addon
 [submodule "qtdatavis3d"]
 	depends = qtbase
@@ -315,7 +315,7 @@
 [submodule "qtquicktimeline"]
 	depends = qtbase qtdeclarative
 	path = qtquicktimeline
-	url = ../qtquicktimeline
+	url = ../qtquicktimeline.git
 	branch = 5.15
 	status = addon
 [submodule "qtquick3d"]
@@ -324,3 +324,19 @@
 	url = ../qtquick3d.git
 	branch = 5.15
 	status = addon
+[submodule "issbuild"]
+	path = issbuild
+	url = ../issbuild.git
+	status = addon
+	branch = main
+[submodule "qtohextras"]
+	depends = qtbase
+	path = qtohextras
+	url = ../qtohextras.git
+	status = addon
+	branch = 5.15.12-ohos-next
+[submodule "qtpdf"]
+	depends = qtbase
+	path = qtpdf
+	url = ../qtpdf.git
+	branch = dev
diff --git a/issbuild b/issbuild
new file mode 160000
index 00000000..9f70b473
--- /dev/null
+++ b/issbuild
@@ -0,0 +1 @@
+Subproject commit 9f70b473e2c9017162c74bf21820ac628b3ff9b3
diff --git a/qt3d b/qt3d
index e1b1a0d2..aa759fc2 160000
--- a/qt3d
+++ b/qt3d
@@ -1 +1 @@
-Subproject commit e1b1a0d2970fd384bd52c734a72536d8452ad070
+Subproject commit aa759fc27a5e61e04587d7f8dc93ef634e7e83de
diff --git a/qtbase b/qtbase
index e4391422..33519cbd 160000
--- a/qtbase
+++ b/qtbase
@@ -1 +1 @@
-Subproject commit e4391422574aa9aa89fece74f16c07c609cbbae2
+Subproject commit 33519cbd40b0852eccf3a17278fe1aa77b21e569
diff --git a/qtcanvas3d b/qtcanvas3d
index 1319e096..433633fb 160000
--- a/qtcanvas3d
+++ b/qtcanvas3d
@@ -1 +1 @@
-Subproject commit 1319e0965f6008f44f9216a7bb76e106a1710767
+Subproject commit 433633fb7285087724d39249060ca10c1dfea9a1
diff --git a/qtconnectivity b/qtconnectivity
index 45604bed..756f1cbc 160000
--- a/qtconnectivity
+++ b/qtconnectivity
@@ -1 +1 @@
-Subproject commit 45604bedf6d3b022fc9758eeb4cefab0f9f2dea5
+Subproject commit 756f1cbc62f5fab63742e9ad3dbff342cbd347ff
diff --git a/qtdeclarative b/qtdeclarative
index 105e6105..6d3980b3 160000
--- a/qtdeclarative
+++ b/qtdeclarative
@@ -1 +1 @@
-Subproject commit 105e610548a62d943301153afb337a49f14e9e25
+Subproject commit 6d3980b3658405790d28c1aaec9d0b7ffb50953b-dirty
diff --git a/qtdoc b/qtdoc
index 39b27247..4945de6d 160000
--- a/qtdoc
+++ b/qtdoc
@@ -1 +1 @@
-Subproject commit 39b272474cbaca77563e58218172e9d7d59129cf
+Subproject commit 4945de6d0974150b1d81e81401252e8fd302ae24
diff --git a/qtdocgallery b/qtdocgallery
index e36e6f0a..8cbbeb06 160000
--- a/qtdocgallery
+++ b/qtdocgallery
@@ -1 +1 @@
-Subproject commit e36e6f0abd45c2794c70c31eb10c5263e7e7a29a
+Subproject commit 8cbbeb060188191b833863f23bc513909a9a4d0a
diff --git a/qtfeedback b/qtfeedback
index 9ac8d8c2..a14bd0bb 160000
--- a/qtfeedback
+++ b/qtfeedback
@@ -1 +1 @@
-Subproject commit 9ac8d8c272fc93416016e094fc6b97226a400082
+Subproject commit a14bd0bb1373cde86e09e3619fb9dc70f34c71f2
diff --git a/qtlocation b/qtlocation
index b6d96559..2286094b 160000
--- a/qtlocation
+++ b/qtlocation
@@ -1 +1 @@
-Subproject commit b6d96559cb9f5e0d79936c89887ea924b2c3514a
+Subproject commit 2286094b4076bbc3a5d3ba9be248c7f48c426513
diff --git a/qtmultimedia b/qtmultimedia
index 5197ff9e..7abd5a72 160000
--- a/qtmultimedia
+++ b/qtmultimedia
@@ -1 +1 @@
-Subproject commit 5197ff9e91cabd90700cf0d36fb5e9e5793d7097
+Subproject commit 7abd5a72c51095d635339de5e57a6ef684eddf58-dirty
diff --git a/qtohextras b/qtohextras
new file mode 160000
index 00000000..37adf98c
--- /dev/null
+++ b/qtohextras
@@ -0,0 +1 @@
+Subproject commit 37adf98c573c2c1f7e3cd37829a04597767562d2
diff --git a/qtpdf b/qtpdf
new file mode 160000
index 00000000..0e361f5b
--- /dev/null
+++ b/qtpdf
@@ -0,0 +1 @@
+Subproject commit 0e361f5b9ea8183c6456d63b1a2e0acb06a61ba1
diff --git a/qtpim b/qtpim
index 02efef5e..713bb697 160000
--- a/qtpim
+++ b/qtpim
@@ -1 +1 @@
-Subproject commit 02efef5ee63bf2407526f81fd6b68f5a59ac1de3
+Subproject commit 713bb697fa24f6d6d4e2521ee3db2de237ea6f05
diff --git a/qtqa b/qtqa
index 36da1912..95c1c931 160000
--- a/qtqa
+++ b/qtqa
@@ -1 +1 @@
-Subproject commit 36da1912a90c0e3a91f59f96c984a7e43ab982b7
+Subproject commit 95c1c931d8d8f52e15786b033142cac08c0369df
diff --git a/qtquickcontrols b/qtquickcontrols
index 1ca96219..7c490a6d 160000
--- a/qtquickcontrols
+++ b/qtquickcontrols
@@ -1 +1 @@
-Subproject commit 1ca962198a703f591efc7c8f7540fc4120746a00
+Subproject commit 7c490a6d4bdc1ae2ad691b09c6a10a736f34ec20
diff --git a/qtrepotools b/qtrepotools
index ee34618d..40490ad0 160000
--- a/qtrepotools
+++ b/qtrepotools
@@ -1 +1 @@
-Subproject commit ee34618d9f94e0cb6f678140e6cd2916308531b5
+Subproject commit 40490ad02475c6a550f74b6f53aecb2443114cab
diff --git a/qtscript b/qtscript
index 5be95f96..a7eb0fae 160000
--- a/qtscript
+++ b/qtscript
@@ -1 +1 @@
-Subproject commit 5be95f966aabc5170f0aacfd4b0a46217241bfd6
+Subproject commit a7eb0faeafda29c4c1b7841d4adf72aec2d7397d
diff --git a/qtsensors b/qtsensors
index 3011b16d..66e96da4 160000
--- a/qtsensors
+++ b/qtsensors
@@ -1 +1 @@
-Subproject commit 3011b16d63cadbb473b6aa3a535b9f0e33170c09
+Subproject commit 66e96da4de7e7ece32fa52c957d6f85c8e66e418
diff --git a/qtsystems b/qtsystems
index 434af789..81e08ee5 160000
--- a/qtsystems
+++ b/qtsystems
@@ -1 +1 @@
-Subproject commit 434af789f0d56ca7a521ca2d9ec8cf3b1057fd37
+Subproject commit 81e08ee508d0a49c588705cc9c47568b09a258db
diff --git a/qtwebengine b/qtwebengine
index f328054d..4ea03a0a 160000
--- a/qtwebengine
+++ b/qtwebengine
@@ -1 +1 @@
-Subproject commit f328054d2eafc073b98a0246b2d644ee09c99d9c
+Subproject commit 4ea03a0affbfd6ff36a7defd391b7ca139d18c8e
diff --git a/qtwebview b/qtwebview
index 53fa4470..50444904 160000
--- a/qtwebview
+++ b/qtwebview
@@ -1 +1 @@
-Subproject commit 53fa44709992faae54e4f5c8a128cea7b6f0cbd5
+Subproject commit 50444904795bb927d20974049277e9862ee8e506