public static UEBuildModuleType GetEngineModuleTypeBasedOnLocation(string ModuleName, UEBuildModuleType ModuleType, string ModuleFileRelativeToEngineDirectory) { if (ModuleFileRelativeToEngineDirectory.IndexOf(UEBuildModule.RuntimeFolder, StringComparison.InvariantCultureIgnoreCase) >= 0) { ModuleType = UEBuildModuleType.Runtime; } else if (ModuleFileRelativeToEngineDirectory.IndexOf(UEBuildModule.DeveloperFolder, StringComparison.InvariantCultureIgnoreCase) >= 0) { ModuleType = UEBuildModuleType.Developer; } else if (ModuleFileRelativeToEngineDirectory.IndexOf(UEBuildModule.EditorFolder, StringComparison.InvariantCultureIgnoreCase) >= 0) { ModuleType = UEBuildModuleType.Editor; } else if (ModuleFileRelativeToEngineDirectory.IndexOf(UEBuildModule.ProgramsFolder, StringComparison.InvariantCultureIgnoreCase) >= 0) { ModuleType = UEBuildModuleType.Program; } return ModuleType; }
/// <summary> /// Generates a UHTModuleInfo for a particular named module under a directory. /// </summary> /// <returns> public static UHTModuleInfo CreateUHTModuleInfo(IEnumerable <string> HeaderFilenames, UEBuildTarget Target, string ModuleName, DirectoryReference ModuleDirectory, UEBuildModuleType ModuleType) { var ClassesFolder = DirectoryReference.Combine(ModuleDirectory, "Classes"); var PublicFolder = DirectoryReference.Combine(ModuleDirectory, "Public"); var BuildPlatform = UEBuildPlatform.GetBuildPlatform(Target.Platform); var AllClassesHeaders = new List <FileItem>(); var PublicUObjectHeaders = new List <FileItem>(); var PrivateUObjectHeaders = new List <FileItem>(); foreach (var Header in HeaderFilenames) { // Check to see if we know anything about this file. If we have up-to-date cached information about whether it has // UObjects or not, we can skip doing a test here. var UObjectHeaderFileItem = FileItem.GetExistingItemByPath(Header); if (CPPEnvironment.DoesFileContainUObjects(UObjectHeaderFileItem.AbsolutePath)) { if (new FileReference(UObjectHeaderFileItem.AbsolutePath).IsUnderDirectory(ClassesFolder)) { AllClassesHeaders.Add(UObjectHeaderFileItem); } else if (new FileReference(UObjectHeaderFileItem.AbsolutePath).IsUnderDirectory(PublicFolder)) { PublicUObjectHeaders.Add(UObjectHeaderFileItem); } else { PrivateUObjectHeaders.Add(UObjectHeaderFileItem); } } } var Result = new UHTModuleInfo { ModuleName = ModuleName, ModuleDirectory = ModuleDirectory.FullName, ModuleType = ModuleType.ToString(), PublicUObjectClassesHeaders = AllClassesHeaders, PublicUObjectHeaders = PublicUObjectHeaders, PrivateUObjectHeaders = PrivateUObjectHeaders, GeneratedCodeVersion = Target.Rules.GetGeneratedCodeVersion() }; return(Result); }
/// <summary> /// Generates a UHTModuleInfo for a particular named module under a directory. /// </summary> /// <returns> public static UHTModuleInfo CreateUHTModuleInfo(IEnumerable<string> HeaderFilenames, UEBuildTarget Target, string ModuleName, string ModuleDirectory, UEBuildModuleType ModuleType) { var ClassesFolder = Path.Combine(ModuleDirectory, "Classes"); var PublicFolder = Path.Combine(ModuleDirectory, "Public"); var BuildPlatform = UEBuildPlatform.GetBuildPlatform(Target.Platform); var AllClassesHeaders = new List<FileItem>(); var PublicUObjectHeaders = new List<FileItem>(); var PrivateUObjectHeaders = new List<FileItem>(); foreach (var Header in HeaderFilenames) { // Check to see if we know anything about this file. If we have up-to-date cached information about whether it has // UObjects or not, we can skip doing a test here. var UObjectHeaderFileItem = FileItem.GetExistingItemByPath( Header ); if (CPPEnvironment.DoesFileContainUObjects(UObjectHeaderFileItem.AbsolutePath)) { if (UObjectHeaderFileItem.AbsolutePath.StartsWith(ClassesFolder)) { AllClassesHeaders.Add(UObjectHeaderFileItem); } else if (UObjectHeaderFileItem.AbsolutePath.StartsWith(PublicFolder)) { PublicUObjectHeaders.Add(UObjectHeaderFileItem); } else { PrivateUObjectHeaders.Add(UObjectHeaderFileItem); } } } var Result = new UHTModuleInfo { ModuleName = ModuleName, ModuleDirectory = ModuleDirectory, ModuleType = ModuleType.ToString(), PublicUObjectClassesHeaders = AllClassesHeaders, PublicUObjectHeaders = PublicUObjectHeaders, PrivateUObjectHeaders = PrivateUObjectHeaders, GeneratedCodeVersion = Target.Rules.GetGeneratedCodeVersion() }; return Result; }
public UEBuildModule( UEBuildTarget InTarget, string InName, UEBuildModuleType InType, string InModuleDirectory, bool? InIsRedistributableOverride, IEnumerable<string> InPublicDefinitions, IEnumerable<string> InPublicIncludePaths, IEnumerable<string> InPublicSystemIncludePaths, IEnumerable<string> InPublicLibraryPaths, IEnumerable<string> InPublicAdditionalLibraries, IEnumerable<string> InPublicFrameworks, IEnumerable<string> InPublicWeakFrameworks, IEnumerable<UEBuildFramework> InPublicAdditionalFrameworks, IEnumerable<string> InPublicAdditionalShadowFiles, IEnumerable<UEBuildBundleResource> InPublicAdditionalBundleResources, IEnumerable<string> InPublicIncludePathModuleNames, IEnumerable<string> InPublicDependencyModuleNames, IEnumerable<string> InPublicDelayLoadDLLs, IEnumerable<string> InPrivateIncludePaths, IEnumerable<string> InPrivateIncludePathModuleNames, IEnumerable<string> InPrivateDependencyModuleNames, IEnumerable<string> InCircularlyReferencedDependentModules, IEnumerable<string> InDynamicallyLoadedModuleNames, IEnumerable<string> InPlatformSpecificDynamicallyLoadedModuleNames, IEnumerable<RuntimeDependency> InRuntimeDependencies, string InBuildCsFilename ) { Target = InTarget; Name = InName; Type = InType; ModuleDirectory = InModuleDirectory; PublicDefinitions = HashSetFromOptionalEnumerableStringParameter(InPublicDefinitions); PublicIncludePaths = HashSetFromOptionalEnumerableStringParameter(InPublicIncludePaths); PublicSystemIncludePaths = HashSetFromOptionalEnumerableStringParameter(InPublicSystemIncludePaths); PublicLibraryPaths = HashSetFromOptionalEnumerableStringParameter(InPublicLibraryPaths); PublicAdditionalLibraries = HashSetFromOptionalEnumerableStringParameter(InPublicAdditionalLibraries); PublicFrameworks = HashSetFromOptionalEnumerableStringParameter(InPublicFrameworks); PublicWeakFrameworks = HashSetFromOptionalEnumerableStringParameter(InPublicWeakFrameworks); PublicAdditionalFrameworks = InPublicAdditionalFrameworks == null ? new HashSet<UEBuildFramework>() : new HashSet<UEBuildFramework>(InPublicAdditionalFrameworks); PublicAdditionalShadowFiles = HashSetFromOptionalEnumerableStringParameter(InPublicAdditionalShadowFiles); PublicAdditionalBundleResources = InPublicAdditionalBundleResources == null ? new HashSet<UEBuildBundleResource>() : new HashSet<UEBuildBundleResource>(InPublicAdditionalBundleResources); PublicIncludePathModuleNames = HashSetFromOptionalEnumerableStringParameter( InPublicIncludePathModuleNames ); PublicDependencyModuleNames = HashSetFromOptionalEnumerableStringParameter(InPublicDependencyModuleNames); PublicDelayLoadDLLs = HashSetFromOptionalEnumerableStringParameter(InPublicDelayLoadDLLs); PrivateIncludePaths = HashSetFromOptionalEnumerableStringParameter(InPrivateIncludePaths); PrivateIncludePathModuleNames = HashSetFromOptionalEnumerableStringParameter( InPrivateIncludePathModuleNames ); PrivateDependencyModuleNames = HashSetFromOptionalEnumerableStringParameter( InPrivateDependencyModuleNames ); CircularlyReferencedDependentModules = new HashSet<string>( HashSetFromOptionalEnumerableStringParameter( InCircularlyReferencedDependentModules ) ); DynamicallyLoadedModuleNames = HashSetFromOptionalEnumerableStringParameter( InDynamicallyLoadedModuleNames ); PlatformSpecificDynamicallyLoadedModuleNames = HashSetFromOptionalEnumerableStringParameter(InPlatformSpecificDynamicallyLoadedModuleNames); RuntimeDependencies = (InRuntimeDependencies == null)? new List<RuntimeDependency>() : new List<RuntimeDependency>(InRuntimeDependencies); IsRedistributableOverride = InIsRedistributableOverride; Debug.Assert(InBuildCsFilename == null || InBuildCsFilename.EndsWith(".Build.cs", StringComparison.InvariantCultureIgnoreCase)); BuildCsFilenameField = InBuildCsFilename; SetupModuleDistributionLevel(); Target.RegisterModule(this); }
public UEBuildModuleCPPCLR( UEBuildTarget InTarget, string InName, UEBuildModuleType InType, string InModuleDirectory, string InGeneratedCodeDirectory, bool? InIsRedistributableOverride, IntelliSenseGatherer InIntelliSenseGatherer, IEnumerable<FileItem> InSourceFiles, IEnumerable<string> InPublicIncludePaths, IEnumerable<string> InPublicSystemIncludePaths, IEnumerable<string> InDefinitions, IEnumerable<string> InPrivateAssemblyReferences, IEnumerable<string> InPublicIncludePathModuleNames, IEnumerable<string> InPublicDependencyModuleNames, IEnumerable<string> InPublicDelayLoadDLLs, IEnumerable<string> InPublicAdditionalLibraries, IEnumerable<string> InPublicFrameworks, IEnumerable<string> InPublicWeakFrameworks, IEnumerable<UEBuildFramework> InPublicAdditionalFrameworks, IEnumerable<string> InPublicAdditionalShadowFiles, IEnumerable<UEBuildBundleResource> InPublicAdditionalBundleResources, IEnumerable<string> InPrivateIncludePaths, IEnumerable<string> InPrivateIncludePathModuleNames, IEnumerable<string> InPrivateDependencyModuleNames, IEnumerable<string> InCircularlyReferencedDependentModules, IEnumerable<string> InDynamicallyLoadedModuleNames, IEnumerable<string> InPlatformSpecificDynamicallyLoadedModuleNames, IEnumerable<RuntimeDependency> InRuntimeDependencies, ModuleRules.CodeOptimization InOptimizeCode, bool InAllowSharedPCH, string InSharedPCHHeaderFile, bool InUseRTTI, bool InEnableBufferSecurityChecks, bool InFasterWithoutUnity, int InMinFilesUsingPrecompiledHeaderOverride, bool InEnableExceptions, bool InEnableShadowVariableWarnings, bool bInBuildSourceFiles, string InBuildCsFilename, bool bInUseAVX ) : base(InTarget,InName,InType,InModuleDirectory,InGeneratedCodeDirectory,InIsRedistributableOverride,InIntelliSenseGatherer, InSourceFiles,InPublicIncludePaths,InPublicSystemIncludePaths,null,InDefinitions, InPublicIncludePathModuleNames,InPublicDependencyModuleNames,InPublicDelayLoadDLLs,InPublicAdditionalLibraries,InPublicFrameworks,InPublicWeakFrameworks,InPublicAdditionalFrameworks,InPublicAdditionalShadowFiles,InPublicAdditionalBundleResources, InPrivateIncludePaths,InPrivateIncludePathModuleNames,InPrivateDependencyModuleNames, InCircularlyReferencedDependentModules, InDynamicallyLoadedModuleNames, InPlatformSpecificDynamicallyLoadedModuleNames, InRuntimeDependencies, InOptimizeCode, InAllowSharedPCH, InSharedPCHHeaderFile, InUseRTTI, InEnableBufferSecurityChecks, InFasterWithoutUnity, InMinFilesUsingPrecompiledHeaderOverride, true, InEnableExceptions, InEnableShadowVariableWarnings, bInBuildSourceFiles, InBuildCsFilename, bInUseAVX) { PrivateAssemblyReferences = HashSetFromOptionalEnumerableStringParameter(InPrivateAssemblyReferences); }
public UEBuildExternalModule( UEBuildTarget InTarget, UEBuildModuleType InType, string InName, string InModuleDirectory, bool? InIsRedistributableOverride, IEnumerable<string> InPublicDefinitions, IEnumerable<string> InPublicIncludePaths, IEnumerable<string> InPublicSystemIncludePaths, IEnumerable<string> InPublicLibraryPaths, IEnumerable<string> InPublicAdditionalLibraries, IEnumerable<string> InPublicFrameworks, IEnumerable<string> InPublicWeakFrameworks, IEnumerable<UEBuildFramework> InPublicAdditionalFrameworks, IEnumerable<string> InPublicAdditionalShadowFiles, IEnumerable<UEBuildBundleResource> InPublicAdditionalBundleResources, IEnumerable<string> InPublicDependencyModuleNames, IEnumerable<string> InPublicDelayLoadDLLs, // Delay loaded DLLs that should be setup when including this module IEnumerable<RuntimeDependency> InRuntimeDependencies, string InBuildCsFilename ) : base(InTarget: InTarget, InType: InType, InName: InName, InModuleDirectory: InModuleDirectory, InIsRedistributableOverride: InIsRedistributableOverride, InPublicDefinitions: InPublicDefinitions, InPublicIncludePaths: InPublicIncludePaths, InPublicSystemIncludePaths: InPublicSystemIncludePaths, InPublicLibraryPaths: InPublicLibraryPaths, InPublicAdditionalLibraries: InPublicAdditionalLibraries, InPublicFrameworks: InPublicFrameworks, InPublicWeakFrameworks: InPublicWeakFrameworks, InPublicAdditionalFrameworks: InPublicAdditionalFrameworks, InPublicAdditionalShadowFiles: InPublicAdditionalShadowFiles, InPublicAdditionalBundleResources: InPublicAdditionalBundleResources, InPublicIncludePathModuleNames: null, InPublicDependencyModuleNames: InPublicDependencyModuleNames, InPublicDelayLoadDLLs: InPublicDelayLoadDLLs, InPrivateIncludePaths: null, InPrivateIncludePathModuleNames: null, InPrivateDependencyModuleNames: null, InCircularlyReferencedDependentModules: null, InDynamicallyLoadedModuleNames: null, InPlatformSpecificDynamicallyLoadedModuleNames: null, InRuntimeDependencies: InRuntimeDependencies, InBuildCsFilename: InBuildCsFilename) { bIncludedInTarget = true; }
public UEBuildModuleCPP( UEBuildTarget InTarget, string InName, UEBuildModuleType InType, string InModuleDirectory, string InGeneratedCodeDirectory, bool? InIsRedistributableOverride, IntelliSenseGatherer InIntelliSenseGatherer, IEnumerable<FileItem> InSourceFiles, IEnumerable<string> InPublicIncludePaths, IEnumerable<string> InPublicSystemIncludePaths, IEnumerable<string> InPublicLibraryPaths, IEnumerable<string> InDefinitions, IEnumerable<string> InPublicIncludePathModuleNames, IEnumerable<string> InPublicDependencyModuleNames, IEnumerable<string> InPublicDelayLoadDLLs, IEnumerable<string> InPublicAdditionalLibraries, IEnumerable<string> InPublicFrameworks, IEnumerable<string> InPublicWeakFrameworks, IEnumerable<UEBuildFramework> InPublicAdditionalFrameworks, IEnumerable<string> InPublicAdditionalShadowFiles, IEnumerable<UEBuildBundleResource> InPublicAdditionalBundleResources, IEnumerable<string> InPrivateIncludePaths, IEnumerable<string> InPrivateIncludePathModuleNames, IEnumerable<string> InPrivateDependencyModuleNames, IEnumerable<string> InCircularlyReferencedDependentModules, IEnumerable<string> InDynamicallyLoadedModuleNames, IEnumerable<string> InPlatformSpecificDynamicallyLoadedModuleNames, IEnumerable<RuntimeDependency> InRuntimeDependencies, ModuleRules.CodeOptimization InOptimizeCode, bool InAllowSharedPCH, string InSharedPCHHeaderFile, bool InUseRTTI, bool InEnableBufferSecurityChecks, bool InFasterWithoutUnity, int InMinFilesUsingPrecompiledHeaderOverride, bool InBuildLocallyWithSNDBS, bool InEnableExceptions, bool InEnableShadowVariableWarnings, bool bInBuildSourceFiles, string InBuildCsFilename, bool bInUseAVX ) : base(InTarget, InName, InType, InModuleDirectory, InIsRedistributableOverride, InDefinitions, InPublicIncludePaths, InPublicSystemIncludePaths, InPublicLibraryPaths, InPublicAdditionalLibraries, InPublicFrameworks, InPublicWeakFrameworks, InPublicAdditionalFrameworks, InPublicAdditionalShadowFiles, InPublicAdditionalBundleResources, InPublicIncludePathModuleNames, InPublicDependencyModuleNames, InPublicDelayLoadDLLs, InPrivateIncludePaths, InPrivateIncludePathModuleNames, InPrivateDependencyModuleNames, InCircularlyReferencedDependentModules, InDynamicallyLoadedModuleNames, InPlatformSpecificDynamicallyLoadedModuleNames, InRuntimeDependencies, InBuildCsFilename) { GeneratedCodeDirectory = InGeneratedCodeDirectory; IntelliSenseGatherer = InIntelliSenseGatherer; CategorizeSourceFiles(InSourceFiles, SourceFilesFound); if (bInBuildSourceFiles) { SourceFilesToBuild.CopyFrom(SourceFilesFound); } Definitions = HashSetFromOptionalEnumerableStringParameter(InDefinitions); foreach (var Def in Definitions) { Log.TraceVerbose("Compile Env {0}: {1}", Name, Def); } OptimizeCode = InOptimizeCode; bAllowSharedPCH = InAllowSharedPCH; SharedPCHHeaderFile = InSharedPCHHeaderFile; bUseRTTI = InUseRTTI; bUseAVX = bInUseAVX; bEnableBufferSecurityChecks = InEnableBufferSecurityChecks; bFasterWithoutUnity = InFasterWithoutUnity; MinFilesUsingPrecompiledHeaderOverride = InMinFilesUsingPrecompiledHeaderOverride; bBuildLocallyWithSNDBS = InBuildLocallyWithSNDBS; bEnableExceptions = InEnableExceptions; bEnableShadowVariableWarnings = InEnableShadowVariableWarnings; }
protected virtual UEBuildModule InstantiateModule( ModuleRules RulesObject, string ModuleName, UEBuildModuleType ModuleType, string ModuleDirectory, string GeneratedCodeDirectory, IntelliSenseGatherer IntelliSenseGatherer, List<FileItem> ModuleSourceFiles, bool bBuildSourceFiles, string InBuildCsFile) { switch (RulesObject.Type) { case ModuleRules.ModuleType.CPlusPlus: return new UEBuildModuleCPP( InTarget: this, InName: ModuleName, InType: ModuleType, InModuleDirectory: ModuleDirectory, InGeneratedCodeDirectory: GeneratedCodeDirectory, InIsRedistributableOverride: RulesObject.IsRedistributableOverride, InIntelliSenseGatherer: IntelliSenseGatherer, InSourceFiles: ModuleSourceFiles, InPublicSystemIncludePaths: RulesObject.PublicSystemIncludePaths, InPublicLibraryPaths: RulesObject.PublicLibraryPaths, InPublicIncludePaths: RulesObject.PublicIncludePaths, InDefinitions: RulesObject.Definitions, InPublicIncludePathModuleNames: RulesObject.PublicIncludePathModuleNames, InPublicDependencyModuleNames: RulesObject.PublicDependencyModuleNames, InPublicDelayLoadDLLs: RulesObject.PublicDelayLoadDLLs, InPublicAdditionalLibraries: RulesObject.PublicAdditionalLibraries, InPublicFrameworks: RulesObject.PublicFrameworks, InPublicWeakFrameworks: RulesObject.PublicWeakFrameworks, InPublicAdditionalFrameworks: RulesObject.PublicAdditionalFrameworks, InPublicAdditionalShadowFiles: RulesObject.PublicAdditionalShadowFiles, InPublicAdditionalBundleResources: RulesObject.AdditionalBundleResources, InPrivateIncludePaths: RulesObject.PrivateIncludePaths, InPrivateIncludePathModuleNames: RulesObject.PrivateIncludePathModuleNames, InPrivateDependencyModuleNames: RulesObject.PrivateDependencyModuleNames, InCircularlyReferencedDependentModules: RulesObject.CircularlyReferencedDependentModules, InDynamicallyLoadedModuleNames: RulesObject.DynamicallyLoadedModuleNames, InPlatformSpecificDynamicallyLoadedModuleNames: RulesObject.PlatformSpecificDynamicallyLoadedModuleNames, InRuntimeDependencies: RulesObject.RuntimeDependencies, InOptimizeCode: RulesObject.OptimizeCode, InAllowSharedPCH: (RulesObject.PCHUsage == ModuleRules.PCHUsageMode.NoSharedPCHs) ? false : true, InSharedPCHHeaderFile: RulesObject.SharedPCHHeaderFile, InUseRTTI: RulesObject.bUseRTTI, InEnableBufferSecurityChecks: RulesObject.bEnableBufferSecurityChecks, InFasterWithoutUnity: RulesObject.bFasterWithoutUnity, InMinFilesUsingPrecompiledHeaderOverride: RulesObject.MinFilesUsingPrecompiledHeaderOverride, InEnableExceptions: RulesObject.bEnableExceptions, InEnableShadowVariableWarnings: RulesObject.bEnableShadowVariableWarnings, bInBuildSourceFiles: bBuildSourceFiles, InBuildCsFilename: InBuildCsFile ); case ModuleRules.ModuleType.CPlusPlusCLR: return new UEBuildModuleCPPCLR( InTarget: this, InName: ModuleName, InType: ModuleType, InModuleDirectory: ModuleDirectory, InGeneratedCodeDirectory: GeneratedCodeDirectory, InIsRedistributableOverride: RulesObject.IsRedistributableOverride, InIntelliSenseGatherer: IntelliSenseGatherer, InSourceFiles: ModuleSourceFiles, InDefinitions: RulesObject.Definitions, InPublicSystemIncludePaths: RulesObject.PublicSystemIncludePaths, InPublicIncludePaths: RulesObject.PublicIncludePaths, InPublicIncludePathModuleNames: RulesObject.PublicIncludePathModuleNames, InPublicDependencyModuleNames: RulesObject.PublicDependencyModuleNames, InPublicDelayLoadDLLs: RulesObject.PublicDelayLoadDLLs, InPublicAdditionalLibraries: RulesObject.PublicAdditionalLibraries, InPublicFrameworks: RulesObject.PublicFrameworks, InPublicWeakFrameworks: RulesObject.PublicWeakFrameworks, InPublicAdditionalFrameworks: RulesObject.PublicAdditionalFrameworks, InPublicAdditionalShadowFiles: RulesObject.PublicAdditionalShadowFiles, InPublicAdditionalBundleResources: RulesObject.AdditionalBundleResources, InPrivateIncludePaths: RulesObject.PrivateIncludePaths, InPrivateIncludePathModuleNames: RulesObject.PrivateIncludePathModuleNames, InPrivateDependencyModuleNames: RulesObject.PrivateDependencyModuleNames, InPrivateAssemblyReferences: RulesObject.PrivateAssemblyReferences, InCircularlyReferencedDependentModules: RulesObject.CircularlyReferencedDependentModules, InDynamicallyLoadedModuleNames: RulesObject.DynamicallyLoadedModuleNames, InPlatformSpecificDynamicallyLoadedModuleNames: RulesObject.PlatformSpecificDynamicallyLoadedModuleNames, InRuntimeDependencies: RulesObject.RuntimeDependencies, InOptimizeCode: RulesObject.OptimizeCode, InAllowSharedPCH: (RulesObject.PCHUsage == ModuleRules.PCHUsageMode.NoSharedPCHs) ? false : true, InSharedPCHHeaderFile: RulesObject.SharedPCHHeaderFile, InUseRTTI: RulesObject.bUseRTTI, InEnableBufferSecurityChecks: RulesObject.bEnableBufferSecurityChecks, InFasterWithoutUnity: RulesObject.bFasterWithoutUnity, InMinFilesUsingPrecompiledHeaderOverride: RulesObject.MinFilesUsingPrecompiledHeaderOverride, InEnableExceptions: RulesObject.bEnableExceptions, InEnableShadowVariableWarnings: RulesObject.bEnableShadowVariableWarnings, bInBuildSourceFiles : bBuildSourceFiles, InBuildCsFilename: InBuildCsFile ); case ModuleRules.ModuleType.External: return new UEBuildExternalModule( InTarget: this, InName: ModuleName, InType: ModuleType, InModuleDirectory: ModuleDirectory, InIsRedistributableOverride: RulesObject.IsRedistributableOverride, InPublicDefinitions: RulesObject.Definitions, InPublicSystemIncludePaths: RulesObject.PublicSystemIncludePaths, InPublicIncludePaths: RulesObject.PublicIncludePaths, InPublicLibraryPaths: RulesObject.PublicLibraryPaths, InPublicAdditionalLibraries: RulesObject.PublicAdditionalLibraries, InPublicFrameworks: RulesObject.PublicFrameworks, InPublicWeakFrameworks: RulesObject.PublicWeakFrameworks, InPublicAdditionalFrameworks: RulesObject.PublicAdditionalFrameworks, InPublicAdditionalShadowFiles: RulesObject.PublicAdditionalShadowFiles, InPublicAdditionalBundleResources: RulesObject.AdditionalBundleResources, InPublicDependencyModuleNames: RulesObject.PublicDependencyModuleNames, InPublicDelayLoadDLLs: RulesObject.PublicDelayLoadDLLs, InRuntimeDependencies: RulesObject.RuntimeDependencies, InBuildCsFilename: InBuildCsFile ); default: throw new BuildException("Unrecognized module type specified by 'Rules' object {0}", RulesObject.ToString()); } }
public UEBuildModule( UEBuildTarget InTarget, string InName, UEBuildModuleType InType, string InModuleDirectory, string InOutputDirectory, IEnumerable<string> InPublicDefinitions = null, IEnumerable<string> InPublicIncludePaths = null, IEnumerable<string> InPublicSystemIncludePaths = null, IEnumerable<string> InPublicLibraryPaths = null, IEnumerable<string> InPublicAdditionalLibraries = null, IEnumerable<string> InPublicFrameworks = null, IEnumerable<string> InPublicAdditionalFrameworks = null, IEnumerable<string> InPublicAdditionalShadowFiles = null, IEnumerable<string> InPublicIncludePathModuleNames = null, IEnumerable<string> InPublicDependencyModuleNames = null, IEnumerable<string> InPublicDelayLoadDLLs = null, IEnumerable<string> InPrivateIncludePaths = null, IEnumerable<string> InPrivateIncludePathModuleNames = null, IEnumerable<string> InPrivateDependencyModuleNames = null, IEnumerable<string> InCircularlyReferencedDependentModules = null, IEnumerable<string> InDynamicallyLoadedModuleNames = null, IEnumerable<string> InPlatformSpecificDynamicallyLoadedModuleNames = null ) { Target = InTarget; Name = InName; Type = InType; ModuleDirectory = InModuleDirectory; OutputDirectory = InOutputDirectory; PublicDefinitions = ListFromOptionalEnumerableStringParameter(InPublicDefinitions); PublicIncludePaths = ListFromOptionalEnumerableStringParameter(InPublicIncludePaths); PublicSystemIncludePaths = ListFromOptionalEnumerableStringParameter(InPublicSystemIncludePaths); PublicLibraryPaths = ListFromOptionalEnumerableStringParameter(InPublicLibraryPaths); PublicAdditionalLibraries = ListFromOptionalEnumerableStringParameter(InPublicAdditionalLibraries); PublicFrameworks = ListFromOptionalEnumerableStringParameter(InPublicFrameworks); PublicAdditionalFrameworks = ListFromOptionalEnumerableStringParameter(InPublicAdditionalFrameworks); PublicAdditionalShadowFiles = ListFromOptionalEnumerableStringParameter(InPublicAdditionalShadowFiles); PublicIncludePathModuleNames = ListFromOptionalEnumerableStringParameter( InPublicIncludePathModuleNames ); PublicDependencyModuleNames = ListFromOptionalEnumerableStringParameter(InPublicDependencyModuleNames); PublicDelayLoadDLLs = ListFromOptionalEnumerableStringParameter(InPublicDelayLoadDLLs); PrivateIncludePaths = ListFromOptionalEnumerableStringParameter(InPrivateIncludePaths); PrivateIncludePathModuleNames = ListFromOptionalEnumerableStringParameter( InPrivateIncludePathModuleNames ); PrivateDependencyModuleNames = ListFromOptionalEnumerableStringParameter( InPrivateDependencyModuleNames ); CircularlyReferencedDependentModules = new HashSet<string>( ListFromOptionalEnumerableStringParameter( InCircularlyReferencedDependentModules ) ); DynamicallyLoadedModuleNames = ListFromOptionalEnumerableStringParameter( InDynamicallyLoadedModuleNames ); PlatformSpecificDynamicallyLoadedModuleNames = ListFromOptionalEnumerableStringParameter(InPlatformSpecificDynamicallyLoadedModuleNames); Target.RegisterModule(this); }
public UEBuildModuleCPP( UEBuildTarget InTarget, string InName, UEBuildModuleType InType, string InModuleDirectory, string InOutputDirectory, IntelliSenseGatherer InIntelliSenseGatherer, IEnumerable<FileItem> InSourceFiles, IEnumerable<string> InPublicIncludePaths, IEnumerable<string> InPublicSystemIncludePaths, IEnumerable<string> InDefinitions, IEnumerable<string> InPublicIncludePathModuleNames, IEnumerable<string> InPublicDependencyModuleNames, IEnumerable<string> InPublicDelayLoadDLLs, IEnumerable<string> InPublicAdditionalLibraries, IEnumerable<string> InPublicFrameworks, IEnumerable<string> InPublicAdditionalFrameworks, IEnumerable<string> InPrivateIncludePaths, IEnumerable<string> InPrivateIncludePathModuleNames, IEnumerable<string> InPrivateDependencyModuleNames, IEnumerable<string> InCircularlyReferencedDependentModules, IEnumerable<string> InDynamicallyLoadedModuleNames, IEnumerable<string> InPlatformSpecificDynamicallyLoadedModuleNames, ModuleRules.CodeOptimization InOptimizeCode, bool InAllowSharedPCH, string InSharedPCHHeaderFile, bool InUseRTTI, bool InEnableBufferSecurityChecks, bool InFasterWithoutUnity, int InMinFilesUsingPrecompiledHeaderOverride, bool InEnableExceptions, bool InEnableInlining ) : base(InTarget, InName, InType, InModuleDirectory, InOutputDirectory, InDefinitions, InPublicIncludePaths, InPublicSystemIncludePaths, null, InPublicAdditionalLibraries, InPublicFrameworks, InPublicAdditionalFrameworks, null, InPublicIncludePathModuleNames, InPublicDependencyModuleNames, InPublicDelayLoadDLLs, InPrivateIncludePaths, InPrivateIncludePathModuleNames, InPrivateDependencyModuleNames, InCircularlyReferencedDependentModules, InDynamicallyLoadedModuleNames, InPlatformSpecificDynamicallyLoadedModuleNames) { IntelliSenseGatherer = InIntelliSenseGatherer; SourceFiles = new List<FileItem>( InSourceFiles ); Definitions = ListFromOptionalEnumerableStringParameter(InDefinitions); foreach (var Def in Definitions) { Log.TraceVerbose("Compile Env {0}: {1}", Name, Def); } OptimizeCode = InOptimizeCode; bAllowSharedPCH = InAllowSharedPCH; SharedPCHHeaderFile = InSharedPCHHeaderFile; bUseRTTI = InUseRTTI; bEnableBufferSecurityChecks = InEnableBufferSecurityChecks; bFasterWithoutUnity = InFasterWithoutUnity; MinFilesUsingPrecompiledHeaderOverride = InMinFilesUsingPrecompiledHeaderOverride; bEnableExceptions = InEnableExceptions; bEnableInlining = InEnableInlining; }
public UEBuildModuleCPPCLR( UEBuildTarget InTarget, string InName, UEBuildModuleType InType, string InModuleDirectory, string InOutputDirectory, IntelliSenseGatherer InIntelliSenseGatherer, IEnumerable<FileItem> InSourceFiles, IEnumerable<string> InPublicIncludePaths, IEnumerable<string> InPublicSystemIncludePaths, IEnumerable<string> InDefinitions, IEnumerable<string> InPrivateAssemblyReferences, IEnumerable<string> InPublicIncludePathModuleNames, IEnumerable<string> InPublicDependencyModuleNames, IEnumerable<string> InPublicDelayLoadDLLs, IEnumerable<string> InPublicAdditionalLibraries, IEnumerable<string> InPublicFrameworks, IEnumerable<string> InPublicAdditionalFrameworks, IEnumerable<string> InPrivateIncludePaths, IEnumerable<string> InPrivateIncludePathModuleNames, IEnumerable<string> InPrivateDependencyModuleNames, IEnumerable<string> InCircularlyReferencedDependentModules, IEnumerable<string> InDynamicallyLoadedModuleNames, IEnumerable<string> InPlatformSpecificDynamicallyLoadedModuleNames, ModuleRules.CodeOptimization InOptimizeCode, bool InAllowSharedPCH, string InSharedPCHHeaderFile, bool InUseRTTI, bool InEnableBufferSecurityChecks, bool InFasterWithoutUnity, int InMinFilesUsingPrecompiledHeaderOverride, bool InEnableExceptions, bool InEnableInlining ) : base(InTarget,InName,InType,InModuleDirectory,InOutputDirectory,InIntelliSenseGatherer, InSourceFiles,InPublicIncludePaths,InPublicSystemIncludePaths,InDefinitions, InPublicIncludePathModuleNames,InPublicDependencyModuleNames,InPublicDelayLoadDLLs,InPublicAdditionalLibraries,InPublicFrameworks,InPublicAdditionalFrameworks, InPrivateIncludePaths,InPrivateIncludePathModuleNames,InPrivateDependencyModuleNames, InCircularlyReferencedDependentModules, InDynamicallyLoadedModuleNames, InPlatformSpecificDynamicallyLoadedModuleNames, InOptimizeCode, InAllowSharedPCH, InSharedPCHHeaderFile, InUseRTTI, InEnableBufferSecurityChecks, InFasterWithoutUnity, InMinFilesUsingPrecompiledHeaderOverride, InEnableExceptions, InEnableInlining) { PrivateAssemblyReferences = ListFromOptionalEnumerableStringParameter(InPrivateAssemblyReferences); }
public UEBuildExternalModule( UEBuildTarget InTarget, UEBuildModuleType InType, string InName, string InModuleDirectory, string InOutputDirectory, IEnumerable<string> InPublicDefinitions = null, IEnumerable<string> InPublicIncludePaths = null, IEnumerable<string> InPublicSystemIncludePaths = null, IEnumerable<string> InPublicLibraryPaths = null, IEnumerable<string> InPublicAdditionalLibraries = null, IEnumerable<string> InPublicFrameworks = null, IEnumerable<string> InPublicAdditionalFrameworks = null, IEnumerable<string> InPublicAdditionalShadowFiles = null, IEnumerable<string> InPublicDependencyModuleNames = null, IEnumerable<string> InPublicDelayLoadDLLs = null // Delay loaded DLLs that should be setup when including this module ) : base(InTarget: InTarget, InType: InType, InName: InName, InModuleDirectory: InModuleDirectory, InOutputDirectory: InOutputDirectory, InPublicDefinitions: InPublicDefinitions, InPublicIncludePaths: InPublicIncludePaths, InPublicSystemIncludePaths: InPublicSystemIncludePaths, InPublicLibraryPaths: InPublicLibraryPaths, InPublicAdditionalLibraries: InPublicAdditionalLibraries, InPublicFrameworks: InPublicFrameworks, InPublicAdditionalFrameworks: InPublicAdditionalFrameworks, InPublicAdditionalShadowFiles: InPublicAdditionalShadowFiles, InPublicDependencyModuleNames: InPublicDependencyModuleNames, InPublicDelayLoadDLLs: InPublicDelayLoadDLLs) { bIncludedInTarget = true; }
public UEBuildModule( UEBuildTarget InTarget, string InName, UEBuildModuleType InType, string InModuleDirectory, string InOutputDirectory, bool? InIsRedistributableOverride, IEnumerable<string> InPublicDefinitions = null, IEnumerable<string> InPublicIncludePaths = null, IEnumerable<string> InPublicSystemIncludePaths = null, IEnumerable<string> InPublicLibraryPaths = null, IEnumerable<string> InPublicAdditionalLibraries = null, IEnumerable<string> InPublicFrameworks = null, IEnumerable<string> InPublicWeakFrameworks = null, IEnumerable<UEBuildFramework> InPublicAdditionalFrameworks = null, IEnumerable<string> InPublicAdditionalShadowFiles = null, IEnumerable<UEBuildBundleResource> InPublicAdditionalBundleResources = null, IEnumerable<string> InPublicIncludePathModuleNames = null, IEnumerable<string> InPublicDependencyModuleNames = null, IEnumerable<string> InPublicDelayLoadDLLs = null, IEnumerable<string> InPrivateIncludePaths = null, IEnumerable<string> InPrivateIncludePathModuleNames = null, IEnumerable<string> InPrivateDependencyModuleNames = null, IEnumerable<string> InCircularlyReferencedDependentModules = null, IEnumerable<string> InDynamicallyLoadedModuleNames = null, IEnumerable<string> InPlatformSpecificDynamicallyLoadedModuleNames = null ) { Target = InTarget; Name = InName; Type = InType; ModuleDirectory = InModuleDirectory; OutputDirectory = InOutputDirectory; PublicDefinitions = HashSetFromOptionalEnumerableStringParameter(InPublicDefinitions); PublicIncludePaths = HashSetFromOptionalEnumerableStringParameter(InPublicIncludePaths); PublicSystemIncludePaths = HashSetFromOptionalEnumerableStringParameter(InPublicSystemIncludePaths); PublicLibraryPaths = HashSetFromOptionalEnumerableStringParameter(InPublicLibraryPaths); PublicAdditionalLibraries = HashSetFromOptionalEnumerableStringParameter(InPublicAdditionalLibraries); PublicFrameworks = HashSetFromOptionalEnumerableStringParameter(InPublicFrameworks); PublicWeakFrameworks = HashSetFromOptionalEnumerableStringParameter(InPublicWeakFrameworks); PublicAdditionalFrameworks = InPublicAdditionalFrameworks == null ? new HashSet<UEBuildFramework>() : new HashSet<UEBuildFramework>(InPublicAdditionalFrameworks); PublicAdditionalShadowFiles = HashSetFromOptionalEnumerableStringParameter(InPublicAdditionalShadowFiles); PublicAdditionalBundleResources = InPublicAdditionalBundleResources == null ? new HashSet<UEBuildBundleResource>() : new HashSet<UEBuildBundleResource>(InPublicAdditionalBundleResources); PublicIncludePathModuleNames = HashSetFromOptionalEnumerableStringParameter( InPublicIncludePathModuleNames ); PublicDependencyModuleNames = HashSetFromOptionalEnumerableStringParameter(InPublicDependencyModuleNames); PublicDelayLoadDLLs = HashSetFromOptionalEnumerableStringParameter(InPublicDelayLoadDLLs); PrivateIncludePaths = HashSetFromOptionalEnumerableStringParameter(InPrivateIncludePaths); PrivateIncludePathModuleNames = HashSetFromOptionalEnumerableStringParameter( InPrivateIncludePathModuleNames ); PrivateDependencyModuleNames = HashSetFromOptionalEnumerableStringParameter( InPrivateDependencyModuleNames ); CircularlyReferencedDependentModules = new HashSet<string>( HashSetFromOptionalEnumerableStringParameter( InCircularlyReferencedDependentModules ) ); DynamicallyLoadedModuleNames = HashSetFromOptionalEnumerableStringParameter( InDynamicallyLoadedModuleNames ); PlatformSpecificDynamicallyLoadedModuleNames = HashSetFromOptionalEnumerableStringParameter(InPlatformSpecificDynamicallyLoadedModuleNames); IsRedistributableOverride = InIsRedistributableOverride; Target.RegisterModule(this); }