Angle on windows, current status

643 views
Skip to first unread message

Tim Luther Lewis

unread,
Sep 3, 2019, 3:16:29 PM9/3/19
to angleproject
Hi,
  Periodically, I need to rebuild angle and unfortunately, it's usually a bit of a chore. Here's what I've done and here's where I'm stuck.
I'm on Windows 10.

First up: my visual studio isn't where angle wants it to be so I have to do the following:

setx vs2019_install=e:/Program Files (x86)/Microsoft Visual Studio/2019/Community

Then, so it doesn't think I work for google and to stop it asking me for a googler username and password, I do this:

set DEPOT_TOOLS_WIN_TOOLCHAIN=0

Then it barfs because it can't find this timestamp file, so I make one:

echo 0 > build\util\LASTCHANGE.committime

And then I can finally run 

gn gen out/Debug

However, when I try to run 

ninja -C out/Debug

I get 

[1/1] Regenerating ninja files

100 times before finally 

ninja: error: manifest 'build.ninja' still dirty after 100 tries


Hopefully somebody here knows what's wrong because whilst I can fix python script errors, I don't know what Ninja is up to.

Thanks for reading.

Jamie Madill

unread,
Sep 3, 2019, 3:28:41 PM9/3/19
to Tim Luther Lewis, angleproject
Hey Tim,

Can you describe the steps you're running and what the errors are? Where do you deviate from https://chromium.googlesource.com/angle/angle/+/master/doc/DevSetup.md ?

--
You received this message because you are subscribed to the Google Groups "angleproject" group.
To unsubscribe from this group and stop receiving emails from it, send an email to angleproject...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/angleproject/4c3ae00a-fa3a-4e71-beb3-9ee91f03e97d%40googlegroups.com.

Tim Luther Lewis

unread,
Sep 3, 2019, 4:26:14 PM9/3/19
to angleproject
Hi Jamie,
  As far as I can see, I don't deviate from that document. I haven't set it to build visual studio projects yet but I have clang on my machine.

It fails on
ninja -C out/Debug
 

With the 'tried 100 times' issue

but also on
gclient sync 
which results in 

E:\prog\libs\angle>gclient sync
Syncing projects:  53% (17/32) ./third_party/deqp/src


./build (ERROR)
----------------------------------------
[0:00:00] Started.
----------------------------------------
Error: 2>
2> ____ .\build at 5262b9094642f42ac7ecd3fcfe2762e23cbefd97
2>      You have unstaged changes.
2>      Please commit, stash, or reset.

which is strange, as I haven't edited any of the project files under git.

trying

gn gen out/Debug --sln=angle-debug --ide=vs2019

does result in sln files. Trying to compile those results in odd permissions errors:


Severity Code Description Project File Line Suppression State
Error opening build log: Permission denied libGLESv1_CM_static E:\prog\libs\angle\out\Debug\obj\ninja 1
Error opening build log: Permission denied libGLESv2_static E:\prog\libs\angle\out\Debug\obj\ninja 1
Error MSB3073 The command "call ninja.exe -C E:\prog\libs\angle\out\Debug\  obj/libGLESv1_CM_static.lib" exited with code 1. libGLESv1_CM_static E:\prog\libs\angle\out\Debug\obj\libGLESv1_CM_static.vcxproj 71
Error MSB3073 The command "call ninja.exe -C E:\prog\libs\angle\out\Debug\  libGLESv2_with_capture.dll.lib" exited with code 1. libGLESv2_capture_complement E:\prog\libs\angle\out\Debug\obj\libGLESv2_capture_complement.vcxproj 122
Error MSB3073 The command "call ninja.exe -C E:\prog\libs\angle\out\Debug\  obj/libGLESv2_static.lib" exited with code 1. libGLESv2_static E:\prog\libs\angle\out\Debug\obj\libGLESv2_static.vcxproj 119
Error opening build log: Permission denied libfeature_support E:\prog\libs\angle\out\Debug\obj\ninja 1
Error MSB3073 The command "call ninja.exe -C E:\prog\libs\angle\out\Debug\  libfeature_support.dll.lib" exited with code 1. libfeature_support E:\prog\libs\angle\out\Debug\obj\libfeature_support.vcxproj 68
Error opening build log: Permission denied preprocessor E:\prog\libs\angle\out\Debug\obj\ninja 1
Error MSB3073 The command "call ninja.exe -C E:\prog\libs\angle\out\Debug\  obj/preprocessor.lib" exited with code 1. preprocessor E:\prog\libs\angle\out\Debug\obj\preprocessor.vcxproj 118
Error opening build log: Permission denied all ((angle)\(samples)\all) E:\prog\libs\angle\out\Debug\obj\samples\ninja 1
Error opening build log: Permission denied gles1_simple_lighting E:\prog\libs\angle\out\Debug\obj\samples\ninja 1




