ue4 build not building plugin in 5.4+
ue4 build or ue4 build Development does not build anything when building a plugin in a 5.4 (or newer) project. In 5.3 and older it works as expected.
$ ue4 version
Using user-specified engine root: /home/ue4/UnrealEngine
5.4.4
$ ue4 build Development
Using user-specified engine root: /home/ue4/UnrealEngine
Setting up bundled DotNet SDK
Running command : dotnet Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.dll UnrealEditor Linux Development -plugin=/builds/acre/unreal/acre-unreal-plugin/ACREUnreal.uplugin
Log file: /home/ue4/.config/Epic/UnrealBuildTool/Log.txt
Target is up to date
ue4 build DebugGame builds it just fine.
ue4 package also seems to function correctly.
RunMono.sh and RunXMono.sh don't exist in UnrealEngine/Engine/Build/BatchFiles/Linux/ from 5.4 onwards. The following ue4cli code is expecting them.
https://github.com/adamrehn/ue4cli/blob/fed71c1af4cffe3fed9358b08430068ad9454b77/ue4cli/UnrealManagerUnix.py#L29-L39
I haven't touched UE for quite some time but the last time I checked Epic became more vocal about Ushell (which is very similar to ue4cli and should ship with UE git master branch) https://dev.epicgames.com/documentation/en-us/unreal-engine/how-to-use-ushell-for-unreal-engine
Although, I know it may not be very helpful for resolving this issue, I would suggest giving it a try.
The author of ue4cli rarely responds on this repo these days.
RunMono.sh and RunXMono.sh don't exist in UnrealEngine/Engine/Build/BatchFiles/Linux/ from 5.4 onwards. The following ue4cli code is expecting them.
Seems like this is the UE commit that removed those scripts: https://github.com/EpicGames/UnrealEngine/commit/3ebc0e1bcf414883b229d6939bd488951eea2f81
I guess, now we should simply run this: [UnrealEngine]/Engine/Build/BatchFiles/RunDotnet.sh
I don't have a working UE installation so cannot test this at the moment.
I guess, now we should simply run this:
[UnrealEngine]/Engine/Build/BatchFiles/RunDotnet.shI don't have a working UE installation so cannot test this at the moment.
./RunDotnet.sh /home/ue4/UnrealEngine/Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.dll UnrealEditor Linux Development -plugin=/acre-unreal-plugin/ACREUnreal.uplugin
Sadly this has the same result, but running the same thing with GameDebug instead of Development again works.
./Build.sh UnrealEditor Linux Development -plugin=/acre-unreal-plugin/ACREUnreal.uplugin
Is actually what ue4cli runs when running ue4 build, not RunXBuild.sh
So this seems something internally in UE 5.4+ that is causing it.
I haven't touched UE for quite some time but the last time I checked Epic became more vocal about Ushell (which is very similar to ue4cli and should ship with UE git master branch) dev.epicgames.com/documentation/en-us/unreal-engine/how-to-use-ushell-for-unreal-engine
Although, I know it may not be very helpful for resolving this issue, I would suggest giving it a try.
The author of ue4cli rarely responds on this repo these days.
I don't see anything in ushell that allows building or packaging plugins, as it cannot locate the Unreal context.