summaryrefslogtreecommitdiffstats
path: root/plugins/examples/host-toolchain/qt5-host-tools.mk
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/examples/host-toolchain/qt5-host-tools.mk')
-rw-r--r--plugins/examples/host-toolchain/qt5-host-tools.mk49
1 files changed, 36 insertions, 13 deletions
diff --git a/plugins/examples/host-toolchain/qt5-host-tools.mk b/plugins/examples/host-toolchain/qt5-host-tools.mk
index 07fcacb..5e13ee2 100644
--- a/plugins/examples/host-toolchain/qt5-host-tools.mk
+++ b/plugins/examples/host-toolchain/qt5-host-tools.mk
@@ -5,7 +5,7 @@ PKG := $(basename $(notdir $(lastword $(MAKEFILE_LIST))))
$(PKG)_FILE = $(qtbase_FILE)
$(PKG)_PATCHES = $(realpath $(sort $(wildcard $(addsuffix /qtbase-[0-9]*.patch, $(TOP_DIR)/src))))
$(PKG)_SUBDIR = $(qtbase_SUBDIR)
-$(PKG)_DEPS := gcc qtbase
+$(PKG)_DEPS := gcc gcc-host make-w32-bin qtbase
# main configure options: -platform -host-option -external-hostbindir
# further testing needed: -prefix -extprefix -hostprefix -sysroot -no-gcc-sysroot
@@ -15,7 +15,7 @@ define $(PKG)_BUILD
$(SED) -i 's,BUILD_ON_MAC=yes,BUILD_ON_MAC=no,g' '$(1)/configure'
mkdir '$(1).build'
cd '$(1).build' && '$(1)/configure' \
- -prefix '$(PREFIX)/$(TARGET)/$(PKG)' \
+ -prefix '$(PREFIX)/$(TARGET)/qt5' \
-static \
-release \
-c++std c++11 \
@@ -25,6 +25,7 @@ define $(PKG)_BUILD
-device-option PKG_CONFIG='${TARGET}-pkg-config' \
-device-option CROSS_COMPILE=${TARGET}- \
-force-pkg-config \
+ -no-icu \
-no-sql-{db2,ibase,mysql,oci,odbc,psql,sqlite,sqlite2,tds} \
-no-use-gold-linker \
-nomake examples \
@@ -34,19 +35,41 @@ define $(PKG)_BUILD
-continue \
-verbose
- rm -rf '$(PREFIX)/$(TARGET)/$(PKG)'
- # install qmake.exe (created by configure)
- # and generate remaining build configuration
+ # generate remaining build configuration (qmake is created by configure)
$(MAKE) -C '$(1).build' -j $(JOBS) \
- sub-qmake-qmake-aux-pro-install_subtargets \
sub-src-qmake_all
- # build and install other tools
+ # build other tools
$(MAKE) -C '$(1).build/src' -j $(JOBS) \
- sub-moc-install_subtargets \
- sub-qdbuscpp2xml-install_subtargets \
- sub-qdbusxml2cpp-install_subtargets \
- sub-qlalr-install_subtargets \
- sub-rcc-install_subtargets \
- sub-uic-install_subtargets
+ sub-{moc,qdbuscpp2xml,qdbusxml2cpp,qlalr,rcc,uic}-all
+
+ # install tools and create `qt.conf` for runtime config
+ cp '$(1).build/bin'/*.exe '$(PREFIX)/$(TARGET)/qt5/bin/'
+ (printf '[Paths]\r\n'; \
+ printf 'Prefix = ..\r\n'; \
+ ) > '$(PREFIX)/$(TARGET)/qt5/bin/qt.conf'
+
+ # test compilation on host
+ # windows can't work with symlinks
+ $(and $(BUILD_STATIC),
+ rm -f '$(PREFIX)/$(TARGET)/lib/libpng.a' && \
+ cp '$(PREFIX)/$(TARGET)/lib/libpng16.a' '$(PREFIX)/$(TARGET)/lib/libpng.a';
+ rm -f '$(PREFIX)/$(TARGET)/lib/libharfbuzz_too.a' && \
+ cp '$(PREFIX)/$(TARGET)/lib/libharfbuzz.a' '$(PREFIX)/$(TARGET)/lib/libharfbuzz_too.a';
+ )
+
+ # copy required test files and create batch file
+ mkdir -p '$(PREFIX)/$(TARGET)/qt5/test-$(PKG)'
+ cp '$(PWD)/src/qt-test.'* '$(PREFIX)/$(TARGET)/qt5/test-$(PKG)/'
+ cp '$(PWD)/src/qt.mk' '$(PREFIX)/$(TARGET)/qt5/test-$(PKG)/'
+ (printf 'set PWD=%%~dp0\r\n'; \
+ printf 'set PATH=%%PWD%%..\\bin;%%PWD%%..\\..\\bin;%%PWD%%..\\lib;%%PWD%%..\\..\\lib;%%PATH%%\r\n'; \
+ printf 'set QT_QPA_PLATFORM_PLUGIN_PATH=%%PWD%%..\\plugins\r\n'; \
+ printf 'mkdir build\r\n'; \
+ printf 'cd build\r\n'; \
+ printf 'qmake ..\r\n'; \
+ printf 'make -j $(JOBS)\r\n'; \
+ printf '%%PWD%%\\build\\release\\test-qt5.exe\r\n'; \
+ printf 'cmd\r\n'; \
+ ) > '$(PREFIX)/$(TARGET)/qt5/test-$(PKG)/test-$(PKG).bat'
endef