mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 03:52:49 +01:00
merge bitcoin#20641: Use Qt top-level build facilities
This commit is contained in:
parent
627a2d66ff
commit
59b9725d23
@ -6,9 +6,11 @@ $(package)_file_name=qtbase-$($(package)_suffix)
|
||||
$(package)_sha256_hash=8088f174e6d28e779516c083b6087b6a9e3c8322b4bc161fd1b54195e3c86940
|
||||
$(package)_linux_dependencies=freetype fontconfig libxcb libxkbcommon
|
||||
$(package)_qt_libs=corelib network widgets gui plugins testlib
|
||||
$(package)_patches=fix_qt_pkgconfig.patch mac-qmake.conf fix_no_printer.patch no-xlib.patch
|
||||
$(package)_linguist_tools = lrelease lupdate lconvert
|
||||
$(package)_patches = qt.pro qttools_src.pro
|
||||
$(package)_patches += fix_qt_pkgconfig.patch mac-qmake.conf fix_no_printer.patch no-xlib.patch
|
||||
$(package)_patches+= fix_android_qmake_conf.patch fix_android_jni_static.patch dont_hardcode_pwd.patch
|
||||
$(package)_patches+= drop_lrelease_dependency.patch no_sdk_version_check.patch
|
||||
$(package)_patches+= no_sdk_version_check.patch
|
||||
$(package)_patches+= fix_qpainter_non_determinism.patch fix_lib_paths.patch fix_android_pch.patch
|
||||
$(package)_patches+= fix_bigsur_drawing.patch
|
||||
$(package)_patches+= fix_limits_header.patch
|
||||
@ -62,6 +64,7 @@ $(package)_config_opts += -no-sql-sqlite2
|
||||
$(package)_config_opts += -no-use-gold-linker
|
||||
$(package)_config_opts += -nomake examples
|
||||
$(package)_config_opts += -nomake tests
|
||||
$(package)_config_opts += -nomake tools
|
||||
$(package)_config_opts += -opensource
|
||||
$(package)_config_opts += -pkg-config
|
||||
$(package)_config_opts += -prefix $(host_prefix)
|
||||
@ -107,14 +110,13 @@ $(package)_config_opts_darwin = -no-dbus
|
||||
$(package)_config_opts_darwin += -no-opengl
|
||||
$(package)_config_opts_darwin += -pch
|
||||
$(package)_config_opts_darwin += -no-feature-corewlan
|
||||
$(package)_config_opts_darwin += -device-option QMAKE_MACOSX_DEPLOYMENT_TARGET=$(OSX_MIN_VERSION)
|
||||
$(package)_config_opts_darwin += QMAKE_MACOSX_DEPLOYMENT_TARGET=$(OSX_MIN_VERSION)
|
||||
|
||||
ifneq ($(build_os),darwin)
|
||||
$(package)_config_opts_darwin += -xplatform macx-clang-linux
|
||||
$(package)_config_opts_darwin += -device-option MAC_SDK_PATH=$(OSX_SDK)
|
||||
$(package)_config_opts_darwin += -device-option MAC_SDK_VERSION=$(OSX_SDK_VERSION)
|
||||
$(package)_config_opts_darwin += -device-option CROSS_COMPILE="$(host)-"
|
||||
$(package)_config_opts_darwin += -device-option MAC_MIN_VERSION=$(OSX_MIN_VERSION)
|
||||
$(package)_config_opts_darwin += -device-option MAC_TARGET=$(host)
|
||||
$(package)_config_opts_darwin += -device-option XCODE_VERSION=$(XCODE_VERSION)
|
||||
endif
|
||||
@ -193,26 +195,24 @@ endef
|
||||
#
|
||||
# 1. Apply our patches to the extracted source. See each patch for more info.
|
||||
#
|
||||
# 2. Point to lrelease in qttools/bin/lrelease; otherwise Qt will look for it in
|
||||
# $(host)/native/bin/lrelease and not find it.
|
||||
# 2. Create a macOS-Clang-Linux mkspec using our mac-qmake.conf.
|
||||
#
|
||||
# 3. Create a macOS-Clang-Linux mkspec using our mac-qmake.conf.
|
||||
#
|
||||
# 4. After making a copy of the mkspec for the linux-arm-gnueabi host, named
|
||||
# 3. After making a copy of the mkspec for the linux-arm-gnueabi host, named
|
||||
# bitcoin-linux-g++, replace instances of linux-arm-gnueabi with $(host). This
|
||||
# way we can generically support hosts like riscv64-linux-gnu, which Qt doesn't
|
||||
# ship a mkspec for. See it's usage in config_opts_* above.
|
||||
#
|
||||
# 5. Put our C, CXX and LD FLAGS into gcc-base.conf. Only used for non-host builds.
|
||||
# 4. Put our C, CXX and LD FLAGS into gcc-base.conf. Only used for non-host builds.
|
||||
#
|
||||
# 6. Do similar for the win32-g++ mkspec.
|
||||
# 5. Do similar for the win32-g++ mkspec.
|
||||
#
|
||||
# 7. In clang.conf, swap out clang & clang++, for our compiler + flags. See #17466.
|
||||
# 6. In clang.conf, swap out clang & clang++, for our compiler + flags. See #17466.
|
||||
#
|
||||
# 8. Adjust a regex in toolchain.prf, to accomodate Guix's usage of
|
||||
# 7. Adjust a regex in toolchain.prf, to accommodate Guix's usage of
|
||||
# CROSS_LIBRARY_PATH. See #15277.
|
||||
define $(package)_preprocess_cmds
|
||||
patch -p1 -i $($(package)_patch_dir)/drop_lrelease_dependency.patch && \
|
||||
cp $($(package)_patch_dir)/qt.pro qt.pro && \
|
||||
cp $($(package)_patch_dir)/qttools_src.pro qttools/src/src.pro && \
|
||||
patch -p1 -i $($(package)_patch_dir)/dont_hardcode_pwd.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix_qt_pkgconfig.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix_no_printer.patch && \
|
||||
@ -226,7 +226,6 @@ define $(package)_preprocess_cmds
|
||||
patch -p1 -i $($(package)_patch_dir)/fix_bigsur_drawing.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix_limits_header.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix_montery_include.patch && \
|
||||
sed -i.old "s|updateqm.commands = \$$$$\$$$$LRELEASE|updateqm.commands = $($(package)_extract_dir)/qttools/bin/lrelease|" qttranslations/translations/translations.pro && \
|
||||
mkdir -p qtbase/mkspecs/macx-clang-linux &&\
|
||||
cp -f qtbase/mkspecs/macx-clang/qplatformdefs.h qtbase/mkspecs/macx-clang-linux/ &&\
|
||||
cp -f $($(package)_patch_dir)/mac-qmake.conf qtbase/mkspecs/macx-clang-linux/qmake.conf && \
|
||||
@ -246,35 +245,22 @@ endef
|
||||
define $(package)_config_cmds
|
||||
export PKG_CONFIG_SYSROOT_DIR=/ && \
|
||||
export PKG_CONFIG_LIBDIR=$(host_prefix)/lib/pkgconfig && \
|
||||
export PKG_CONFIG_PATH=$(host_prefix)/share/pkgconfig && \
|
||||
export PKG_CONFIG_PATH=$(host_prefix)/share/pkgconfig && \
|
||||
cd qtbase && \
|
||||
./configure $($(package)_config_opts) && \
|
||||
cd .. && \
|
||||
$(MAKE) -C qtbase sub-src-clean && \
|
||||
qtbase/bin/qmake -o qttranslations/Makefile qttranslations/qttranslations.pro && \
|
||||
qtbase/bin/qmake -o qttranslations/translations/Makefile qttranslations/translations/translations.pro && \
|
||||
qtbase/bin/qmake -o qttools/src/linguist/lrelease/Makefile qttools/src/linguist/lrelease/lrelease.pro && \
|
||||
qtbase/bin/qmake -o qttools/src/linguist/lupdate/Makefile qttools/src/linguist/lupdate/lupdate.pro && \
|
||||
qtbase/bin/qmake -o qttools/src/linguist/lconvert/Makefile qttools/src/linguist/lconvert/lconvert.pro
|
||||
./configure -top-level $($(package)_config_opts)
|
||||
endef
|
||||
|
||||
define $(package)_build_cmds
|
||||
$(MAKE) -C qtbase/src $(addprefix sub-,$($(package)_qt_libs)) && \
|
||||
$(MAKE) -C qttools/src/linguist/lrelease && \
|
||||
$(MAKE) -C qttools/src/linguist/lupdate && \
|
||||
$(MAKE) -C qttools/src/linguist/lconvert && \
|
||||
$(MAKE) -C qttranslations
|
||||
$(MAKE)
|
||||
endef
|
||||
|
||||
define $(package)_stage_cmds
|
||||
$(MAKE) -C qtbase/src INSTALL_ROOT=$($(package)_staging_dir) $(addsuffix -install_subtargets,$(addprefix sub-,$($(package)_qt_libs))) && \
|
||||
$(MAKE) -C qttools/src/linguist/lrelease INSTALL_ROOT=$($(package)_staging_dir) install_target && \
|
||||
$(MAKE) -C qttools/src/linguist/lupdate INSTALL_ROOT=$($(package)_staging_dir) install_target && \
|
||||
$(MAKE) -C qttools/src/linguist/lconvert INSTALL_ROOT=$($(package)_staging_dir) install_target && \
|
||||
$(MAKE) -C qttools/src/linguist INSTALL_ROOT=$($(package)_staging_dir) $(addsuffix -install_subtargets,$(addprefix sub-,$($(package)_linguist_tools))) && \
|
||||
$(MAKE) -C qttranslations INSTALL_ROOT=$($(package)_staging_dir) install_subtargets
|
||||
endef
|
||||
|
||||
define $(package)_postprocess_cmds
|
||||
rm -rf native/mkspecs/ native/lib/ lib/cmake/ && \
|
||||
rm -f lib/lib*.la lib/*.prl plugins/*/*.prl
|
||||
rm -f lib/lib*.la
|
||||
endef
|
||||
|
@ -1,20 +0,0 @@
|
||||
commit 67b3ed7406e1d0762188dbad2c44a06824ba0778
|
||||
Author: fanquake <fanquake@gmail.com>
|
||||
Date: Tue Aug 18 15:24:01 2020 +0800
|
||||
|
||||
Drop dependency on lrelease
|
||||
|
||||
Qts buildsystem insists on using the installed lrelease, but gets
|
||||
confused about how to find it. Since we manually control the build
|
||||
order, just drop the dependency.
|
||||
|
||||
See #9469
|
||||
|
||||
diff --git a/qttranslations/translations/translations.pro b/qttranslations/translations/translations.pro
|
||||
index 694544c..eff339d 100644
|
||||
--- a/qttranslations/translations/translations.pro
|
||||
+++ b/qttranslations/translations/translations.pro
|
||||
@@ -107,3 +107,2 @@ updateqm.commands = $$LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_OUT}
|
||||
silent:updateqm.commands = @echo lrelease ${QMAKE_FILE_IN} && $$updateqm.commands
|
||||
-updateqm.depends = $$LRELEASE_EXE
|
||||
updateqm.name = LRELEASE ${QMAKE_FILE_IN}
|
@ -8,7 +8,6 @@ include(../common/clang-mac.conf)
|
||||
QMAKE_MAC_SDK_PATH=$${MAC_SDK_PATH}
|
||||
QMAKE_XCODE_VERSION = $${XCODE_VERSION}
|
||||
QMAKE_XCODE_DEVELOPER_PATH=/Developer
|
||||
QMAKE_MACOSX_DEPLOYMENT_TARGET = $${MAC_MIN_VERSION}
|
||||
QMAKE_MAC_SDK=macosx
|
||||
QMAKE_MAC_SDK.macosx.Path = $${MAC_SDK_PATH}
|
||||
QMAKE_MAC_SDK.macosx.platform_name = macosx
|
||||
|
16
depends/patches/qt/qt.pro
Normal file
16
depends/patches/qt/qt.pro
Normal file
@ -0,0 +1,16 @@
|
||||
# Create the super cache so modules will add themselves to it.
|
||||
cache(, super)
|
||||
|
||||
!QTDIR_build: cache(CONFIG, add, $$list(QTDIR_build))
|
||||
|
||||
prl = no_install_prl
|
||||
CONFIG += $$prl
|
||||
cache(CONFIG, add stash, prl)
|
||||
|
||||
TEMPLATE = subdirs
|
||||
SUBDIRS = qtbase qttools qttranslations
|
||||
|
||||
qttools.depends = qtbase
|
||||
qttranslations.depends = qttools
|
||||
|
||||
load(qt_configure)
|
6
depends/patches/qt/qttools_src.pro
Normal file
6
depends/patches/qt/qttools_src.pro
Normal file
@ -0,0 +1,6 @@
|
||||
TEMPLATE = subdirs
|
||||
SUBDIRS = linguist
|
||||
|
||||
fb = force_bootstrap
|
||||
CONFIG += $$fb
|
||||
cache(CONFIG, add, fb)
|
Loading…
Reference in New Issue
Block a user