Ejemplo n.º 1
0
		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;
		}
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        /// <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;
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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;
        }
Ejemplo n.º 7
0
        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;
        }
Ejemplo n.º 8
0
        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());
            }
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        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;
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        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;
        }
Ejemplo n.º 13
0
        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);
        }