Skip to content

Commit 191ac3c

Browse files
committed
depends: add Qt Quick module patch
1 parent f4e22e5 commit 191ac3c

2 files changed

Lines changed: 245 additions & 0 deletions

File tree

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ target_link_libraries(bitcoin-core-app
180180
bitcoinqml
181181
bitcoinqt
182182
)
183+
qt6_import_qml_plugins(bitcoin-core-app)
183184

184185
option(BUILD_APP_TESTS "Build unit tests for the app" ON)
185186
if(BUILD_APP_TESTS)
Lines changed: 244 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,244 @@
1+
From 09508f4d1c9f54f7c418ec5fd61974fd3b4176c8 Mon Sep 17 00:00:00 2001
2+
From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
3+
Date: Mon, 8 Jun 2026 16:33:21 +0100
4+
Subject: [PATCH 2/3] depends: Add Qt Qml and Qt Quick modules
5+
6+
---
7+
depends/packages/native_qt.mk | 22 +++++++++++++++---
8+
depends/packages/qt.mk | 27 +++++++++++++++++++++-
9+
depends/packages/qt_details.mk | 6 +++++
10+
depends/patches/qt/qtbase_skip_tools.patch | 8 +++----
11+
depends/patches/qt/static_fixes.patch | 10 ++++++++
12+
5 files changed, 64 insertions(+), 9 deletions(-)
13+
14+
diff --git a/depends/packages/native_qt.mk b/depends/packages/native_qt.mk
15+
index 2bf088c10a..6d2aec3734 100644
16+
--- a/depends/packages/native_qt.mk
17+
+++ b/depends/packages/native_qt.mk
18+
@@ -11,13 +11,21 @@ $(package)_patches += rcc_hardcode_timestamp.patch
19+
$(package)_patches += qttools_skip_dependencies.patch
20+
$(package)_patches += fix-macos26-qyield.patch
21+
22+
+$(package)_qtshadertools_file_name=$(qt_details_qtshadertools_file_name)
23+
+$(package)_qtshadertools_sha256_hash=$(qt_details_qtshadertools_sha256_hash)
24+
+
25+
+$(package)_qtdeclarative_file_name=$(qt_details_qtdeclarative_file_name)
26+
+$(package)_qtdeclarative_sha256_hash=$(qt_details_qtdeclarative_sha256_hash)
27+
+
28+
$(package)_qttranslations_file_name=$(qt_details_qttranslations_file_name)
29+
$(package)_qttranslations_sha256_hash=$(qt_details_qttranslations_sha256_hash)
30+
31+
$(package)_qttools_file_name=$(qt_details_qttools_file_name)
32+
$(package)_qttools_sha256_hash=$(qt_details_qttools_sha256_hash)
33+
34+
-$(package)_extra_sources := $($(package)_qttranslations_file_name)
35+
+$(package)_extra_sources := $($(package)_qtshadertools_file_name)
36+
+$(package)_extra_sources += $($(package)_qtdeclarative_file_name)
37+
+$(package)_extra_sources += $($(package)_qttranslations_file_name)
38+
$(package)_extra_sources += $($(package)_qttools_file_name)
39+
40+
$(package)_top_download_path=$(qt_details_top_download_path)
41+
@@ -51,14 +59,13 @@ $(package)_config_opts += -no-feature-concurrent
42+
$(package)_config_opts += -no-feature-network
43+
$(package)_config_opts += -no-feature-printsupport
44+
$(package)_config_opts += -no-feature-sql
45+
-$(package)_config_opts += -no-feature-testlib
46+
$(package)_config_opts += -no-feature-xml
47+
-$(package)_config_opts += -no-gui
48+
$(package)_config_opts += -no-widgets
49+
50+
$(package)_config_opts += -no-glib
51+
$(package)_config_opts += -no-icu
52+
$(package)_config_opts += -no-libudev
53+
+$(package)_config_opts += -no-opengl
54+
$(package)_config_opts += -no-openssl
55+
$(package)_config_opts += -no-zstd
56+
$(package)_config_opts += -qt-pcre
57+
@@ -67,6 +74,7 @@ $(package)_config_opts += -no-feature-backtrace
58+
$(package)_config_opts += -no-feature-permissions
59+
$(package)_config_opts += -no-feature-process
60+
$(package)_config_opts += -no-feature-settings
61+
+$(package)_config_opts += -no-feature-vulkan
62+
63+
# Core tools.
64+
$(package)_config_opts += -no-feature-androiddeployqt
65+
@@ -106,6 +114,8 @@ endef
66+
67+
define $(package)_fetch_cmds
68+
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \
69+
+$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qtshadertools_file_name),$($(package)_qtshadertools_file_name),$($(package)_qtshadertools_sha256_hash)) && \
70+
+$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qtdeclarative_file_name),$($(package)_qtdeclarative_file_name),$($(package)_qtdeclarative_sha256_hash)) && \
71+
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qttranslations_file_name),$($(package)_qttranslations_file_name),$($(package)_qttranslations_sha256_hash)) && \
72+
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qttools_file_name),$($(package)_qttools_file_name),$($(package)_qttools_sha256_hash)) && \
73+
$(call fetch_file,$(package),$($(package)_top_download_path),$($(package)_top_cmakelists_download_file),$($(package)_top_cmakelists_file_name)-$($(package)_version),$($(package)_top_cmakelists_sha256_hash)) && \
74+
@@ -116,6 +126,8 @@ endef
75+
define $(package)_extract_cmds
76+
mkdir -p $($(package)_extract_dir) && \
77+
echo "$($(package)_sha256_hash) $($(package)_source)" > $($(package)_extract_dir)/.$($(package)_file_name).hash && \
78+
+ echo "$($(package)_qtshadertools_sha256_hash) $($(package)_source_dir)/$($(package)_qtshadertools_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
79+
+ echo "$($(package)_qtdeclarative_sha256_hash) $($(package)_source_dir)/$($(package)_qtdeclarative_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
80+
echo "$($(package)_qttranslations_sha256_hash) $($(package)_source_dir)/$($(package)_qttranslations_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
81+
echo "$($(package)_qttools_sha256_hash) $($(package)_source_dir)/$($(package)_qttools_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
82+
echo "$($(package)_top_cmakelists_sha256_hash) $($(package)_source_dir)/$($(package)_top_cmakelists_file_name)-$($(package)_version)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
83+
@@ -124,6 +136,10 @@ define $(package)_extract_cmds
84+
$(build_SHA256SUM) -c $($(package)_extract_dir)/.$($(package)_file_name).hash && \
85+
mkdir -p qtbase && \
86+
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source) -C qtbase && \
87+
+ mkdir -p qtshadertools && \
88+
+ $(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtshadertools_file_name) -C qtshadertools && \
89+
+ mkdir -p qtdeclarative && \
90+
+ $(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtdeclarative_file_name) -C qtdeclarative && \
91+
mkdir -p qttranslations && \
92+
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qttranslations_file_name) -C qttranslations && \
93+
mkdir -p qttools && \
94+
diff --git a/depends/packages/qt.mk b/depends/packages/qt.mk
95+
index 9b7cec341d..b0f51fe437 100644
96+
--- a/depends/packages/qt.mk
97+
+++ b/depends/packages/qt.mk
98+
@@ -27,13 +27,21 @@ $(package)_patches += fix-gcc16-sfinae-qanystringview.patch
99+
$(package)_patches += fix-macos26-qyield.patch
100+
$(package)_patches += fix-qbytearray-include.patch
101+
102+
+$(package)_qtshadertools_file_name=$(qt_details_qtshadertools_file_name)
103+
+$(package)_qtshadertools_sha256_hash=$(qt_details_qtshadertools_sha256_hash)
104+
+
105+
+$(package)_qtdeclarative_file_name=$(qt_details_qtdeclarative_file_name)
106+
+$(package)_qtdeclarative_sha256_hash=$(qt_details_qtdeclarative_sha256_hash)
107+
+
108+
$(package)_qttranslations_file_name=$(qt_details_qttranslations_file_name)
109+
$(package)_qttranslations_sha256_hash=$(qt_details_qttranslations_sha256_hash)
110+
111+
$(package)_qttools_file_name=$(qt_details_qttools_file_name)
112+
$(package)_qttools_sha256_hash=$(qt_details_qttools_sha256_hash)
113+
114+
-$(package)_extra_sources := $($(package)_qttranslations_file_name)
115+
+$(package)_extra_sources := $($(package)_qtshadertools_file_name)
116+
+$(package)_extra_sources += $($(package)_qtdeclarative_file_name)
117+
+$(package)_extra_sources += $($(package)_qttranslations_file_name)
118+
$(package)_extra_sources += $($(package)_qttools_file_name)
119+
120+
$(package)_top_download_path=$(qt_details_top_download_path)
121+
@@ -127,6 +135,9 @@ $(package)_config_opts += -no-feature-macdeployqt
122+
$(package)_config_opts += -no-feature-qmake
123+
$(package)_config_opts += -no-feature-windeployqt
124+
125+
+# QML features.
126+
+$(package)_config_opts += -no-feature-qml-profiler
127+
+
128+
ifeq ($(host),$(build))
129+
# Qt Tools module.
130+
$(package)_config_opts += -feature-linguist
131+
@@ -224,6 +235,8 @@ endef
132+
133+
define $(package)_fetch_cmds
134+
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \
135+
+$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qtshadertools_file_name),$($(package)_qtshadertools_file_name),$($(package)_qtshadertools_sha256_hash)) && \
136+
+$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qtdeclarative_file_name),$($(package)_qtdeclarative_file_name),$($(package)_qtdeclarative_sha256_hash)) && \
137+
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qttranslations_file_name),$($(package)_qttranslations_file_name),$($(package)_qttranslations_sha256_hash)) && \
138+
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qttools_file_name),$($(package)_qttools_file_name),$($(package)_qttools_sha256_hash)) && \
139+
$(call fetch_file,$(package),$($(package)_top_download_path),$($(package)_top_cmakelists_download_file),$($(package)_top_cmakelists_file_name)-$($(package)_version),$($(package)_top_cmakelists_sha256_hash)) && \
140+
@@ -235,6 +248,8 @@ ifeq ($(host),$(build))
141+
define $(package)_extract_cmds
142+
mkdir -p $($(package)_extract_dir) && \
143+
echo "$($(package)_sha256_hash) $($(package)_source)" > $($(package)_extract_dir)/.$($(package)_file_name).hash && \
144+
+ echo "$($(package)_qtshadertools_sha256_hash) $($(package)_source_dir)/$($(package)_qtshadertools_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
145+
+ echo "$($(package)_qtdeclarative_sha256_hash) $($(package)_source_dir)/$($(package)_qtdeclarative_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
146+
echo "$($(package)_qttranslations_sha256_hash) $($(package)_source_dir)/$($(package)_qttranslations_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
147+
echo "$($(package)_qttools_sha256_hash) $($(package)_source_dir)/$($(package)_qttools_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
148+
echo "$($(package)_top_cmakelists_sha256_hash) $($(package)_source_dir)/$($(package)_top_cmakelists_file_name)-$($(package)_version)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
149+
@@ -243,6 +258,10 @@ define $(package)_extract_cmds
150+
$(build_SHA256SUM) -c $($(package)_extract_dir)/.$($(package)_file_name).hash && \
151+
mkdir -p qtbase && \
152+
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source) -C qtbase && \
153+
+ mkdir -p qtshadertools && \
154+
+ $(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtshadertools_file_name) -C qtshadertools && \
155+
+ mkdir -p qtdeclarative && \
156+
+ $(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtdeclarative_file_name) -C qtdeclarative && \
157+
mkdir -p qttranslations && \
158+
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qttranslations_file_name) -C qttranslations && \
159+
mkdir -p qttools && \
160+
@@ -256,12 +275,18 @@ else
161+
define $(package)_extract_cmds
162+
mkdir -p $($(package)_extract_dir) && \
163+
echo "$($(package)_sha256_hash) $($(package)_source)" > $($(package)_extract_dir)/.$($(package)_file_name).hash && \
164+
+ echo "$($(package)_qtshadertools_sha256_hash) $($(package)_source_dir)/$($(package)_qtshadertools_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
165+
+ echo "$($(package)_qtdeclarative_sha256_hash) $($(package)_source_dir)/$($(package)_qtdeclarative_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
166+
echo "$($(package)_top_cmakelists_sha256_hash) $($(package)_source_dir)/$($(package)_top_cmakelists_file_name)-$($(package)_version)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
167+
echo "$($(package)_top_cmake_ecmoptionaladdsubdirectory_sha256_hash) $($(package)_source_dir)/$($(package)_top_cmake_ecmoptionaladdsubdirectory_file_name)-$($(package)_version)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
168+
echo "$($(package)_top_cmake_qttoplevelhelpers_sha256_hash) $($(package)_source_dir)/$($(package)_top_cmake_qttoplevelhelpers_file_name)-$($(package)_version)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
169+
$(build_SHA256SUM) -c $($(package)_extract_dir)/.$($(package)_file_name).hash && \
170+
mkdir -p qtbase && \
171+
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source) -C qtbase && \
172+
+ mkdir -p qtshadertools && \
173+
+ $(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtshadertools_file_name) -C qtshadertools && \
174+
+ mkdir qtdeclarative && \
175+
+ $(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtdeclarative_file_name) -C qtdeclarative && \
176+
cp $($(package)_source_dir)/$($(package)_top_cmakelists_file_name)-$($(package)_version) ./$($(package)_top_cmakelists_file_name) && \
177+
mkdir -p cmake && \
178+
cp $($(package)_source_dir)/$($(package)_top_cmake_ecmoptionaladdsubdirectory_file_name)-$($(package)_version) cmake/$($(package)_top_cmake_ecmoptionaladdsubdirectory_file_name) && \
179+
diff --git a/depends/packages/qt_details.mk b/depends/packages/qt_details.mk
180+
index e49ac6a287..1e7264ab1a 100644
181+
--- a/depends/packages/qt_details.mk
182+
+++ b/depends/packages/qt_details.mk
183+
@@ -5,6 +5,12 @@ qt_details_suffix := everywhere-src-$(qt_details_version).tar.xz
184+
qt_details_qtbase_file_name := qtbase-$(qt_details_suffix)
185+
qt_details_qtbase_sha256_hash := 56001b905601bb9023d399f3ba780d7fa940f3e4861e496a7c490331f49e0b80
186+
187+
+qt_details_qtshadertools_file_name = qtshadertools-$(qt_details_suffix)
188+
+qt_details_qtshadertools_sha256_hash = f6ec88bf42deba84d8f6b5d0914636ceed4749ccb51d1945b2f79b322b7ecf47
189+
+
190+
+qt_details_qtdeclarative_file_name = qtdeclarative-$(qt_details_suffix)
191+
+qt_details_qtdeclarative_sha256_hash = 1f03a2b8f5588b4face7da87926e9b2c1372b3a32157c52df07a75067a9db1af
192+
+
193+
qt_details_qttranslations_file_name := qttranslations-$(qt_details_suffix)
194+
qt_details_qttranslations_sha256_hash := c3c61d79c3d8fe316a20b3617c64673ce5b5519b2e45535f49bee313152fa531
195+
196+
diff --git a/depends/patches/qt/qtbase_skip_tools.patch b/depends/patches/qt/qtbase_skip_tools.patch
197+
index eef65425d4..d5377c3f45 100644
198+
--- a/depends/patches/qt/qtbase_skip_tools.patch
199+
+++ b/depends/patches/qt/qtbase_skip_tools.patch
200+
@@ -3,8 +3,7 @@ Skip building/installing unneeded tools:
201+
1. Wrapper CMake scripts.
202+
2. CI support files.
203+
3. tracepointgen and tracegen tools.
204+
-4. Qt Look Ahead LR Parser Generator (qlalr).
205+
-5. Qt Vulkan Header Generator (qvkgen).
206+
+4. Qt Vulkan Header Generator (qvkgen).
207+
208+
209+
--- a/qtbase/cmake/QtBaseGlobalTargets.cmake
210+
@@ -47,11 +46,10 @@ Skip building/installing unneeded tools:
211+
212+
--- a/qtbase/src/tools/CMakeLists.txt
213+
+++ b/qtbase/src/tools/CMakeLists.txt
214+
-@@ -11,8 +11,6 @@ if (QT_FEATURE_dbus)
215+
- add_subdirectory(qdbuscpp2xml)
216+
+@@ -12,7 +12,6 @@ if (QT_FEATURE_dbus)
217+
add_subdirectory(qdbusxml2cpp)
218+
endif()
219+
--add_subdirectory(qlalr)
220+
+ add_subdirectory(qlalr)
221+
-add_subdirectory(qvkgen)
222+
if (QT_FEATURE_commandlineparser)
223+
add_subdirectory(qtpaths)
224+
diff --git a/depends/patches/qt/static_fixes.patch b/depends/patches/qt/static_fixes.patch
225+
index 1ae3f5774a..317dd3608d 100644
226+
--- a/depends/patches/qt/static_fixes.patch
227+
+++ b/depends/patches/qt/static_fixes.patch
228+
@@ -78,3 +78,13 @@ index e8fb442dd43..e964138115c 100644
229+
CODE
230+
"// xkb.h is using a variable called 'explicit', which is a reserved keyword in C++
231+
#define explicit dont_use_cxx_explicit
232+
+--- a/qtbase/src/plugins/platforms/xcb/CMakeLists.txt
233+
++++ b/qtbase/src/plugins/platforms/xcb/CMakeLists.txt
234+
+@@ -65,6 +65,7 @@ qt_internal_add_module(XcbQpaPrivate
235+
+ XCB::XFIXES
236+
+ XCB::XKB
237+
+ XKB::XKB
238+
++ $<BUILD_INTERFACE:X11::Xau>
239+
+ NO_UNITY_BUILD # X11 define clashes
240+
+ )
241+
+
242+
--
243+
2.43.0
244+

0 commit comments

Comments
 (0)