-
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: Build non-project-specific tools with ue4 build #25
Comments
I've been hesitant to add this functionality to the
With regards to the implementation, I've had to simply call Give it a try and let me know if it works nicely for your use case! |
Just FYI, this command will map to |
So I've just hit another corner-case related to this request. The UE Shooter Game example includes the following:
Using
works, as you'd expect. |
Well, that's just plain flying in the face of established conventions. I wonder if that project breaks any of the Unreal Engine's own tooling with that naming scheme. Is UAT even able to package that project correctly if the |
I didn't try, but I strongly suspect more tooling than just ue4cli will barf on that, when it tries to assemble a target name from the project and target type. Unless the UE4 code-base never assumes that can happen, in which case ue4cli has been caught out on a limb. -_- That said, the 4.26 version of ShooterGame includes a BuildGraph script, so it's possible they are accounting for the names when packaging by explicitly naming targets when necessary; I didn't check that either, since we're not using the 4.26 version yet. |
As a follow-up, I've only tested this on UE 4.26 though (and probably UE 4.24) so perhaps this relies on Either way, perhaps That would have the same behaviour as now, unless people have been relying on the prepending to build, e.g. a ProjectClient.Target.cs which is actually 'Game' type; in that case, UAT would probably have done a wrong or surprising thing. If the target is not a known target type, it should take the target literally, rather than prepending the project name. That would replace
|
At this point, pretty much any solution to this would be "ugly". But I think that |
Right now,
ue4 build
prepends the project name to the provided target.We have special-case code to build
ShaderCompilerWorker
(from #14) but no way to do such compilation in general.In my immediate use-case, I was trying to compile UnrealFrontend.
Taking the command-line that was generated and removing the project name from the target name was sufficient to make this work, e.g.,
That would have worked without
-project
too, I was just looking for the minimal patch. I'm honestly not sure if every Target in a project needs to start with (or equal) the project name, or if that's just convention for the game-variant and editor builds.Possible UX:
I'm not sure what the right command-line option would be in this case.
Another option is
-noproject
(which would also exclude-project
from UBT like we do forShaderCompileWorker
now) but that would block targets in the project that do not include the name of the project as a prefix, I think.It might also be possible to get UE4BuildTool to list the possible targets, and then automatically recognise when a target needs the Project prefix added, in which case
-noproject
is a better option.Edit: I was looking at TargetDescriptor.cs, and the way this tool currently takes 'Game', 'Editor', 'Client', 'Server' is actually something we could pass verbatim to
-TargetType=
, and then the flag for this feature request would be-explicittarget
to indicate to pass the given name to-Target
, i.e.-Target
and-TargetType
were introduced in UE4.20 though, replacing the existing code which generally concatenated the project name and the target name. So they might not be feasible for ue4cli, depending on how far back it needs to support UE4.The text was updated successfully, but these errors were encountered: