mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-25 10:43:19 -03:00
8efa34fb77
qt5.7 changed the location of some of its symbols, creating a circular dependency in Qt5Core. Rather than trying to fix that up, build our own zlib rather than having it built for us.
180 lines
9.7 KiB
Makefile
180 lines
9.7 KiB
Makefile
PACKAGE=qt
|
|
$(package)_version=5.7.1
|
|
$(package)_download_path=http://download.qt.io/official_releases/qt/5.7/$($(package)_version)/submodules
|
|
$(package)_suffix=opensource-src-$($(package)_version).tar.gz
|
|
$(package)_file_name=qtbase-$($(package)_suffix)
|
|
$(package)_sha256_hash=95f83e532d23b3ddbde7973f380ecae1bac13230340557276f75f2e37984e410
|
|
$(package)_dependencies=openssl zlib
|
|
$(package)_linux_dependencies=freetype fontconfig libxcb libX11 xproto libXext
|
|
$(package)_build_subdir=qtbase
|
|
$(package)_qt_libs=corelib network widgets gui plugins testlib
|
|
$(package)_patches=mac-qmake.conf mingw-uuidof.patch pidlist_absolute.patch fix-xcb-include-order.patch fix_qt_pkgconfig.patch
|
|
|
|
$(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
|
|
$(package)_qttranslations_sha256_hash=3a15aebd523c6d89fb97b2d3df866c94149653a26d27a00aac9b6d3020bc5a1d
|
|
|
|
|
|
$(package)_qttools_file_name=qttools-$($(package)_suffix)
|
|
$(package)_qttools_sha256_hash=22d67de915cb8cd93e16fdd38fa006224ad9170bd217c2be1e53045a8dd02f0f
|
|
|
|
$(package)_extra_sources = $($(package)_qttranslations_file_name)
|
|
$(package)_extra_sources += $($(package)_qttools_file_name)
|
|
|
|
define $(package)_set_vars
|
|
$(package)_config_opts_release = -release
|
|
$(package)_config_opts_debug = -debug
|
|
$(package)_config_opts += -bindir $(build_prefix)/bin
|
|
$(package)_config_opts += -c++std c++11
|
|
$(package)_config_opts += -confirm-license
|
|
$(package)_config_opts += -dbus-runtime
|
|
$(package)_config_opts += -hostprefix $(build_prefix)
|
|
$(package)_config_opts += -no-alsa
|
|
$(package)_config_opts += -no-audio-backend
|
|
$(package)_config_opts += -no-cups
|
|
$(package)_config_opts += -no-egl
|
|
$(package)_config_opts += -no-eglfs
|
|
$(package)_config_opts += -no-feature-style-windowsmobile
|
|
$(package)_config_opts += -no-feature-style-windowsce
|
|
$(package)_config_opts += -no-freetype
|
|
$(package)_config_opts += -no-gif
|
|
$(package)_config_opts += -no-glib
|
|
$(package)_config_opts += -no-gstreamer
|
|
$(package)_config_opts += -no-icu
|
|
$(package)_config_opts += -no-iconv
|
|
$(package)_config_opts += -no-kms
|
|
$(package)_config_opts += -no-linuxfb
|
|
$(package)_config_opts += -no-libudev
|
|
$(package)_config_opts += -no-mitshm
|
|
$(package)_config_opts += -no-mtdev
|
|
$(package)_config_opts += -no-pulseaudio
|
|
$(package)_config_opts += -no-openvg
|
|
$(package)_config_opts += -no-reduce-relocations
|
|
$(package)_config_opts += -no-qml-debug
|
|
$(package)_config_opts += -no-sql-db2
|
|
$(package)_config_opts += -no-sql-ibase
|
|
$(package)_config_opts += -no-sql-oci
|
|
$(package)_config_opts += -no-sql-tds
|
|
$(package)_config_opts += -no-sql-mysql
|
|
$(package)_config_opts += -no-sql-odbc
|
|
$(package)_config_opts += -no-sql-psql
|
|
$(package)_config_opts += -no-sql-sqlite
|
|
$(package)_config_opts += -no-sql-sqlite2
|
|
$(package)_config_opts += -no-use-gold-linker
|
|
$(package)_config_opts += -no-xinput2
|
|
$(package)_config_opts += -no-xrender
|
|
$(package)_config_opts += -nomake examples
|
|
$(package)_config_opts += -nomake tests
|
|
$(package)_config_opts += -opensource
|
|
$(package)_config_opts += -openssl-linked
|
|
$(package)_config_opts += -optimized-qmake
|
|
$(package)_config_opts += -pch
|
|
$(package)_config_opts += -pkg-config
|
|
$(package)_config_opts += -prefix $(host_prefix)
|
|
$(package)_config_opts += -qt-libpng
|
|
$(package)_config_opts += -qt-libjpeg
|
|
$(package)_config_opts += -qt-pcre
|
|
$(package)_config_opts += -system-zlib
|
|
$(package)_config_opts += -reduce-exports
|
|
$(package)_config_opts += -static
|
|
$(package)_config_opts += -silent
|
|
$(package)_config_opts += -v
|
|
$(package)_config_opts += -no-feature-printer
|
|
$(package)_config_opts += -no-feature-printdialog
|
|
|
|
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 MAC_LD64_VERSION=$(LD64_VERSION)
|
|
endif
|
|
|
|
$(package)_config_opts_linux = -qt-xkbcommon
|
|
$(package)_config_opts_linux += -qt-xcb
|
|
$(package)_config_opts_linux += -system-freetype
|
|
$(package)_config_opts_linux += -no-sm
|
|
$(package)_config_opts_linux += -fontconfig
|
|
$(package)_config_opts_linux += -no-opengl
|
|
$(package)_config_opts_arm_linux = -platform linux-g++ -xplatform $(host)
|
|
$(package)_config_opts_i686_linux = -xplatform linux-g++-32
|
|
$(package)_config_opts_mingw32 = -no-opengl -xplatform win32-g++ -device-option CROSS_COMPILE="$(host)-"
|
|
$(package)_build_env = QT_RCC_TEST=1
|
|
endef
|
|
|
|
define $(package)_fetch_cmds
|
|
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \
|
|
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qttranslations_file_name),$($(package)_qttranslations_file_name),$($(package)_qttranslations_sha256_hash)) && \
|
|
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qttools_file_name),$($(package)_qttools_file_name),$($(package)_qttools_sha256_hash))
|
|
endef
|
|
|
|
define $(package)_extract_cmds
|
|
mkdir -p $($(package)_extract_dir) && \
|
|
echo "$($(package)_sha256_hash) $($(package)_source)" > $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
|
echo "$($(package)_qttranslations_sha256_hash) $($(package)_source_dir)/$($(package)_qttranslations_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
|
echo "$($(package)_qttools_sha256_hash) $($(package)_source_dir)/$($(package)_qttools_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
|
$(build_SHA256SUM) -c $($(package)_extract_dir)/.$($(package)_file_name).hash && \
|
|
mkdir qtbase && \
|
|
tar --strip-components=1 -xf $($(package)_source) -C qtbase && \
|
|
mkdir qttranslations && \
|
|
tar --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qttranslations_file_name) -C qttranslations && \
|
|
mkdir qttools && \
|
|
tar --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qttools_file_name) -C qttools
|
|
endef
|
|
|
|
|
|
define $(package)_preprocess_cmds
|
|
sed -i.old "s|updateqm.commands = \$$$$\$$$$LRELEASE|updateqm.commands = $($(package)_extract_dir)/qttools/bin/lrelease|" qttranslations/translations/translations.pro && \
|
|
sed -i.old "/updateqm.depends =/d" qttranslations/translations/translations.pro && \
|
|
sed -i.old "s/src_plugins.depends = src_sql src_xml src_network/src_plugins.depends = src_xml src_network/" qtbase/src/src.pro && \
|
|
sed -i.old "s|X11/extensions/XIproto.h|X11/X.h|" qtbase/src/plugins/platforms/xcb/qxcbxsettings.cpp && \
|
|
sed -i.old 's/if \[ "$$$$XPLATFORM_MAC" = "yes" \]; then xspecvals=$$$$(macSDKify/if \[ "$$$$BUILD_ON_MAC" = "yes" \]; then xspecvals=$$$$(macSDKify/' qtbase/configure && \
|
|
sed -i.old 's/CGEventCreateMouseEvent(0, kCGEventMouseMoved, pos, 0)/CGEventCreateMouseEvent(0, kCGEventMouseMoved, pos, kCGMouseButtonLeft)/' qtbase/src/plugins/platforms/cocoa/qcocoacursor.mm && \
|
|
mkdir -p qtbase/mkspecs/macx-clang-linux &&\
|
|
cp -f qtbase/mkspecs/macx-clang/Info.plist.lib qtbase/mkspecs/macx-clang-linux/ &&\
|
|
cp -f qtbase/mkspecs/macx-clang/Info.plist.app 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 && \
|
|
patch -p1 < $($(package)_patch_dir)/mingw-uuidof.patch && \
|
|
patch -p1 < $($(package)_patch_dir)/pidlist_absolute.patch && \
|
|
patch -p1 < $($(package)_patch_dir)/fix-xcb-include-order.patch && \
|
|
patch -p1 < $($(package)_patch_dir)/fix_qt_pkgconfig.patch && \
|
|
echo "QMAKE_CFLAGS += $($(package)_cflags) $($(package)_cppflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
|
|
echo "QMAKE_CXXFLAGS += $($(package)_cxxflags) $($(package)_cppflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
|
|
echo "QMAKE_LFLAGS += $($(package)_ldflags)" >> qtbase/mkspecs/common/gcc-base.conf && \
|
|
sed -i.old "s|QMAKE_CFLAGS = |QMAKE_CFLAGS = $($(package)_cflags) $($(package)_cppflags) |" qtbase/mkspecs/win32-g++/qmake.conf && \
|
|
sed -i.old "s|QMAKE_LFLAGS = |QMAKE_LFLAGS = $($(package)_ldflags) |" qtbase/mkspecs/win32-g++/qmake.conf && \
|
|
sed -i.old "s|QMAKE_CXXFLAGS = |QMAKE_CXXFLAGS = $($(package)_cxxflags) $($(package)_cppflags) |" qtbase/mkspecs/win32-g++/qmake.conf
|
|
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 && \
|
|
./configure $($(package)_config_opts) && \
|
|
$(MAKE) sub-src-clean && \
|
|
cd ../qttranslations && ../qtbase/bin/qmake qttranslations.pro -o Makefile && \
|
|
cd translations && ../../qtbase/bin/qmake translations.pro -o Makefile && cd ../.. &&\
|
|
cd qttools/src/linguist/lrelease/ && ../../../../qtbase/bin/qmake lrelease.pro -o Makefile
|
|
endef
|
|
|
|
define $(package)_build_cmds
|
|
$(MAKE) -C src $(addprefix sub-,$($(package)_qt_libs)) && \
|
|
$(MAKE) -C ../qttools/src/linguist/lrelease && \
|
|
$(MAKE) -C ../qttranslations
|
|
endef
|
|
|
|
define $(package)_stage_cmds
|
|
$(MAKE) -C src INSTALL_ROOT=$($(package)_staging_dir) $(addsuffix -install_subtargets,$(addprefix sub-,$($(package)_qt_libs))) && cd .. &&\
|
|
$(MAKE) -C qttools/src/linguist/lrelease INSTALL_ROOT=$($(package)_staging_dir) install_target && \
|
|
$(MAKE) -C qttranslations INSTALL_ROOT=$($(package)_staging_dir) install_subtargets && \
|
|
if `test -f qtbase/src/plugins/platforms/xcb/xcb-static/libxcb-static.a`; then \
|
|
cp qtbase/src/plugins/platforms/xcb/xcb-static/libxcb-static.a $($(package)_staging_prefix_dir)/lib; \
|
|
fi
|
|
endef
|
|
|
|
define $(package)_postprocess_cmds
|
|
rm -rf native/mkspecs/ native/lib/ lib/cmake/ && \
|
|
rm -f lib/lib*.la lib/*.prl plugins/*/*.prl
|
|
endef
|