-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature Request: detecting the engine root honours the .uproject's EngineAssociation #20
Comments
This would certainly be a useful feature to have, but I'm not entirely confident that it would be possible to achieve feature parity across Windows, macOS and Linux. I'll have to have a look into the logic in UnrealVersionSelector and see how viable this is for non-Windows platforms. |
I know this is a somewhat stale issue (and I see you are drowning in work Adam), but some code that could be used for windows builds is something along the lines of:
in This should also improve finding UE roots when installed elsewhere than to C:/Program Files/, since the regkey isn't connected to paths. |
My understanding of the issue was for non-Windows platforms. It's possible Linux doesn't even have the concept of an Installed Build registry because there's no EGS or Binary distribution. And on Mac OS, presumably that info is somewhere inside the installer's library/config, since I don't think there's anything like 'The Windows Registry' on Mac OS? |
It has: |
That's something that shouldn't be hard to implement but there are few separate problems here:
|
At least for 2, my feeling is that I'd prefer However, inside a container, e.g., ue4-docker, I expect there's only only engine version installed, and selection of the container is implicitly I also used I disagree on 3, simply because the trivial case for non-container usage of ue4cli should match the trivial case of "Right click on the ue4project file", which honours with I do like the idea of being able to override the engine for individual ue4cli commands though as a global flag. I like it more when you can just pass in a version, not a full path. Honestly, that'd probably have removed the use of This becomes even more useful if we duplicate the logic that finds a project-adjacent Anyway, my underlying principle here is that ue4cli should feel like a native CLI interface that works like the other tools provided in the UE4 editor GUI or otherwise, consuming the same configuration and state etc. I raised this issue because I got caught-out in a place (the one place?) where it doesn't do that. |
Yea, that makes sense @TBBle , I'm just thinking how to implement it from the code side. Current implementation searches for common installation directories, it isn't aware of This is totally doable. It will require some code changes but in my opinion it would be a great feature! Anyway, I'll propose a fix after the response on #58 , since it would touch the same code. |
I would guess that this wasn't done earlier because It was and is a feature request, requiring new code. |
I've just accidentally failed to cause a rebuild when I would have expected to need one, because I switched my .uproject's
EngineAssociation
from my local git checkout (UUID) to a installer packaged-build ("4.24"), and then did aue4 build
without thinking about it.This is because setroot, as documented, is the authority on what UE4 installation to use for ue4cli.
I suspect this would have caused issues later if I hadn't noticed it, because compilation triggered in the editor or a generated project would have honoured the .uproject file's
EngineAssociation
.I'd much prefer to not set the engineroot, and have my .u4project file parsed to get the correct root, rather than the current
_detectEngineRoot
behaviour of "latest installed version in the default install directory".I know on Windows this should all be feasible via the registry, as UnrealVersionSelector must be doing that, but I don't know how it works on other platforms.
It would also be nice if in-tree Engine (i.e. next to the project) projects would work correctly out-of-the-box.
I understand that the logic in UBT will ignore an
EngineAssociation
value in a .uproject if the Engine directory is sitting next to the project, but haven't tested it myself, I just saw it mentioned on the Unreal forums once when talking about getting the Server binaries into the Installer Packaged Builds.The text was updated successfully, but these errors were encountered: