예제 #1
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;
        }
예제 #2
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);
        }
예제 #3
0
        protected virtual STBuildModule InstantiateModule(
            ModuleRules RulesObject,
            string ModuleName,
            STBuildModuleType ModuleType,
            string ModuleDirectory,
            string ApplicationOutputPath,
            IntelliSenseGatherer IntelliSenseGatherer,
            List<FileItem> ModuleSourceFiles,
            bool bBuildSourceFiles)
        {
            switch (RulesObject.Type)
            {
                case ModuleRules.ModuleType.CPlusPlus:
                    return new STBuildModuleCPP(
                            InTarget: this,
                            InName: ModuleName,
                            InType: ModuleType,
                            InModuleDirectory: ModuleDirectory,
                            InOutputDirectory: ApplicationOutputPath,
                            InIsRedistributableOverride: RulesObject.IsRedistributableOverride,
                            InIntelliSenseGatherer: IntelliSenseGatherer,
                            InSourceFiles: ModuleSourceFiles,
                            InPublicSystemIncludePaths: RulesObject.PublicSystemIncludePaths,
                            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,
                            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,
                            bInBuildSourceFiles: bBuildSourceFiles
                        );

                case ModuleRules.ModuleType.CPlusPlusCLR:
                    return new STBuildModuleCPPCLR(
                            InTarget: this,
                            InName: ModuleName,
                            InType: ModuleType,
                            InModuleDirectory: ModuleDirectory,
                            InOutputDirectory: ApplicationOutputPath,
                            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,
                            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,
                            bInBuildSourceFiles: bBuildSourceFiles
                        );

                case ModuleRules.ModuleType.External:
                    return new STBuildExternalModule(
                            InTarget: this,
                            InName: ModuleName,
                            InType: ModuleType,
                            InModuleDirectory: ModuleDirectory,
                            InOutputDirectory: ApplicationOutputPath,
                            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
                        );

                default:
                    return null;
            }
        }
예제 #4
0
		public UEBuildModuleCPP(
			string InName,
			UHTModuleType InType,
			DirectoryReference InModuleDirectory,
			DirectoryReference InGeneratedCodeDirectory,
			IntelliSenseGatherer InIntelliSenseGatherer,
			IEnumerable<FileItem> InSourceFiles,
			ModuleRules InRules,
			bool bInBuildSourceFiles,
			FileReference InRulesFile
			)
			: base(
					InName,
					InType,
					InModuleDirectory,
					InRules,
					InRulesFile
				)
		{
			GeneratedCodeDirectory = InGeneratedCodeDirectory;
			IntelliSenseGatherer = InIntelliSenseGatherer;

			CategorizeSourceFiles(InSourceFiles, SourceFilesFound);
			if (bInBuildSourceFiles)
			{
				SourceFilesToBuild.CopyFrom(SourceFilesFound);
			}

			Definitions = HashSetFromOptionalEnumerableStringParameter(InRules.Definitions);
			foreach (string Def in Definitions)
			{
				Log.TraceVerbose("Compile Env {0}: {1}", Name, Def);
			}
		}
예제 #5
0
		public UEBuildModuleCPPCLR(
			string InName,
			UHTModuleType InType,
			DirectoryReference InModuleDirectory,
			DirectoryReference InGeneratedCodeDirectory,
			IntelliSenseGatherer InIntelliSenseGatherer,
			IEnumerable<FileItem> InSourceFiles,
			ModuleRules InRules,
			bool bInBuildSourceFiles,
			FileReference InRulesFile
			)
			: base(InName, InType, InModuleDirectory, InGeneratedCodeDirectory, InIntelliSenseGatherer,
			InSourceFiles, InRules,
			bInBuildSourceFiles, InRulesFile)
		{
			PrivateAssemblyReferences = HashSetFromOptionalEnumerableStringParameter(InRules.PrivateAssemblyReferences);
		}
예제 #6
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;
        }
예제 #7
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);
        }