/// Adds shader source code to the specified project protected void AddEngineShaderSource(ProjectFile EngineProject) { // Setup a project file entry for this module's project. Remember, some projects may host multiple modules! var ShadersDirectory = Path.Combine(EngineRelativePath, "Shaders"); var DirectoriesToSearch = new List<string>(); DirectoriesToSearch.Add(ShadersDirectory); var SubdirectoryNamesToExclude = new List<string>(); { // Don't include binary shaders in the project file. SubdirectoryNamesToExclude.Add("Binaries"); // We never want shader intermediate files in our project file SubdirectoryNamesToExclude.Add("PDBDump"); SubdirectoryNamesToExclude.Add("WorkingDirectory"); } EngineProject.AddFilesToProject(SourceFileSearch.FindFiles( DirectoriesToSearch: DirectoriesToSearch, ExcludeNoRedistFiles: bExcludeNoRedistFiles, SubdirectoryNamesToExclude: SubdirectoryNamesToExclude), EngineRelativePath); }
/// Adds engine documentation to the specified project protected void AddEngineDocumentation(ProjectFile EngineProject) { // NOTE: The project folder added here will actually be collapsed away later if not needed var DocumentationProjectDirectory = Path.Combine(EngineRelativePath, "Documentation"); var DocumentationSourceDirectory = Path.Combine(EngineRelativePath, "Documentation", "Source"); DirectoryInfo DirInfo = new DirectoryInfo(DocumentationProjectDirectory); if (DirInfo.Exists && Directory.Exists(DocumentationSourceDirectory)) { Log.TraceVerbose("Adding documentation files..."); var DirectoriesToSearch = new List<string>(); DirectoriesToSearch.Add(DocumentationSourceDirectory); var SubdirectoryNamesToExclude = new List<string>(); { // We never want any of the images or attachment files included in our generated project SubdirectoryNamesToExclude.Add("Images"); SubdirectoryNamesToExclude.Add("Attachments"); // The API directory is huge, so don't include any of it SubdirectoryNamesToExclude.Add("API"); // Omit Javascript source because it just confuses the Visual Studio IDE SubdirectoryNamesToExclude.Add("Javascript"); } var DocumentationFiles = SourceFileSearch.FindFiles( DirectoriesToSearch: DirectoriesToSearch, ExcludeNoRedistFiles: bExcludeNoRedistFiles, SubdirectoryNamesToExclude: SubdirectoryNamesToExclude); // Filter out non-English documentation files if we were configured to do so if (!bAllDocumentationLanguages) { var FilteredDocumentationFiles = new List<string>(); foreach (var DocumentationFile in DocumentationFiles) { bool bPassesFilter = true; if (DocumentationFile.EndsWith(".udn", StringComparison.InvariantCultureIgnoreCase)) { var LanguageSuffix = Path.GetExtension(Path.GetFileNameWithoutExtension(DocumentationFile)); if (!String.IsNullOrEmpty(LanguageSuffix) && !LanguageSuffix.Equals(".int", StringComparison.InvariantCultureIgnoreCase)) { bPassesFilter = false; } } if (bPassesFilter) { FilteredDocumentationFiles.Add(DocumentationFile); } } DocumentationFiles = FilteredDocumentationFiles; } EngineProject.AddFilesToProject(DocumentationFiles, EngineRelativePath); } else { Log.TraceVerbose("Skipping documentation project... directory not found"); } }
/// Adds UnrealHeaderTool config files to the specified project private void AddUnrealHeaderToolConfigFiles(ProjectFile EngineProject) { var UHTConfigDirectory = Path.Combine(EngineRelativePath, "Programs", "UnrealHeaderTool", "Config"); if (Directory.Exists(UHTConfigDirectory)) { var DirectoriesToSearch = new List<string>(); DirectoriesToSearch.Add(UHTConfigDirectory); EngineProject.AddFilesToProject(SourceFileSearch.FindFiles(DirectoriesToSearch, ExcludeNoRedistFiles: bExcludeNoRedistFiles), EngineRelativePath); } }
/// Adds engine build infrastructure files to the specified project protected void AddEngineBuildFiles(ProjectFile EngineProject) { var BuildDirectory = Path.Combine(EngineRelativePath, "Build"); var DirectoriesToSearch = new List<string>(); DirectoriesToSearch.Add(BuildDirectory); var SubdirectoryNamesToExclude = new List<string>(); { // Nothing to exclude, yet! // SubdirectoryNamesToExclude.Add( "DirectoryName" ); } EngineProject.AddFilesToProject(SourceFileSearch.FindFiles( DirectoriesToSearch: DirectoriesToSearch, ExcludeNoRedistFiles: bExcludeNoRedistFiles, SubdirectoryNamesToExclude: SubdirectoryNamesToExclude), EngineRelativePath); }
/// Adds all engine template text files to the specified project private void AddEngineTemplateFiles(ProjectFile EngineProject) { var EngineTemplateDirectory = Path.Combine(EngineRelativePath, "Content", "Editor", "Templates"); if (Directory.Exists(EngineTemplateDirectory)) { var DirectoriesToSearch = new List<string>(); DirectoriesToSearch.Add(EngineTemplateDirectory); EngineProject.AddFilesToProject(SourceFileSearch.FindFiles(DirectoriesToSearch, ExcludeNoRedistFiles: bExcludeNoRedistFiles), EngineRelativePath); } }