summaryrefslogtreecommitdiffstats
path: root/plugins/examples/qt5-freeze/qtbase.mk
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/examples/qt5-freeze/qtbase.mk')
-rw-r--r--plugins/examples/qt5-freeze/qtbase.mk107
1 files changed, 107 insertions, 0 deletions
diff --git a/plugins/examples/qt5-freeze/qtbase.mk b/plugins/examples/qt5-freeze/qtbase.mk
new file mode 100644
index 0000000..5545580
--- /dev/null
+++ b/plugins/examples/qt5-freeze/qtbase.mk
@@ -0,0 +1,107 @@
+# This file is part of MXE. See LICENSE.md for licensing information.
+
+PKG := qtbase
+$(PKG)_WEBSITE := http://qt-project.org/
+$(PKG)_DESCR := Qt
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 5.7.1
+$(PKG)_CHECKSUM := edcdf549d94d98aff08e201dcb3ca25bc3628a37b1309e320d5f556b6b66557e
+$(PKG)_PATCHES := $(realpath $(sort $(wildcard $(dir $(lastword $(MAKEFILE_LIST)))/$(PKG)-[0-9]*.patch)))
+$(PKG)_SUBDIR := $(PKG)-opensource-src-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-opensource-src-$($(PKG)_VERSION).tar.xz
+$(PKG)_URL := http://download.qt.io/official_releases/qt/5.7/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc dbus fontconfig freetds freetype harfbuzz jpeg libmysqlclient libpng openssl pcre postgresql sqlite zlib
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- http://download.qt-project.org/official_releases/qt/5.5/ | \
+ $(SED) -n 's,.*href="\(5\.[0-9]\.[^/]*\)/".*,\1,p' | \
+ grep -iv -- '-rc' | \
+ sort |
+ tail -1
+endef
+
+define $(PKG)_BUILD
+ # ICU is buggy. See #653. TODO: reenable it some time in the future.
+ cd '$(1)' && \
+ OPENSSL_LIBS="`'$(TARGET)-pkg-config' --libs-only-l openssl`" \
+ PSQL_LIBS="-lpq -lsecur32 `'$(TARGET)-pkg-config' --libs-only-l openssl pthreads` -lws2_32" \
+ SYBASE_LIBS="-lsybdb `'$(TARGET)-pkg-config' --libs-only-l gnutls` -liconv -lws2_32" \
+ ./configure \
+ -opensource \
+ -c++std c++11 \
+ -confirm-license \
+ -xplatform win32-g++ \
+ -device-option CROSS_COMPILE=${TARGET}- \
+ -device-option PKG_CONFIG='${TARGET}-pkg-config' \
+ -force-pkg-config \
+ -no-use-gold-linker \
+ -release \
+ -static \
+ -prefix '$(PREFIX)/$(TARGET)/qt5' \
+ -no-icu \
+ -opengl desktop \
+ -no-glib \
+ -accessibility \
+ -nomake examples \
+ -nomake tests \
+ -plugin-sql-mysql \
+ -mysql_config $(PREFIX)/$(TARGET)/bin/mysql_config \
+ -plugin-sql-sqlite \
+ -plugin-sql-odbc \
+ -plugin-sql-psql \
+ -plugin-sql-tds -D Q_USE_SYBASE \
+ -system-zlib \
+ -system-libpng \
+ -system-libjpeg \
+ -system-sqlite \
+ -fontconfig \
+ -system-freetype \
+ -system-harfbuzz \
+ -system-pcre \
+ -openssl-linked \
+ -dbus-linked \
+ -no-pch \
+ -v \
+ $($(PKG)_CONFIGURE_OPTS)
+
+ $(MAKE) -C '$(1)' -j '$(JOBS)'
+ rm -rf '$(PREFIX)/$(TARGET)/qt5'
+ $(MAKE) -C '$(1)' -j 1 install
+ ln -sf '$(PREFIX)/$(TARGET)/qt5/bin/qmake' '$(PREFIX)/bin/$(TARGET)'-qmake-qt5
+
+ mkdir '$(1)/test-qt'
+ cd '$(1)/test-qt' && '$(PREFIX)/$(TARGET)/qt5/bin/qmake' '$(PWD)/src/qt-test.pro'
+ $(MAKE) -C '$(1)/test-qt' -j '$(JOBS)' $(BUILD_TYPE)
+ $(INSTALL) -m755 '$(1)/test-qt/$(BUILD_TYPE)/test-qt5.exe' '$(PREFIX)/$(TARGET)/bin/'
+
+ # build test the manual way
+ mkdir '$(1)/test-$(PKG)-pkgconfig'
+ '$(PREFIX)/$(TARGET)/qt5/bin/uic' -o '$(1)/test-$(PKG)-pkgconfig/ui_qt-test.h' '$(TOP_DIR)/src/qt-test.ui'
+ '$(PREFIX)/$(TARGET)/qt5/bin/moc' \
+ -o '$(1)/test-$(PKG)-pkgconfig/moc_qt-test.cpp' \
+ -I'$(1)/test-$(PKG)-pkgconfig' \
+ '$(TOP_DIR)/src/qt-test.hpp'
+ '$(PREFIX)/$(TARGET)/qt5/bin/rcc' -name qt-test -o '$(1)/test-$(PKG)-pkgconfig/qrc_qt-test.cpp' '$(TOP_DIR)/src/qt-test.qrc'
+ '$(TARGET)-g++' \
+ -W -Wall -Werror -std=c++0x -pedantic \
+ '$(TOP_DIR)/src/qt-test.cpp' \
+ '$(1)/test-$(PKG)-pkgconfig/moc_qt-test.cpp' \
+ '$(1)/test-$(PKG)-pkgconfig/qrc_qt-test.cpp' \
+ -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG)-pkgconfig.exe' \
+ -I'$(1)/test-$(PKG)-pkgconfig' \
+ `'$(TARGET)-pkg-config' Qt5Widgets$(BUILD_TYPE_SUFFIX) --cflags --libs`
+
+ # setup cmake toolchain
+ echo 'set(CMAKE_SYSTEM_PREFIX_PATH "$(PREFIX)/$(TARGET)/qt5" ${CMAKE_SYSTEM_PREFIX_PATH})' > '$(CMAKE_TOOLCHAIN_DIR)/$(PKG).cmake'
+
+ # batch file to run test programs
+ (printf 'set PATH=..\\lib;..\\qt5\\bin;..\\qt5\\lib;%%PATH%%\r\n'; \
+ printf 'set QT_QPA_PLATFORM_PLUGIN_PATH=..\\qt5\\plugins\r\n'; \
+ printf 'test-qt5.exe\r\n'; \
+ printf 'test-qtbase-pkgconfig.exe\r\n';) \
+ > '$(PREFIX)/$(TARGET)/bin/test-qt5.bat'
+endef
+
+
+$(PKG)_BUILD_SHARED = $(subst -static ,-shared ,\
+ $($(PKG)_BUILD))