Jamie Madill

unread,
Sep 3, 2019, 4:27:59 PM9/3/19
to Tim Luther Lewis, angleproject
To clear up the "unstaged changes" thing go "gclient revert" then "gclient sync". Give that a go first.

--
You received this message because you are subscribed to the Google Groups "angleproject" group.
To unsubscribe from this group and stop receiving emails from it, send an email to angleproject...@googlegroups.com.

Tim Luther Lewis

unread,
Sep 3, 2019, 7:35:19 PM9/3/19
to angleproject
Hi,  
  I successfully cleaned and re-sync'd but the project files still don't build. In visual studio, it's a long list of 'permission denied'. The clang build (well, I assume it's a clang build) from the command prompt is less verbose but I suspect it's probably the same underlying issue.

  Is ninja trying to run as a different user or something? I'm not very familiar with this build system so any pointers would be very welcome.

Tim Luther Lewis

unread,
Sep 3, 2019, 7:37:23 PM9/3/19
to angleproject
However, running ninja from the command prompt (ninja -C out/Debug) now seems to work! 

Tim Luther Lewis

unread,
Sep 5, 2019, 3:46:35 AM9/5/19
to angleproject


Thanks for your help Jamie - the revert command seemed to work and angle compiles and links fine now. I'm still none the wiser as to what the permissions errors were - don't usually get those on windows. 

Jamie Madill

unread,
Sep 5, 2019, 9:18:01 AM9/5/19
to Tim Luther Lewis, angleproject
Glad to hear it's compiling now.

By the way, what are you using ANGLE for?

On Thu, Sep 5, 2019 at 3:46 AM Tim Luther Lewis <luther...@gmail.com> wrote:


Thanks for your help Jamie - the revert command seemed to work and angle compiles and links fine now. I'm still none the wiser as to what the permissions errors were - don't usually get those on windows. 

--
You received this message because you are subscribed to the Google Groups "angleproject" group.
To unsubscribe from this group and stop receiving emails from it, send an email to angleproject...@googlegroups.com.

Tim Luther Lewis

unread,
Sep 21, 2019, 4:37:24 AM9/21/19
to angleproject
Hi Jamie,
  Sorry for the delay, I missed your message. I'm using angle for a cross platform framework I'm developing. The various projects I'm currently building in it can be found here: http://www.totga-games.com/totga_projects.html
I'm targeting opengles 2.0/3.0 at the moment, so on windows Angle is the best solution for that. I'm going to add Vulkan as a back-end at some point but my dev time is limited so for now at least, keeping everything opengles based allows me to develop on a very wide range of platforms without getting bogged down juggling multiple APIs. 

All the best,
Tim.

John Blackburn

unread,
Sep 21, 2019, 12:06:58 PM9/21/19
to angleproject
Dear All,

This is my first post here. I am also trying to build Angle to use it for a cross platform game engine. Having tried to build it on Windows I encountered exactly the same problems mentioned in this post and had to follow the advice given above to get gclient, gn and ninja to work. (I also needed an additional step: to install windbg.dll from Windows Kits) The official documentation is not adequate to build Angle unfortunately so this thread is essential reading.

