Skip to content
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

There is a hardcoded logic that builds Development ShaderCompilerWorker #60

Open
sleeptightAnsiC opened this issue Mar 14, 2024 · 1 comment

Comments

@sleeptightAnsiC
Copy link
Contributor

sleeptightAnsiC commented Mar 14, 2024

Hey @adamrehn ,

When invoking Editor build process, the following logic will always run inside of buildDescriptor() call:

# If we're using a source build of the Engine then make sure ShaderCompileWorker is built before building project Editor modules
if noTools == False and self.isInstalledBuild() == False and self.isProject(descriptor) and target == 'Editor':
Utility.printStderr('Ensuring ShaderCompileWorker is built before building project Editor modules...')
self.buildTarget('ShaderCompileWorker', 'Development', [], suppressOutput)

As I understand, this was requested by #14 and added with 259d03c However, I have a feeling the change should be reverted. Said logic wastes few seconds for invoking additional build. ue4 build isn't meant to bootstap the Engine and building the ShaderCompilerWorker wouldn't solve said issue anyway as Unreal needs more modules to function properly such as CrashReportClient, UnrealFrontend, UnrealLightmass, etc

User is expected to bootstrap Unreal before using ue4 build. If we want to suport bootstraping from ue4cli we should probably make a custom command.

Also, looking through #14 it seems that this case was a problem with OP's environment setup as he was using a custom Engine source. This wasn't a bug with ue4cli and I doubt anyone else would encounter it. Though I might be mistaken.

Cheers!

@sleeptightAnsiC
Copy link
Contributor Author

sleeptightAnsiC commented May 10, 2024

So, after thinking about this for a bit longer there are three solutions:

  1. Remove this code entirerly, since it doesn't build all required tools anyway. (super quick and safe)
  2. Extend this code with all required tools: CrashReportClient-LShipping CrashReportClientEditor-Shipping ShaderCompileWorker UnrealLightmass EpicWebHelper-Shipping. This will still require user to provide UE dependencies on its own but Engine will compile in all cases. (will require a little bit of code and testing but will prevent issues similar to #14)
  3. Go even further than 2. and add entirely new option - ue4 bootstrap - make sure that all dependencies are resolved and UE compiles successfully (probably something for ue4cli successor)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant