@@ -12,6 +12,7 @@ $(package)_patches=fix_qt_pkgconfig.patch mac-qmake.conf fix_configure_mac.patch
12
12
$(package)_patches+ = fix_rcc_determinism.patch fix_riscv64_arch.patch xkb-default.patch no-xlib.patch
13
13
$(package)_patches+ = fix_android_qmake_conf.patch fix_android_jni_static.patch dont_hardcode_pwd.patch
14
14
$(package)_patches+ = freetype_back_compat.patch drop_lrelease_dependency.patch fix_powerpc_libpng.patch
15
+ $(package)_patches+ = fix_mingw_cross_compile.patch
15
16
16
17
# Update OSX_QT_TRANSLATIONS when this is updated
17
18
$(package)_qttranslations_file_name =qttranslations-$($(package ) _suffix)
@@ -124,6 +125,7 @@ $(package)_config_opts_darwin += -device-option MAC_SDK_VERSION=$(OSX_SDK_VERSIO
124
125
$(package)_config_opts_darwin += -device-option CROSS_COMPILE="$(host ) -"
125
126
$(package)_config_opts_darwin += -device-option MAC_MIN_VERSION=$(OSX_MIN_VERSION )
126
127
$(package)_config_opts_darwin += -device-option MAC_TARGET=$(host )
128
+ $(package)_config_opts_darwin += -device-option XCODE_VERSION=$(XCODE_VERSION )
127
129
endif
128
130
129
131
$(package ) _config_opts_linux = -qt-xkbcommon-x11
@@ -192,33 +194,52 @@ define $(package)_extract_cmds
192
194
tar --no-same-owner --strip-components=1 -xf $($(package ) _source_dir) /$($(package ) _qttools_file_name) -C qttools
193
195
endef
194
196
197
+ # Preprocessing steps work as follows:
198
+ #
199
+ # 1. Apply our patches to the extracted source. See each patch for more info.
200
+ #
201
+ # 2. Point to lrelease in qttools/bin/lrelease; otherwise Qt will look for it in
202
+ # $(host)/native/bin/lrelease and not find it.
203
+ #
204
+ # 3. Create a macOS-Clang-Linux mkspec using our mac-qmake.conf.
205
+ #
206
+ # 4. After making a copy of the mkspec for the linux-arm-gnueabi host, named
207
+ # bitcoin-linux-g++, replace instances of linux-arm-gnueabi with $(host). This
208
+ # way we can generically support hosts like riscv64-linux-gnu, which Qt doesn't
209
+ # ship a mkspec for. See it's usage in config_opts_* above.
210
+ #
211
+ # 5. Put our C, CXX and LD FLAGS into gcc-base.conf. Only used for non-host builds.
212
+ #
213
+ # 6. Do similar for the win32-g++ mkspec.
214
+ #
215
+ # 7. In clang.conf, swap out clang & clang++, for our compiler + flags. See #17466.
216
+ #
217
+ # 8. Adjust a regex in toolchain.prf, to accomodate Guix's usage of
218
+ # CROSS_LIBRARY_PATH. See #15277.
195
219
define $(package)_preprocess_cmds
196
220
patch -p1 -i $($(package ) _patch_dir) /freetype_back_compat.patch && \
197
221
patch -p1 -i $($(package ) _patch_dir) /fix_powerpc_libpng.patch && \
198
- sed -i.old "s|updateqm.commands = \$$$$\$$$$LRELEASE|updateqm.commands = $($(package ) _extract_dir) /qttools/bin/lrelease|" qttranslations/translations/translations.pro && \
199
222
patch -p1 -i $($(package ) _patch_dir) /drop_lrelease_dependency.patch && \
200
- patch -p1 -i $($(package ) _patch_dir) /dont_hardcode_pwd.patch &&\
223
+ patch -p1 -i $($(package ) _patch_dir) /dont_hardcode_pwd.patch && \
224
+ patch -p1 -i $($(package ) _patch_dir) /fix_qt_pkgconfig.patch && \
225
+ patch -p1 -i $($(package ) _patch_dir) /fix_configure_mac.patch && \
226
+ patch -p1 -i $($(package ) _patch_dir) /fix_no_printer.patch && \
227
+ patch -p1 -i $($(package ) _patch_dir) /fix_rcc_determinism.patch && \
228
+ patch -p1 -i $($(package ) _patch_dir) /xkb-default.patch && \
229
+ patch -p1 -i $($(package ) _patch_dir) /fix_android_qmake_conf.patch && \
230
+ patch -p1 -i $($(package ) _patch_dir) /fix_android_jni_static.patch && \
231
+ patch -p1 -i $($(package ) _patch_dir) /fix_riscv64_arch.patch && \
232
+ patch -p1 -i $($(package ) _patch_dir) /no-xlib.patch && \
233
+ patch -p1 -i $($(package ) _patch_dir) /fix_mingw_cross_compile.patch && \
234
+ sed -i.old "s|updateqm.commands = \$$$$\$$$$LRELEASE|updateqm.commands = $($(package ) _extract_dir) /qttools/bin/lrelease|" qttranslations/translations/translations.pro && \
201
235
mkdir -p qtbase/mkspecs/macx-clang-linux &&\
202
- cp -f qtbase/mkspecs/macx-clang/Info.plist.lib qtbase/mkspecs/macx-clang-linux/ &&\
203
- cp -f qtbase/mkspecs/macx-clang/Info.plist.app qtbase/mkspecs/macx-clang-linux/ &&\
204
236
cp -f qtbase/mkspecs/macx-clang/qplatformdefs.h qtbase/mkspecs/macx-clang-linux/ &&\
205
237
cp -f $($(package ) _patch_dir) /mac-qmake.conf qtbase/mkspecs/macx-clang-linux/qmake.conf && \
206
238
cp -r qtbase/mkspecs/linux-arm-gnueabi-g++ qtbase/mkspecs/bitcoin-linux-g++ && \
207
239
sed -i.old "s/arm-linux-gnueabi-/$(host ) -/g" qtbase/mkspecs/bitcoin-linux-g++/qmake.conf && \
208
- patch -p1 -i $($(package ) _patch_dir) /fix_qt_pkgconfig.patch &&\
209
- patch -p1 -i $($(package ) _patch_dir) /fix_configure_mac.patch &&\
210
- patch -p1 -i $($(package ) _patch_dir) /fix_no_printer.patch &&\
211
- patch -p1 -i $($(package ) _patch_dir) /fix_rcc_determinism.patch &&\
212
- patch -p1 -i $($(package ) _patch_dir) /xkb-default.patch &&\
213
- patch -p1 -i $($(package ) _patch_dir) /fix_android_qmake_conf.patch &&\
214
- patch -p1 -i $($(package ) _patch_dir) /fix_android_jni_static.patch &&\
215
240
echo "!host_build: QMAKE_CFLAGS += $($(package ) _cflags) $($(package ) _cppflags) " >> qtbase/mkspecs/common/gcc-base.conf && \
216
241
echo "!host_build: QMAKE_CXXFLAGS += $($(package ) _cxxflags) $($(package ) _cppflags) " >> qtbase/mkspecs/common/gcc-base.conf && \
217
242
echo "!host_build: QMAKE_LFLAGS += $($(package ) _ldflags) " >> qtbase/mkspecs/common/gcc-base.conf && \
218
- patch -p1 -i $($(package ) _patch_dir) /fix_riscv64_arch.patch &&\
219
- patch -p1 -i $($(package ) _patch_dir) /no-xlib.patch &&\
220
- echo "QMAKE_LINK_OBJECT_MAX = 10" >> qtbase/mkspecs/win32-g++/qmake.conf &&\
221
- echo "QMAKE_LINK_OBJECT_SCRIPT = object_script" >> qtbase/mkspecs/win32-g++/qmake.conf &&\
222
243
sed -i.old "s|QMAKE_CFLAGS += |!host_build: QMAKE_CFLAGS = $($(package ) _cflags) $($(package ) _cppflags) |" qtbase/mkspecs/win32-g++/qmake.conf && \
223
244
sed -i.old "s|QMAKE_CXXFLAGS += |!host_build: QMAKE_CXXFLAGS = $($(package ) _cxxflags) $($(package ) _cppflags) |" qtbase/mkspecs/win32-g++/qmake.conf && \
224
245
sed -i.old "0,/^QMAKE_LFLAGS_/s|^QMAKE_LFLAGS_|!host_build: QMAKE_LFLAGS = $($(package ) _ldflags) \n&|" qtbase/mkspecs/win32-g++/qmake.conf && \
0 commit comments