(Note that I’m an UE noob, so any of what follows might be nonsense.)
Is there any way to use the DirectoryWatcher module in no-editor development builds?
Apparently DirectoryWatcher gets built as an editor module –
even though its sources are under Source/Developer (as opposed to Source/Editor),
in Intermediate there’s no UE4/Developer/DirectoryWatcher folder, only UE4Editor/Developer/DirectoryWatcher.
This leads to file-not-found compile errors if I try to add “DirectoryWatcher” to PublicDependencyModuleNames in my project’s Build.cs.
So, my questions are:
- If DirWatcher sources are under Developer (not Editor), then why does it get built only into UE4Editor/Development (not UE4/Development)? Is this intentional, or more like a bug?
- Am I right to think that this is controlled by Engine/Source/Runtime/Core/Core.Build.cs? In there, DirectoryWatcher is added as a module only if
Target.bBuildEditor == true
. - If I changed that (eg.
if (Target.bBuildEditor == true)
=>if (Target.Configuration != UnrealTargetConfiguration.Shipping)
), and recompiled the engine from source, would that turn DirectoryWatcher into a module that can be used in no-editor development builds? - Is there any way to do something similar without having to rebuild the engine from source? (Ideally also without copy-pasting the DirectoryWatcher source into a new plugin.)
- In general, what’s the exact relationship between the folders under Engine/Source vs the folders in Engine/Intermediate/Build/? In the former we have Developer, Editor, Runtime; in the latter we have UE4/Development, UE4/Shipping, UE4Editor/Development. Are there even any well-defined relationships, or is it just the Build.cs files controlling what goes where?