openfl / lime

A foundational Haxe framework for cross-platform development
https://lime.openfl.org/
MIT License
754 stars 370 forks source link

Remove conditional compilation from `AssetsMacro` class. #1764

Closed player-03 closed 7 months ago

player-03 commented 7 months ago

A recent change to the macro context seems to prevent us from using some conditional compilation flags. I have only ever relied on #if macro working during a macro context, and suspect it was a fluke that #if html5 ever worked.

In fact, it seems that #if hl never worked. ddd19afe5273aea61a2a6487618dcad438c2dfbd adds the check but prefers to call embedBytesHL() instead, so it doesn't get checked. Similarly, #if js and Haxe-provided flags never work in macros; only Lime's flags ever stood a chance.

This PR switches to a more future-proof approach, and also tries to make the code more readable. I believe this closes #1763 (unless more errors get revealed once these are fixed).

player-03 commented 7 months ago

The tests aren't going to check this, since none of the sample projects embed their assets. But I tested it on my machine at least.