I love the ability to specify haxelib versions inside the project XML. However, specifically with Lime, I see some odd results.
<haxelib name="lime" version="2.3.3" />
Here are my observations (I am targeting HTML5 - have not tried other targets):
- If not specified in the XML, Lime uses the computer’s set current version. This is as expected.
- If I DO specify a Lime version inside the XML, the computer still uses the current set version. Additionally, it triggers a build failure if the XML specified version is not installed. I thought this was at least helpful because I can draw attention to the set version to minimize errors.
- Since OpenFL3 (3.0.3), including the Lime version in the project XML seems to trigger different settings than not including it. I see a slightly different ApplicationMain generated, and it forces me to extend lime.app.Application from Main. Also, NOTHING renders to the screen. Even if I do a really simple Lib.current.graphics draw(). Lib.current.stage is reporting null.
- If I DO NOT specifiy Lime in my project XML using OpenFL3, the project compiles and runs just fine. Main can extend Sprite with no issues, and it can ALSO extend lime.app.Application with no issues. Everything renders and works as it should.
So my question here is: am I using Lime in error by trying to specify a version? Why do we see such different behavior? It would be very valuable to me to be able to lock Lime version per project because I have one computer building many projects that are guaranteed to be on various Lime versions. This behavior works just fine with any other haxelib.
Thanks in advance for clarifying anything I’m missing or looking into providing this support!