Details
-
Bug
-
Resolution: Out of scope
-
Not Evaluated
-
None
-
5.12.5
-
None
-
macOS 10.14.6, iMac Pro, Xcode 10.3
Description
The Qt 5.12.5 build fails when I attempt to build it inside a directory that has a "@" (at sign or strudel) in the path name.
What I did (output omitted):
$ pwd
/Users/janke/tmp/qt/qt@5.12
$ tar xf ../qt-everywhere-src-5.12.5.tar.xz
$ cd qt-everywhere-src-5.12.5
$ ./configure -prefix /tmp/test-qt -release -opensource -confirm-license -system-zlib -qt-libpng -qt-libjpeg -qt-freetype -qt-pcre -nomake tests -nomake examples -no-rpath -pkg-config -dbus-runtime -proprietary-codecs
$ gmake -j 20
Got this error:
gmake[4]: Entering directory '/Users/janke/tmp/qt/qt@5.12/qt-everywhere-src-5.12.5/qtwebengine/src/core'
/Users/janke/tmp/qt/qt@5.12/qt-everywhere-src-5.12.5/qtwebengine/src/3rdparty/ninja/ninja -v -C /Users/janke/tmp/qt/qt@5.12/qt-everywhere-src-5.12.5/qtwebengine/src/core/release QtWebEngineCore
ninja: Entering directory `/Users/janke/tmp/qt/qt@5.12/qt-everywhere-src-5.12.5/qtwebengine/src/core/release'
ninja: error: toolchain.ninja:41622: expected newline, got lexing error
rule _Users_janke_tmp_qt_qt@5.12_qt-everywhere-src-5.12.5_qtwebengine_sr...
{{ ^ near here}}
gmake[4]: *** [Makefile.gn_run:1142: run_ninja] Error 1
gmake[4]: Leaving directory '/Users/janke/tmp/qt/qt@5.12/qt-everywhere-src-5.12.5/qtwebengine/src/core'
gmake[3]: *** [Makefile:88: sub-gn_run-pro-make_first] Error 2
gmake[3]: Leaving directory '/Users/janke/tmp/qt/qt@5.12/qt-everywhere-src-5.12.5/qtwebengine/src/core'
gmake[2]: *** [Makefile:87: sub-core-make_first] Error 2
gmake[2]: Leaving directory '/Users/janke/tmp/qt/qt@5.12/qt-everywhere-src-5.12.5/qtwebengine/src'
gmake[1]: *** [Makefile:55: sub-src-make_first] Error 2
gmake[1]: Leaving directory '/Users/janke/tmp/qt/qt@5.12/qt-everywhere-src-5.12.5/qtwebengine'
gmake: *** [Makefile:1038: module-qtwebengine-make_first] Error 2
Rerunning with non-parallelized make gives me a possibly simpler error message:
( test -e Makefile.gn_run || /Users/janke/tmp/Qt/qt@5.12/qt-everywhere-src-5.12.5/qtbase/bin/qmake -o Makefile.gn_run /Users/janke/tmp/qt/qt@5.12/qt-everywhere-src-5.12.5/qtwebengine/src/core/gn_run.pro ) && /Applications/Xcode-10.3.app/Contents/Developer/usr/bin/make -f Makefile.gn_run
/Users/janke/tmp/qt/qt@5.12/qt-everywhere-src-5.12.5/qtwebengine/src/3rdparty/ninja/ninja -v -C /Users/janke/tmp/qt/qt@5.12/qt-everywhere-src-5.12.5/qtwebengine/src/core/release QtWebEngineCore
ninja: Entering directory `/Users/janke/tmp/qt/qt@5.12/qt-everywhere-src-5.12.5/qtwebengine/src/core/release'
ninja: error: toolchain.ninja:41622: expected newline, got lexing error
rule _Users_janke_tmp_qt_qt@5.12_qt-everywhere-src-5.12.5_qtwebengine_sr...
{{ ^ near here}}
make[4]: *** [run_ninja] Error 1
make[3]: *** [sub-gn_run-pro-make_first] Error 2
make[2]: *** [sub-core-make_first] Error 2
make[1]: *** [sub-src-make_first] Error 2
make: *** [module-qtwebengine-make_first] Error 2
This is an inconvenience because Homebrew uses the "@" sign in versioned formula names, in form "<package>@<version>", and the formula name is used as one of the path name elements in the temporary directory under which the build is done. Thus, if you try to make a versioned "qt@5.12" or similar formula, its build will fail. It would be nice to be able to define versioned Qt formulae using Homebrew's naming convention.
This is on macOS 10.14.6, but it may affect other platforms as well.
Possibly related to https://bugreports.qt.io/browse/QTBUG-58942.