--- a/usr/portage/eclass/qt5-build.eclass 2018-01-19 11:33:04.373616500 +0100 +++ b/usr/portage/eclass/qt5-build.eclass 2018-01-19 11:40:39.881565600 +0100 @@ -321,6 +321,14 @@ qt5_install_module_qconfigs prune_libtool_files + + # There is no way to teach the build system to play nicely + # with the slightly different directory layout on cygwin. + # Note: cygwinports does it like that, too. + if use elibc_Cygwin; then + dodir /usr/bin + mv "${D}"$EPREFIX/usr/lib/*.dll "${D}"$EPREFIX/usr/bin/ + fi } # @FUNCTION: qt5-build_pkg_postinst @@ -699,7 +707,7 @@ # @DESCRIPTION: # Helper function to get the various toolchain-related variables. qt5_qmake_args() { - echo \ + echo -n \ QMAKE_AR=\"$(tc-getAR)\" \ QMAKE_CC=\"$(tc-getCC)\" \ QMAKE_LINK_C=\"$(tc-getCC)\" \ @@ -710,15 +718,26 @@ QMAKE_OBJCOPY=\"$(tc-getOBJCOPY)\" \ QMAKE_RANLIB= \ QMAKE_STRIP=\"$(tc-getSTRIP)\" \ - QMAKE_CFLAGS=\"${CFLAGS}\" \ QMAKE_CFLAGS_RELEASE= \ QMAKE_CFLAGS_DEBUG= \ - QMAKE_CXXFLAGS=\"${CXXFLAGS}\" \ QMAKE_CXXFLAGS_RELEASE= \ QMAKE_CXXFLAGS_DEBUG= \ - QMAKE_LFLAGS=\"${LDFLAGS}\" \ QMAKE_LFLAGS_RELEASE= \ QMAKE_LFLAGS_DEBUG= + if use elibc_Cygwin; then + # The specs for cygwin add some crucial FLAGS that must not + # be thrown away. Better add the environment flags, so the + # specs flags can still be overridden. + echo \ + QMAKE_CFLAGS+=\"${CFLAGS}\" \ + QMAKE_CXXFLAGS+=\"${CXXFLAGS}\" \ + QMAKE_LFLAGS+=\"${LDFLAGS}\" + else + echo \ + QMAKE_CFLAGS=\"${CFLAGS}\" \ + QMAKE_CXXFLAGS=\"${CXXFLAGS}\" \ + QMAKE_LFLAGS=\"${LDFLAGS}\" + fi } # @FUNCTION: qt5_qmake @@ -729,11 +748,26 @@ qt5_qmake() { local projectdir=${PWD/#${QT5_BUILD_DIR}/${S}} local qmakepath= + local qmakeopts=( + QMAKE_CFLAGS=\"${CFLAGS}\" + QMAKE_CXXFLAGS=\"${CXXFLAGS}\" + QMAKE_LFLAGS=\"${LDFLAGS}\" + ) if [[ ${QT5_MODULE} == qtbase ]]; then qmakepath=${QT5_BUILD_DIR}/bin else qmakepath=${QT5_BINDIR} fi + if use elibc_Cygwin; then + # The specs for cygwin add some crucial FLAGS that must not + # be thrown away. Better add the environment flags, so the + # specs flags can still be overridden. + qmakeopts=( + QMAKE_CFLAGS+=\"${CFLAGS}\" + QMAKE_CXXFLAGS+=\"${CXXFLAGS}\" + QMAKE_LFLAGS+=\"${LDFLAGS}\" + ) + fi "${qmakepath}"/qmake \ "${projectdir}" \ @@ -749,15 +783,13 @@ QMAKE_OBJCOPY="$(tc-getOBJCOPY)" \ QMAKE_RANLIB= \ QMAKE_STRIP="$(tc-getSTRIP)" \ - QMAKE_CFLAGS="${CFLAGS}" \ QMAKE_CFLAGS_RELEASE= \ QMAKE_CFLAGS_DEBUG= \ - QMAKE_CXXFLAGS="${CXXFLAGS}" \ QMAKE_CXXFLAGS_RELEASE= \ QMAKE_CXXFLAGS_DEBUG= \ - QMAKE_LFLAGS="${LDFLAGS}" \ QMAKE_LFLAGS_RELEASE= \ QMAKE_LFLAGS_DEBUG= \ + "${qmakeopts[@]}" \ "${myqmakeargs[@]}" \ || die "qmake failed (${projectdir#${S}/})" }