75 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			75 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						||
| 
								 | 
							
								using System.IO;
							 | 
						||
| 
								 | 
							
								using System.Linq;
							 | 
						||
| 
								 | 
							
								using EpicGames.Core;
							 | 
						||
| 
								 | 
							
								using EpicGames.UHT.Types;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace UnrealSharpScriptGenerator.Utilities;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								public static class PackageUtilities
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    public const string SkipGlueGenerationDefine = "SkipGlueGeneration";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static string GetShortName(this UhtPackage package)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        #if UE_5_5_OR_LATER
							 | 
						||
| 
								 | 
							
								        return package.Module.ShortName;
							 | 
						||
| 
								 | 
							
								        #else
							 | 
						||
| 
								 | 
							
								        return package.ShortName;
							 | 
						||
| 
								 | 
							
								        #endif
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static bool IsPartOfEngine(this UhtPackage package)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        bool isPartOfEngine = false;
							 | 
						||
| 
								 | 
							
								        #if UE_5_5_OR_LATER
							 | 
						||
| 
								 | 
							
								        isPartOfEngine = package.Module.IsPartOfEngine;
							 | 
						||
| 
								 | 
							
								        #else
							 | 
						||
| 
								 | 
							
								        isPartOfEngine = package.IsPartOfEngine;
							 | 
						||
| 
								 | 
							
								        #endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return isPartOfEngine || package.IsForcedAsEngineGlue();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static bool IsPlugin(this UhtPackage package)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        #if UE_5_5_OR_LATER
							 | 
						||
| 
								 | 
							
								        return package.Module.IsPlugin;
							 | 
						||
| 
								 | 
							
								        #else
							 | 
						||
| 
								 | 
							
								        return package.IsPlugin;
							 | 
						||
| 
								 | 
							
								        #endif
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static bool IsForcedAsEngineGlue(this UhtPackage package)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        bool hasDefine = package.GetModule().TryGetDefine("ForceAsEngineGlue", out int treatedAsEngineGlue);
							 | 
						||
| 
								 | 
							
								        return hasDefine && treatedAsEngineGlue != 0;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static UHTManifest.Module GetModule(this UhtPackage package)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        #if UE_5_5_OR_LATER
							 | 
						||
| 
								 | 
							
								        return package.Module.Module;
							 | 
						||
| 
								 | 
							
								        #else
							 | 
						||
| 
								 | 
							
								        return package.Module;
							 | 
						||
| 
								 | 
							
								        #endif
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static bool ShouldExport(this UhtPackage package)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        bool foundDefine = package.GetModule().PublicDefines.Contains(SkipGlueGenerationDefine);
							 | 
						||
| 
								 | 
							
								        return !foundDefine;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public static IReadOnlyCollection<UhtHeaderFile> GetHeaderFiles(this UhtPackage package)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        #if UE_5_5_OR_LATER
							 | 
						||
| 
								 | 
							
								        return package.Module.Headers;
							 | 
						||
| 
								 | 
							
								        #else
							 | 
						||
| 
								 | 
							
								        return package.Children
							 | 
						||
| 
								 | 
							
								            .OfType<UhtHeaderFile>()
							 | 
						||
| 
								 | 
							
								            .ToList();
							 | 
						||
| 
								 | 
							
								        #endif
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |