Dmitry Shachnev: > Package: debhelper > Version: 10.9 > Severity: wishlist > Tags: patch > > Dear debhelper maintainers, > > I am attaching two patches against Git master that should make packages > using qmake buildsystem cross-buildable (at least some of them). > > The first patch sets the proper toolchain commands, the second one adds > a very basic qt.conf so that qmake searches for Qt headers in a proper > location. It was enough in my case, but we may extend it with other paths > later if needed. > > -- > Dmitry Shachnev > > [...]
Hi Dmitry, Thanks for providing this patch set. :) I am CC'ing Helmut, who is usually on top of cross-building for his input. I have done a quick review and with my remarks below: [patch1] > @@ -52,6 +52,10 @@ sub configure { > > push @options, '-makefile'; > push @options, '-nocache'; > + if (is_cross_compiling()) { > + # Force generic mkspec to avoid -m32 / -m64 flags > + push @options, ("-spec", "linux-g++"); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ I believe we rely on cross-builds producing bit-for-bit identical output with a native build as a part of the QA. If so, then this need to be unconditional (possibly in a later compat level). If the -spec option is used, then I will need something that also works for other architectures/OSes. It is fine if it is a stable of known OSes mapped to their option (like we do for cmake). [patch2] > @@ -55,6 +56,14 @@ sub configure { > if (is_cross_compiling()) { > # Force generic mkspec to avoid -m32 / -m64 flags > push @options, ("-spec", "linux-g++"); > + > + my ($fh, $filename) = tempfile("qt.XXXX", SUFFIX => ".conf", > TMPDIR => 1, UNLINK => 1); > + $fh->print("[Paths]\n"); > + $fh->print("Prefix=/usr\n"); > + $fh->print("HostData=lib/" . > dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "/qt5\n"); > + $fh->print("Headers=include/" . > dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "/qt5\n"); These two lines should almost certainly use DEB_HOST_MULTIARCH. :) Thanks, ~Niels