diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/examples/host-toolchain/README.md | 13 | ||||
-rw-r--r-- | plugins/examples/host-toolchain/qt5-host-tools.mk | 52 |
2 files changed, 64 insertions, 1 deletions
diff --git a/plugins/examples/host-toolchain/README.md b/plugins/examples/host-toolchain/README.md index 1478edf..a22215e 100644 --- a/plugins/examples/host-toolchain/README.md +++ b/plugins/examples/host-toolchain/README.md @@ -2,7 +2,9 @@ Cross Compiling a Host Toolchain -------------------------------- This plugin demonstrates a minimal working toolchain built with MXE to -execute on a Windows host. To build: +execute on a Windows host. + +#### GCC ``` make gcc-host MXE_PLUGIN_DIRS=plugins/examples/host-toolchain/ @@ -15,6 +17,15 @@ Once complete, copy `usr/{target}` to an appropriate Windows machine and execute the `usr\{target}\bin\test-gcc-host.bat` batch file. This builds and runs the `libgomp` test as a sanity check. +#### Qt5 tools (`qmake.exe`, `rcc.exe`, etc.) + +``` +make qt5-host-tools MXE_PLUGIN_DIRS=plugins/examples/host-toolchain/ +``` + +This will build `qtbase` then run a second pass to cross-compile the qt tools +and install them to `usr/{target}/qt5-host-tools/bin`. + Why? ---- diff --git a/plugins/examples/host-toolchain/qt5-host-tools.mk b/plugins/examples/host-toolchain/qt5-host-tools.mk new file mode 100644 index 0000000..07fcacb --- /dev/null +++ b/plugins/examples/host-toolchain/qt5-host-tools.mk @@ -0,0 +1,52 @@ +# This file is part of MXE. +# See index.html for further information. + +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 + +# main configure options: -platform -host-option -external-hostbindir +# further testing needed: -prefix -extprefix -hostprefix -sysroot -no-gcc-sysroot +# and keeping options synced with qtbase + +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)' \ + -static \ + -release \ + -c++std c++11 \ + -platform win32-g++ \ + -host-option CROSS_COMPILE=${TARGET}- \ + -external-hostbindir '$(PREFIX)/$(TARGET)/qt5/bin' \ + -device-option PKG_CONFIG='${TARGET}-pkg-config' \ + -device-option CROSS_COMPILE=${TARGET}- \ + -force-pkg-config \ + -no-sql-{db2,ibase,mysql,oci,odbc,psql,sqlite,sqlite2,tds} \ + -no-use-gold-linker \ + -nomake examples \ + -nomake tests \ + -opensource \ + -confirm-license \ + -continue \ + -verbose + + rm -rf '$(PREFIX)/$(TARGET)/$(PKG)' + # install qmake.exe (created by configure) + # and generate remaining build configuration + $(MAKE) -C '$(1).build' -j $(JOBS) \ + sub-qmake-qmake-aux-pro-install_subtargets \ + sub-src-qmake_all + + # build and install 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 +endef |