/// <summary> /// Scans a project directory, adding tasks for subdirectories /// </summary> /// <param name="ProjectDirectory">The project directory to search</param> static void ScanProjectDirectory(DirectoryItem ProjectDirectory) { DirectoryItem ProjectPluginsDirectory = DirectoryItem.Combine(ProjectDirectory, "Plugins"); Enqueue(() => ScanPluginFolder(ProjectPluginsDirectory)); DirectoryItem ProjectSourceDirectory = DirectoryItem.Combine(ProjectDirectory, "Source"); Enqueue(() => ScanDirectoryTree(ProjectSourceDirectory)); }
/// <summary> /// Scans a plugin parent directory, adding tasks for subdirectories /// </summary> /// <param name="Directory">The directory which may contain plugin directories</param> static void ScanPluginFolder(DirectoryItem Directory) { foreach (DirectoryItem SubDirectory in Directory.EnumerateDirectories()) { if (SubDirectory.EnumerateFiles().Any(x => x.HasExtension(".uplugin"))) { Enqueue(() => ScanDirectoryTree(DirectoryItem.Combine(SubDirectory, "Source"))); } else { Enqueue(() => ScanPluginFolder(SubDirectory)); } } }
/// <summary> /// Scans a project directory, adding tasks for subdirectories /// </summary> /// <param name="ProjectDirectory">The project directory to search</param> static void ScanProjectDirectory(DirectoryItem ProjectDirectory) { foreach (DirectoryReference ExtensionDir in UnrealBuildTool.GetExtensionDirs(UnrealBuildTool.EngineDirectory)) { DirectoryItem BaseDirectory = DirectoryItem.GetItemByDirectoryReference(ExtensionDir); BaseDirectory.CacheDirectories(); DirectoryItem BasePluginsDirectory = DirectoryItem.Combine(ProjectDirectory, "Plugins"); Enqueue(() => ScanPluginFolder(BasePluginsDirectory)); DirectoryItem BaseSourceDirectory = DirectoryItem.Combine(ProjectDirectory, "Source"); Enqueue(() => ScanDirectoryTree(BaseSourceDirectory)); } }
/// <summary> /// Scans the engine directory, adding tasks for subdirectories /// </summary> static void ScanEngineDirectory() { DirectoryItem EngineDirectory = DirectoryItem.GetItemByDirectoryReference(UnrealBuildTool.EngineDirectory); EngineDirectory.CacheDirectories(); DirectoryItem EnginePluginsDirectory = DirectoryItem.Combine(EngineDirectory, "Plugins"); Enqueue(() => ScanPluginFolder(EnginePluginsDirectory)); DirectoryItem EngineRuntimeDirectory = DirectoryItem.GetItemByDirectoryReference(UnrealBuildTool.EngineSourceRuntimeDirectory); Enqueue(() => ScanDirectoryTree(EngineRuntimeDirectory)); DirectoryItem EngineDeveloperDirectory = DirectoryItem.GetItemByDirectoryReference(UnrealBuildTool.EngineSourceDeveloperDirectory); Enqueue(() => ScanDirectoryTree(EngineDeveloperDirectory)); DirectoryItem EngineEditorDirectory = DirectoryItem.GetItemByDirectoryReference(UnrealBuildTool.EngineSourceEditorDirectory); Enqueue(() => ScanDirectoryTree(EngineEditorDirectory)); }
/// <summary> /// Scans the engine directory, adding tasks for subdirectories /// </summary> static void ScanEngineDirectory() { foreach (DirectoryReference ExtensionDir in UnrealBuildTool.GetExtensionDirs(UnrealBuildTool.EngineDirectory)) { DirectoryItem BaseDirectory = DirectoryItem.GetItemByDirectoryReference(ExtensionDir); BaseDirectory.CacheDirectories(); DirectoryItem BasePluginsDirectory = DirectoryItem.Combine(BaseDirectory, "Plugins"); Enqueue(() => ScanPluginFolder(BasePluginsDirectory)); DirectoryItem BaseSourceDirectory = DirectoryItem.Combine(BaseDirectory, "Source"); BaseSourceDirectory.CacheDirectories(); DirectoryItem BaseSourceRuntimeDirectory = DirectoryItem.Combine(BaseSourceDirectory, "Runtime"); Enqueue(() => ScanDirectoryTree(BaseSourceRuntimeDirectory)); DirectoryItem BaseSourceDeveloperDirectory = DirectoryItem.Combine(BaseSourceDirectory, "Developer"); Enqueue(() => ScanDirectoryTree(BaseSourceDeveloperDirectory)); DirectoryItem BaseSourceEditorDirectory = DirectoryItem.Combine(BaseSourceDirectory, "Editor"); Enqueue(() => ScanDirectoryTree(BaseSourceEditorDirectory)); } }