However, having got that far I encounter build problems as follows:
C:\Users\John\Documents\angle>ninja -C out/Debug
ninja
: Entering directory `out/Debug'
[626/2941] LINK(DLL) angle_util.dll angle_util.dll.lib angle_util.dll.pdb
FAILED: angle_util.dll angle_util.dll.lib angle_util.dll.pdb
ninja -t msvc -e environment.x64 -- ../../third_party/llvm-build/Release+Asserts/bin/lld-link.exe /nologo /IMPLIB:./angle_util.dll.lib /DLL /OUT:./angle_util.dll /PDB:.
/angle_util.dll.pdb @./angle_util.dll.rsp
lld-link: error: duplicate symbol: bool const std::_Is_integral<bool> in obj/angle_util/geometry_utils.obj and in obj/angle_util/random_utils.obj
lld-link: error: duplicate symbol: bool const std::_Is_integral<char> in obj/angle_util/geometry_utils.obj and in obj/angle_util/random_utils.obj
lld-link: error: duplicate symbol: bool const std::_Is_integral<signed char> in obj/angle_util/geometry_utils.obj and in obj/angle_util/random_utils.obj
lld-link: error: duplicate symbol: bool const std::_Is_integral<unsigned char> in obj/angle_util/geometry_utils.obj and in obj/angle_util/random_utils.obj
lld-link: error: duplicate symbol: bool const std::_Is_integral<wchar_t> in obj/angle_util/geometry_utils.obj and in obj/angle_util/random_utils.obj
: etc...

I was wondering, does Google produce pre-compiled Angle libraries? Or if not has anyone here succeeded in building the libs on Windows and could put them up somewhere? I don't intend to develop Angle I just want to use it. I'm sure others are in the same position.

Or failing that, is there a solution to the above link errors (the files did compile but can't link)

Angle is a wonderful tool, thanks for the huge effort in writing it!

Tim Luther Lewis

unread,
Sep 21, 2019, 12:10:45 PM9/21/19
to angleproject
Hi John, 
  That looks like it's double-linking a standard library or perhaps (because that's STL and therefore a template), you're building angle against a different C++ version than your engine? Hard to tell - there's so many things that can go wrong, it's like whack-a-mole.


John Blackburn

unread,
Sep 21, 2019, 12:42:03 PM9/21/19
to angleproject
Thanks very much. I was just trying to build the Angle libraries themselves not my game engine and got the above errors when running ninja. It seems you succeeded in building the  DLLs, could you possibly post them or are they archived somewhere else? I just want to use the DLLs.

Jamie Madill

unread,
Sep 21, 2019, 3:41:59 PM9/21/19
to john.bla...@gmail.com, angleproject
Hey John,

The official instructions are pretty clear in requiring GN and ninja. See https://chromium.googlesource.com/angle/angle/+/master/doc/DevSetup.md . Were you by chance following different instructions?

I think the build problem you're running into is because we aren't testing with the same version of the MSVC 2019 toolchain / Windows SDK. The good news is there's someone working to upgrade this so I expect some action on that in the next week or two. It's a bug in ANGLE and we should fix it.

If you just want to grab ANGLE binaries, the best way is to look in your Chrome folder. On my computer it's C:\Program Files (x86)\Google\Chrome\Application\76.0.3809.132. Then grab libegl.dll and libglesv2.dll.

Hope that helps,
Jamie


--
You received this message because you are subscribed to the Google Groups "angleproject" group.
To unsubscribe from this group and stop receiving emails from it, send an email to angleproject...@googlegroups.com.

Tim Luther Lewis

unread,
Sep 21, 2019, 4:15:16 PM9/21/19
to angleproject
Hi John, 
   Looks like Jamie got in before me and he's the guy to listen to but if you can't get it all working, I've zipped up the libs and dlls here:

http://www.totga-games.com//totga/Downloads/anglerelease.zip

Hope you get it working, either way.

John Blackburn

unread,
Sep 22, 2019, 7:58:14 AM9/22/19
to angleproject
Dear Jamie,

Thank you very much. Yes, I was following the official instructions but ran into the same problems as Tim flagged up in this post. I had to do
Enter code here...echo 0 > build\util\LASTCHANGE.committime
as he says and also "gclient revert", as you mentioned. I think both of these steps should be added to the instructions.

I think the remaining link problems I am getting is due to a different version of Visual Studio, as you say. I'm using VS 2019, version 16.2.4.

I did attempt to get clang to do the compile using is_clang=true (I noticed gclient revert seems to install a private version of clang) but it still seemed to use MSVC and I got exactly the same link errors.


On Saturday, September 21, 2019 at 8:41:59 PM UTC+1, Jamie Madill wrote:
Hey John,

The official instructions are pretty clear in requiring GN and ninja. See https://chromium.googlesource.com/angle/angle/+/master/doc/DevSetup.md . Were you by chance following different instructions?

I think the build problem you're running into is because we aren't testing with the same version of the MSVC 2019 toolchain / Windows SDK. The good news is there's someone working to upgrade this so I expect some action on that in the next week or two. It's a bug in ANGLE and we should fix it.

If you just want to grab ANGLE binaries, the best way is to look in your Chrome folder. On my computer it's C:\Program Files (x86)\Google\Chrome\Application\76.0.3809.132. Then grab libegl.dll and libglesv2.dll.

Hope that helps,
Jamie


On Sat, Sep 21, 2019 at 12:42 PM John Blackburn <john.bl...@gmail.com> wrote:
Thanks very much. I was just trying to build the Angle libraries themselves not my game engine and got the above errors when running ninja. It seems you succeeded in building the  DLLs, could you possibly post them or are they archived somewhere else? I just want to use the DLLs.

On Saturday, September 21, 2019 at 5:10:45 PM UTC+1, Tim Luther Lewis wrote:
Hi John, 
  That looks like it's double-linking a standard library or perhaps (because that's STL and therefore a template), you're building angle against a different C++ version than your engine? Hard to tell - there's so many things that can go wrong, it's like whack-a-mole.


--
You received this message because you are subscribed to the Google Groups "angleproject" group.
To unsubscribe from this group and stop receiving emails from it, send an email to anglep...@googlegroups.com.

John Blackburn

unread,
Sep 22, 2019, 10:30:08 AM9/22/19
to angleproject
Dear Tim,
Thanks very much for doing that. However, I was not able to downoload the ZIP file as it says the website is not registered.

Tim Luther Lewis

unread,
Sep 22, 2019, 2:15:36 PM9/22/19
to angleproject
Ah, sorry John. Copy-paste error:

Jamie Madill

unread,
Sep 22, 2019, 3:16:23 PM9/22/19
to Tim Luther Lewis, angleproject
If you guys don't mind please don't share links to custom binaries. The best way to get ANGLE pre-built binaries is to use the ones that come with Chrome or Chrome Canary in the application folder.

When you ran into the original problem, did gclient sync complete successfully? Did you set DEPOT_TOOLS_WIN_TOOLCHAIN before running gclient sync?

--
You received this message because you are subscribed to the Google Groups "angleproject" group.
To unsubscribe from this group and stop receiving emails from it, send an email to angleproject...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/angleproject/dc294508-89f8-4e3e-bf2d-1da1c0231e67%40googlegroups.com.

John Blackburn

unread,
Sep 23, 2019, 9:34:44 AM9/23/19
to angleproject
Sorry about that, Jamie, I will refer to Google Chrome as you say. Another source seems to be Qt.

I think I didn't set DEPOT_TOOLS_WIN_TOOLCHAIN=0 until I read through this thread. Although it is mentioned in the instructions I somehow missed it! Running gclient revert seems to call gclient sync automatically so that got everything going. (including downloading clang). Of course there was nothing to revert, as I didn't change the code, but gclient sync fixed everything.

Many thanks for your help

On Sunday, September 22, 2019 at 8:16:23 PM UTC+1, Jamie Madill wrote:
If you guys don't mind please don't share links to custom binaries. The best way to get ANGLE pre-built binaries is to use the ones that come with Chrome or Chrome Canary in the application folder.

When you ran into the original problem, did gclient sync complete successfully? Did you set DEPOT_TOOLS_WIN_TOOLCHAIN before running gclient sync?

On Sun, Sep 22, 2019 at 2:15 PM Tim Luther Lewis <luther...@gmail.com> wrote:
Ah, sorry John. Copy-paste error:

--
You received this message because you are subscribed to the Google Groups "angleproject" group.
To unsubscribe from this group and stop receiving emails from it, send an email to anglep...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages