3 ms·
I agree with your point on the C++ standards, but disagree about your complaints with Unreal's unity issues. There are issues with non-reproducibility in theory
by maccard 2y ago
I agree with your point on the C++ standards, but disagree about your complaints with Unreal's unity issues. There are issues with non-reproducibility in theory, but I've worked on massive projects and the impact is minimal.
> We worked around this by introducing a mandatory pre-merge CI stage that constantly does non-unity builds - but it's costly and not something a small company can often afford (a non-unity build of our UE project is ~20min on a Linux runner, and way more on a Windows one. That adds up fast).
Or you could only build the files that have changed. Even the largest of large files are one minute compiles.
> Unreal itself hasn't been non-unity buildable for a very long time.
Unreal builds in non-unity just fine. There was definitely a time period where it _didn't_, but for the last few years it's been much better than that.
- qalmakka 2y ago> the impact is minimal. yes, I must admit it's not the end of the world, but it tends to add an extra layer of gotchas on top of our already crufty legacy codebase (millions of lines of code, >100 devs on 3 different platforms). Which is something I'd rather not have to deal with, honestly. > Or you could only build the files that have changed In my experience the UBT is somewhat inconsistent with that. I've seen multiple times for instance Mac builds being borked on our main branch because a Windows developer pushed code that built absolutely perfectly on their machine. > Unreal builds in non-unity just fine. There was definitely a time period where it _didn't_, but for the last few years it's been much better than that. last time I tried 5.1 refused to build non-unity on Linux. Did they fix it with the version after that?