Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.0.0
-
None
-
windows 7, msvc2012 (both x64 & x86)
-
f4065db172f11b751af03c04a21bd0b4097d1779
Description
While building the ANGLE library, the Makefiles produced by QMake for the compiler (translator_common / translator_hlsl) appear to clobber one another making it where only translator_hlsl.lib is generated and the build process errors out with:
NMAKE : fatal error U1073: don't know how to make 'C:\Dev\qt\qt_5\qt5\qtbase\lib\translator_commond.lib' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0 \VC\BIN\nmake.exe"' : return code '0x2' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0 \VC\BIN\nmake.exe"' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0 \VC\BIN\nmake.exe"' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0 \VC\BIN\nmake.exe"' : return code '0x2' Stop.
Reviewing the Makefile's in qtbase\src\angle\src\compiler shows that only a target for translator_hlsl is created. Running QMake -f over the translator_common.pro file creates a Makefile that will built translator_common.lib (thereby overwriting the Makefile that builds translator_hlsl.lib).
Then, after 'fixing' this and attempting to continue building, I am met with the following error:
(set "PATH=C:\Dev\qt\qt_5\qt5\qtbase\src\angle\src\..\..\..\..\gnuwin32\ bin;%PATH%") && bison --no-lines --skeleton=yacc.c --defines=glslang_tab.h --out put=glslang_tab.cpp ..\..\..\3rdparty\angle\src\compiler\glslang.y \Git\bin"") was unexpected at this time. NMAKE : fatal error U1077: '(set' : return code '0x1' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0 \VC\BIN\nmake.exe"' : return code '0x2' Stop.
This is the result of the (set PATH=...), removing the brackets from set and moving the bison/flex/etc lines onto their own line fixes the problem and allows for the library and QT to be build.
In other words, in order to build QT I build ANGLE first, letting it create the translator_hlsl.lib and failing while building another lib in ANGLE. Once this occurs, I run qmake on the translator_common.pro file and edit all of the lines akin to:
(set "PATH=C:\Dev\qt\qt_5\qt5\qtbase\src\angle\src\..\..\..\..\gnuwin32\bin;%PATH%") && win_flex --noline --nounistd --outfile=glslang_lex.cpp ..\..\..\3rdparty\angle\src\compiler\glslang.l
to:
set "PATH=C:\Dev\qt\qt_5\qt5\qtbase\src\angle\src\..\..\..\..\gnuwin32\bin;%PATH%" win_flex --noline --nounistd --outfile=glslang_lex.cpp ..\..\..\3rdparty\angle\src\compiler\glslang.l
Which has to be done in a few places (id est the preprocessor, etc)
EXPECTED RESULTS:
that the build system would create targets for all libraries to be built and do so in a manner that does not create syntax errors.