public XAudio2(ReadOnlyTargetRules Target) : base(Target)
    {
        PrivateIncludePathModuleNames.Add("TargetPlatform");

        PrivateDependencyModuleNames.AddRange(
            new string[] {
            "Core",
            "CoreUObject",
            "Engine",
        }
            );

        if (Target.Platform == UnrealTargetPlatform.Win64 || Target.Platform == UnrealTargetPlatform.Win32)
        {
            // VS2015 updated some of the CRT definitions but not all of the Windows SDK has been updated to match.
            // Microsoft provides this shim library to enable building with VS2015 until they fix everything up.
            //@todo: remove when no longer neeeded (no other code changes should be necessary).
            if (Target.WindowsPlatform.bNeedsLegacyStdioDefinitionsLib)
            {
                PublicAdditionalLibraries.Add("legacy_stdio_definitions.lib");
            }
        }
        else if (Target.Platform == UnrealTargetPlatform.XboxOne)
        {
            PrivateDependencyModuleNames.Add("XMA2");
        }

        AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                     "DX11Audio",
                                                     "UEOgg",
                                                     "Vorbis",
                                                     "VorbisFile"
                                                     );

        PublicDefinitions.Add("WITH_OGGVORBIS=1");
    }
    public ShaderFormatOpenGL(TargetInfo Target)
    {
        PrivateIncludePathModuleNames.Add("TargetPlatform");
        PrivateIncludePathModuleNames.Add("OpenGLDrv");

        PrivateDependencyModuleNames.AddRange(
            new string[] {
            "Core",
            "ShaderCore",
            "ShaderCompilerCommon",
            "ShaderPreprocessor"
        }
            );

        AddThirdPartyPrivateStaticDependencies(Target,
                                               "OpenGL",
                                               "HLSLCC"
                                               );

        if (Target.Platform == UnrealTargetPlatform.Linux)
        {
            AddThirdPartyPrivateStaticDependencies(Target, "SDL2");
        }
    }
	public NetworkFile(ReadOnlyTargetRules Target) : base(Target)
	{
		PrivateIncludePathModuleNames.Add("DerivedDataCache");

		PrivateDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Sockets" });
        PublicIncludePaths.Add("Runtime/CoreUObject/Public/Interfaces");
		PublicIncludePaths.Add("Runtime/CoreUObject/Public/UObject");
		PublicIncludePaths.Add("Runtime/CoreUObject/Public");

		if (!UEBuildConfiguration.bBuildRequiresCookedData)
		{
			DynamicallyLoadedModuleNames.AddRange(
				new string[]
				{ 
					"DerivedDataCache",
				}
				);
		}

		if (Target.Platform == UnrealTargetPlatform.HTML5)
        { 
			Definitions.Add("ENABLE_HTTP_FOR_NF=1");
			if (Target.Architecture == "-win32")
			{
				PrivateDependencyModuleNames.Add("HTML5Win32");
			}
			else
			{
				PrivateDependencyModuleNames.Add("HTML5JS");
			}
		}
		else
		{
			Definitions.Add("ENABLE_HTTP_FOR_NF=0");
		}
	}
Beispiel #4
0
    public ALAudio(ReadOnlyTargetRules Target) : base(Target)
    {
        PrivateIncludePathModuleNames.Add("TargetPlatform");

        PrivateDependencyModuleNames.AddRange(new string[]
        {
            "Core",
            "CoreUObject",
            "Engine",
        });

        AddEngineThirdPartyPrivateStaticDependencies(Target, "OpenAL");
        AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                     "OpenAL",
                                                     "UEOgg",
                                                     "Vorbis",
                                                     "VorbisFile"
                                                     );

        if (Target.Platform != UnrealTargetPlatform.HTML5)
        {
            PrecompileForTargets = PrecompileTargetsType.None;
        }
    }
Beispiel #5
0
        public PIEPreviewDeviceProfileSelector(ReadOnlyTargetRules Target) : base(Target)
        {
            PrivateIncludePathModuleNames.Add("Engine");

            PublicDependencyModuleNames.AddRange(
                new string[]
            {
                "Core",
                "CoreUObject",
            }
                );

            PrivateDependencyModuleNames.AddRange(
                new string[]
            {
                "RHI",
                "Json",
                "JsonUtilities",
                "MaterialShaderQualitySettings",
                "Slate",
                "SlateCore"
            }
                );
        }
    public Spatialization(ReadOnlyTargetRules Target) : base(Target)
    {
        PCHUsage     = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
        OptimizeCode = CodeOptimization.Never;

        PublicDependencyModuleNames.AddRange(
            new string[]
        {
            "Core"
        }
            );


        PrivateDependencyModuleNames.AddRange(
            new string[]
        {
            "CoreUObject",
            "Engine",
            "SignalProcessing"
        }
            );

        PrivateIncludePathModuleNames.Add("TargetPlatform");
    }
    public IOSAudio(ReadOnlyTargetRules Target) : base(Target)
    {
        BinariesSubFolder = "IOS";

        PrivateIncludePathModuleNames.Add("TargetPlatform");

        PublicIncludePaths.AddRange(new string[]
        {
        });

        PrivateDependencyModuleNames.AddRange(new string[]
        {
            "Core",
            "CoreUObject",
            "Engine",
        });

        PublicFrameworks.AddRange(new string[]
        {
            "AudioToolbox",
            "CoreAudio",
            "AVFoundation"
        });
    }
Beispiel #8
0
    public Android_PVRTCTargetPlatform(ReadOnlyTargetRules Target) : base(Target)
    {
        BinariesSubFolder = "Android";

        PrivateDependencyModuleNames.AddRange(
            new string[]
        {
            "Core",
            "TargetPlatform",
            "DesktopPlatform",
            "AndroidDeviceDetection",
        }
            );

        PublicIncludePaths.AddRange(
            new string[]
        {
            "Runtime/Core/Public/Android"
        }
            );

        if (Target.bCompileAgainstEngine)
        {
            PrivateDependencyModuleNames.Add("Engine");
            PrivateIncludePathModuleNames.Add("TextureCompressor");                     //@todo android: AndroidTargetPlatform.Build
        }

        PublicDefinitions.Add("WITH_OGGVORBIS=1");

        PrivateIncludePaths.AddRange(
            new string[]
        {
            "Developer/Android/AndroidTargetPlatform/Private",
        }
            );
    }
    public ViewportSnapping(ReadOnlyTargetRules Target) : base(Target)
    {
        PrivateIncludePathModuleNames.Add("UnrealEd");

        PrivateDependencyModuleNames.AddRange(
            new string[] {
            "Core",
            "CoreUObject",
            "Engine",
//              "RenderCore",
//              "RHI",
            "Slate",
            "UnrealEd"
        }
            );

//      DynamicallyLoadedModuleNames.AddRange(
//          new string[] {
//              "MainFrame",
//              "WorkspaceMenuStructure",
//              "PropertyEditor"
//          }
//          );
    }
    public HotReload(ReadOnlyTargetRules Target) : base(Target)
    {
        PublicDependencyModuleNames.AddRange(
            new string[]
        {
            "Core",
            "CoreUObject",
        }
            );

        PrivateDependencyModuleNames.AddRange(
            new string[]
        {
            "Analytics",
            "DirectoryWatcher",
            "DesktopPlatform",
            "Projects"
        }
            );

        if (Target.bCompileAgainstEngine)
        {
            PrivateDependencyModuleNames.AddRange(
                new string[]
            {
                "Engine",
                "UnrealEd",
            }
                );
        }

        if (Target.bWithLiveCoding)
        {
            PrivateIncludePathModuleNames.Add("LiveCoding");
        }
    }
Beispiel #11
0
    public Landscape(ReadOnlyTargetRules Target) : base(Target)
    {
        PrivateIncludePaths.AddRange(
            new string[] {
            "Runtime/Engine/Private",                     // for Engine/Private/Collision/PhysXCollision.h
            "Runtime/Landscape/Private"
        }
            );

        PrivateIncludePathModuleNames.AddRange(
            new string[] {
            "TargetPlatform",
            "DerivedDataCache",
            "Foliage",
        }
            );

        PrivateDependencyModuleNames.AddRange(
            new string[] {
            "Core",
            "CoreUObject",
            "ApplicationCore",
            "Engine",
            "RenderCore",
            "RHI",
            "ShaderCore",
            "Renderer",
            "Foliage",
        }
            );

        SetupModulePhysXAPEXSupport(Target);
        if (Target.bCompilePhysX && Target.bBuildEditor)
        {
            DynamicallyLoadedModuleNames.Add("PhysXCooking");
        }

        if (Target.bBuildDeveloperTools && Target.Type != TargetType.Server)
        {
            PrivateDependencyModuleNames.AddRange(
                new string[] {
                "RawMesh"
            }
                );
        }

        if (Target.bBuildEditor == true)
        {
            // TODO: Remove all landscape editing code from the Landscape module!!!
            PrivateIncludePathModuleNames.Add("LandscapeEditor");

            PrivateDependencyModuleNames.AddRange(
                new string[] {
                "UnrealEd",
                "MaterialUtilities",
                "SlateCore",
                "Slate",
            }
                );

            CircularlyReferencedDependentModules.AddRange(
                new string[] {
                "UnrealEd",
                "MaterialUtilities",
            }
                );
        }
    }
Beispiel #12
0
    public Core(ReadOnlyTargetRules Target) : base(Target)
    {
        PrivatePCHHeaderFile = "Private/CorePrivatePCH.h";

        SharedPCHHeaderFile = "Public/CoreSharedPCH.h";

        PrivateDependencyModuleNames.Add("BuildSettings");

        PublicDependencyModuleNames.Add("TraceLog");
        PublicIncludePaths.Add("Runtime/TraceLog/Public");

        PrivateIncludePaths.AddRange(
            new string[] {
            "Developer/DerivedDataCache/Public",
            "Runtime/SynthBenchmark/Public",
            "Runtime/Core/Private",
            "Runtime/Core/Private/Misc",
            "Runtime/Core/Private/Internationalization",
            "Runtime/Core/Private/Internationalization/Cultures",
            "Runtime/Engine/Public",
        }
            );

        PrivateIncludePathModuleNames.AddRange(
            new string[] {
            "TargetPlatform",
            "DerivedDataCache",
            "InputDevice",
            "Analytics",
            "RHI"
        }
            );

        if (Target.bBuildEditor == true)
        {
            DynamicallyLoadedModuleNames.Add("SourceCodeAccess");

            PrivateIncludePathModuleNames.Add("DirectoryWatcher");
            DynamicallyLoadedModuleNames.Add("DirectoryWatcher");
        }

        if ((Target.Platform == UnrealTargetPlatform.Win64) ||
            (Target.Platform == UnrealTargetPlatform.Win32))
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "zlib");

            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "IntelTBB",
                                                         "IntelVTune"
                                                         );

            if (Target.Platform == UnrealTargetPlatform.Win64 && Target.WindowsPlatform.bUseBundledDbgHelp)
            {
                PublicDelayLoadDLLs.Add("DBGHELP.DLL");
                PrivateDefinitions.Add("USE_BUNDLED_DBGHELP=1");
                RuntimeDependencies.Add("$(EngineDir)/Binaries/ThirdParty/DbgHelp/dbghelp.dll");
            }
            else
            {
                PrivateDefinitions.Add("USE_BUNDLED_DBGHELP=0");
            }
        }
        else if ((Target.Platform == UnrealTargetPlatform.HoloLens))
        {
            PublicIncludePaths.Add("Runtime/Core/Public/HoloLens");
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "zlib");

            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "IntelTBB",
                                                         "XInput"
                                                         );
        }
        else if (Target.Platform == UnrealTargetPlatform.Mac)
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "IntelTBB",
                                                         "zlib",
                                                         "PLCrashReporter",
                                                         "rd_route"
                                                         );
            PublicFrameworks.AddRange(new string[] { "Cocoa", "Carbon", "IOKit", "Security" });

            if (Target.bBuildEditor == true)
            {
                PublicAdditionalLibraries.Add("/System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/Current/MultitouchSupport");
            }
        }
        else if (Target.Platform == UnrealTargetPlatform.IOS || Target.Platform == UnrealTargetPlatform.TVOS)
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "zlib"
                                                         );
            PublicFrameworks.AddRange(new string[] { "UIKit", "Foundation", "AudioToolbox", "AVFoundation", "GameKit", "StoreKit", "CoreVideo", "CoreMedia", "CoreGraphics", "GameController", "SystemConfiguration", "DeviceCheck", "UserNotifications" });
            if (Target.Platform == UnrealTargetPlatform.IOS)
            {
                PublicFrameworks.AddRange(new string[] { "CoreMotion", "AdSupport", "WebKit" });
                AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                             "PLCrashReporter"
                                                             );
            }

            PrivateIncludePathModuleNames.Add("ApplicationCore");

            bool bSupportAdvertising = Target.Platform == UnrealTargetPlatform.IOS;
            if (bSupportAdvertising)
            {
                PublicFrameworks.AddRange(new string[] { "iAD" });
            }

            // export Core symbols for embedded Dlls
            ModuleSymbolVisibility = ModuleRules.SymbolVisibility.VisibileForDll;
        }
        else if (Target.IsInPlatformGroup(UnrealPlatformGroup.Android))
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "cxademangle",
                                                         "zlib"
                                                         );
        }
        else if (Target.IsInPlatformGroup(UnrealPlatformGroup.Unix))
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "zlib",
                                                         "jemalloc"
                                                         );

            // Core uses dlopen()
            PublicSystemLibraries.Add("dl");
        }

        if (Target.bCompileICU == true)
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target, "ICU");
        }
        PublicDefinitions.Add("UE_ENABLE_ICU=" + (Target.bCompileICU ? "1" : "0")); // Enable/disable (=1/=0) ICU usage in the codebase. NOTE: This flag is for use while integrating ICU and will be removed afterward.

        // If we're compiling with the engine, then add Core's engine dependencies
        if (Target.bCompileAgainstEngine == true)
        {
            if (!Target.bBuildRequiresCookedData)
            {
                DynamicallyLoadedModuleNames.AddRange(new string[] { "DerivedDataCache" });
            }
        }


        // On Windows platform, VSPerfExternalProfiler.cpp needs access to "VSPerf.h".  This header is included with Visual Studio, but it's not in a standard include path.
        if (Target.Platform == UnrealTargetPlatform.Win32 || Target.Platform == UnrealTargetPlatform.Win64)
        {
            var VisualStudioVersionNumber = "11.0";
            var SubFolderName             = (Target.Platform == UnrealTargetPlatform.Win64) ? "x64/PerfSDK" : "PerfSDK";

            string PerfIncludeDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), String.Format("Microsoft Visual Studio {0}/Team Tools/Performance Tools/{1}", VisualStudioVersionNumber, SubFolderName));

            if (File.Exists(Path.Combine(PerfIncludeDirectory, "VSPerf.h")))
            {
                PrivateIncludePaths.Add(PerfIncludeDirectory);
                PublicDefinitions.Add("WITH_VS_PERF_PROFILER=1");
            }
            else
            {
                PublicDefinitions.Add("WITH_VS_PERF_PROFILER=0");
            }
        }

        if (Target.Platform == UnrealTargetPlatform.HoloLens)
        {
            PublicDefinitions.Add("WITH_VS_PERF_PROFILER=0");
        }

        WhitelistRestrictedFolders.Add("Private/NoRedist");

        if (Target.Platform == UnrealTargetPlatform.XboxOne ||
            (Target.bWithDirectXMath && (Target.Platform == UnrealTargetPlatform.Win64 || Target.Platform == UnrealTargetPlatform.Win32)))
        {
            PublicDefinitions.Add("WITH_DIRECTXMATH=1");
        }
        else
        {
            PublicDefinitions.Add("WITH_DIRECTXMATH=0");
        }

        // Set a macro to allow FApp::GetBuildTargetType() to detect client targts
        if (Target.Type == TargetRules.TargetType.Client)
        {
            PrivateDefinitions.Add("IS_CLIENT_TARGET=1");
        }
        else
        {
            PrivateDefinitions.Add("IS_CLIENT_TARGET=0");
        }

        // Decide if validating memory allocator (aka MallocStomp) can be used on the current platform.
        // Run-time validation must be enabled through '-stompmalloc' command line argument.

        bool bWithMallocStomp = false;

        if (Target.Configuration != UnrealTargetConfiguration.Shipping)
        {
            if (Target.Platform == UnrealTargetPlatform.Mac ||
                Target.Platform == UnrealTargetPlatform.Linux ||
                Target.Platform == UnrealTargetPlatform.LinuxAArch64 ||
                Target.Platform == UnrealTargetPlatform.Win64)
            // Target.Platform == UnrealTargetPlatform.Win32: // 32-bit windows can technically be supported, but will likely run out of virtual memory space quickly
            // Target.Platform == UnrealTargetPlatform.XboxOne: // XboxOne could be supported, as it's similar enough to Win64
            {
                bWithMallocStomp = true;
            }
        }

        PublicDefinitions.Add("WITH_MALLOC_STOMP=" + (bWithMallocStomp ? "1" : "0"));

        PrivateDefinitions.Add("PLATFORM_COMPILER_OPTIMIZATION_LTCG=" + (Target.bAllowLTCG ? "1" : "0"));
        PrivateDefinitions.Add("PLATFORM_COMPILER_OPTIMIZATION_PG=" + (Target.bPGOOptimize ? "1" : "0"));
        PrivateDefinitions.Add("PLATFORM_COMPILER_OPTIMIZATION_PG_PROFILING=" + (Target.bPGOProfile ? "1" : "0"));
    }
        public AudioMixer(TargetInfo Target)
        {
            OptimizeCode = CodeOptimization.Always;

            //OptimizeCode = CodeOptimization.Never;

            PrivateIncludePathModuleNames.Add("TargetPlatform");

            PrivateIncludePaths.AddRange(
                new string[]
            {
                "Runtime/AudioMixer/Private",
            }
                );

            PublicDependencyModuleNames.AddRange(
                new string[]
            {
                "Core",
                "CoreUObject",
                "Engine",
            }
                );

            PrivateDependencyModuleNames.AddRange(
                new string[]
            {
                "CoreUObject",
            }
                );

            if ((Target.Platform == UnrealTargetPlatform.Win64) ||
                (Target.Platform == UnrealTargetPlatform.Win32))
            {
                AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                             "UEOgg",
                                                             "Vorbis",
                                                             "VorbisFile",
                                                             "libOpus"
                                                             );
            }

            if (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32")
            {
                AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                             "UEOgg",
                                                             "Vorbis",
                                                             "VorbisFile"
                                                             );
            }

            if (Target.Platform == UnrealTargetPlatform.Mac)
            {
                AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                             "UEOgg",
                                                             "Vorbis",
                                                             "libOpus"
                                                             );
                PublicFrameworks.AddRange(new string[] { "AVFoundation", "CoreVideo", "CoreMedia" });
            }

            if (Target.Platform == UnrealTargetPlatform.Android)
            {
                AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                             "UEOgg",
                                                             "Vorbis",
                                                             "VorbisFile"
                                                             );
            }

            if (Target.Platform == UnrealTargetPlatform.Linux)
            {
                AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                             "UEOgg",
                                                             "Vorbis",
                                                             "VorbisFile",
                                                             "libOpus"
                                                             );
            }
        }
    public Engine(ReadOnlyTargetRules Target) : base(Target)
    {
        PrivatePCHHeaderFile = "Private/EnginePrivatePCH.h";

        SharedPCHHeaderFile = "Public/EngineSharedPCH.h";

        PublicIncludePathModuleNames.AddRange(new string[] { "Renderer", "PacketHandler", "NetworkReplayStreaming", "AudioMixer" });

        PrivateIncludePaths.AddRange(
            new string[] {
            "Developer/DerivedDataCache/Public",
            "Runtime/SynthBenchmark/Public",
            "Runtime/Engine/Private",
        }
            );

        PrivateIncludePathModuleNames.AddRange(
            new string[] {
            "TargetPlatform",
            "ImageWrapper",
            "HeadMountedDisplay",
            "MRMesh",
            "Advertising",
            "NetworkReplayStreaming",
            "MovieSceneCapture",
            "AutomationWorker",
            "MovieSceneCapture",
            "DesktopPlatform",
        }
            );

        if (Target.Configuration != UnrealTargetConfiguration.Shipping)
        {
            PrivateIncludePathModuleNames.AddRange(new string[] { "TaskGraph" });
        }

        if (Target.Configuration != UnrealTargetConfiguration.Shipping)
        {
            PrivateIncludePathModuleNames.AddRange(
                new string[] {
                "SlateReflector",
            }
                );

            DynamicallyLoadedModuleNames.AddRange(
                new string[] {
                "SlateReflector",
            }
                );
        }

        PublicDependencyModuleNames.AddRange(
            new string[] {
            "Core",
            "CoreUObject",
            "ApplicationCore",
            "Json",
            "SlateCore",
            "Slate",
            "InputCore",
            "Messaging",
            "MessagingCommon",
            "RenderCore",
            "RHI",
            "ShaderCore",
            "UtilityShaders",
            "AssetRegistry",     // Here until FAssetData is moved to engine
            "EngineMessages",
            "EngineSettings",
            "SynthBenchmark",
            "GameplayTags",
            "AIModule",
            "DatabaseSupport",
            "PacketHandler",
            "HardwareSurvey",
        }
            );

        PrivateDependencyModuleNames.AddRange(
            new string[] {
            "AppFramework",
            "Networking",
            "Sockets",
            "Landscape",
            "UMG",
            "Projects",
            "MaterialShaderQualitySettings",
            "CinematicCamera",
            "Analytics",
            "AnalyticsET"
        }
            );

        if (Target.bUseXGEController &&
            Target.Type == TargetType.Editor &&
            (Target.Platform == UnrealTargetPlatform.Win64 || Target.Platform == UnrealTargetPlatform.Win32))
        {
            PrivateDependencyModuleNames.Add("XGEController");
        }

        if (Target.Configuration != UnrealTargetConfiguration.Shipping)
        {
            PrivateIncludePathModuleNames.Add("Localization");
            DynamicallyLoadedModuleNames.Add("Localization");
        }

        // to prevent "causes WARNING: Non-editor build cannot depend on non-redistributable modules."
        if (Target.Type == TargetType.Editor)
        {
            // for now we depend on this
            PrivateDependencyModuleNames.Add("RawMesh");
        }

        bool bVariadicTemplatesSupported = true;

        if (Target.Platform == UnrealTargetPlatform.XboxOne)
        {
            // Use reflection to allow type not to exist if console code is not present
            System.Type XboxOnePlatformType = System.Type.GetType("UnrealBuildTool.XboxOnePlatform,UnrealBuildTool");
            if (XboxOnePlatformType != null)
            {
                System.Object VersionName = XboxOnePlatformType.GetMethod("GetVisualStudioCompilerVersionName").Invoke(null, null);
                if (VersionName.ToString().Equals("2012"))
                {
                    bVariadicTemplatesSupported = false;
                }
            }

            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "libOpus"
                                                         );
        }

        if (bVariadicTemplatesSupported)
        {
            PrivateIncludePathModuleNames.AddRange(
                new string[] {
                "MessagingRpc",
                "PortalRpc",
                "PortalServices",
            }
                );

            if (Target.Type == TargetType.Editor)
            {
                // these modules require variadic templates
                PrivateDependencyModuleNames.AddRange(
                    new string[] {
                    "MessagingRpc",
                    "PortalRpc",
                    "PortalServices",
                }
                    );
            }
        }

        CircularlyReferencedDependentModules.Add("GameplayTags");
        CircularlyReferencedDependentModules.Add("AIModule");
        CircularlyReferencedDependentModules.Add("Landscape");
        CircularlyReferencedDependentModules.Add("UMG");
        CircularlyReferencedDependentModules.Add("MaterialShaderQualitySettings");
        CircularlyReferencedDependentModules.Add("CinematicCamera");

        // The AnimGraphRuntime module is not needed by Engine proper, but it is loaded in LaunchEngineLoop.cpp,
        // and needs to be listed in an always-included module in order to be compiled into standalone games
        DynamicallyLoadedModuleNames.Add("AnimGraphRuntime");
        // So does Geometry Cache
        DynamicallyLoadedModuleNames.Add("GeometryCache");

        DynamicallyLoadedModuleNames.AddRange(
            new string[]
        {
            "MovieScene",
            "MovieSceneCapture",
            "MovieSceneTracks",
            "HeadMountedDisplay",
            "MRMesh",
            "StreamingPauseRendering",
        }
            );

        if (Target.Type != TargetType.Server)
        {
            PrivateIncludePathModuleNames.AddRange(
                new string[] {
                "SlateNullRenderer",
                "SlateRHIRenderer"
            }
                );

            DynamicallyLoadedModuleNames.AddRange(
                new string[] {
                "SlateNullRenderer",
                "SlateRHIRenderer"
            }
                );
        }

        if (Target.Type == TargetType.Server || Target.Type == TargetType.Editor)
        {
            PrivateDependencyModuleNames.Add("PerfCounters");
        }

        if (Target.bBuildDeveloperTools)
        {
            // Add "BlankModule" so that it gets compiled as an example and will be maintained and tested.  This can be removed
            // at any time if needed.  The module isn't actually loaded by the engine so there is no runtime cost.
            DynamicallyLoadedModuleNames.Add("BlankModule");

            if (Target.Type != TargetType.Server)
            {
                PrivateIncludePathModuleNames.Add("MeshUtilities");
                DynamicallyLoadedModuleNames.Add("MeshUtilities");

                PrivateDependencyModuleNames.AddRange(
                    new string[] {
                    "ImageCore",
                    "RawMesh"
                }
                    );
            }

            if (Target.Configuration != UnrealTargetConfiguration.Shipping && Target.Configuration != UnrealTargetConfiguration.Test && Target.Type != TargetType.Server)
            {
                PrivateDependencyModuleNames.Add("CollisionAnalyzer");
                CircularlyReferencedDependentModules.Add("CollisionAnalyzer");

                PrivateDependencyModuleNames.Add("LogVisualizer");
                CircularlyReferencedDependentModules.Add("LogVisualizer");
            }

            if (Target.Platform == UnrealTargetPlatform.Win64)
            {
                DynamicallyLoadedModuleNames.AddRange(
                    new string[] {
                    "WindowsTargetPlatform",
                    "WindowsNoEditorTargetPlatform",
                    "WindowsServerTargetPlatform",
                    "WindowsClientTargetPlatform",
                    "AllDesktopTargetPlatform",
                    "WindowsPlatformEditor",
                }
                    );
            }
            else if (Target.Platform == UnrealTargetPlatform.Mac)
            {
                DynamicallyLoadedModuleNames.AddRange(
                    new string[] {
                    "MacTargetPlatform",
                    "MacNoEditorTargetPlatform",
                    "MacServerTargetPlatform",
                    "MacClientTargetPlatform",
                    "AllDesktopTargetPlatform",
                    "MacPlatformEditor",
                }
                    );
            }
            else if (Target.Platform == UnrealTargetPlatform.Linux)
            {
                DynamicallyLoadedModuleNames.AddRange(
                    new string[] {
                    "LinuxTargetPlatform",
                    "LinuxNoEditorTargetPlatform",
                    "LinuxServerTargetPlatform",
                    "LinuxClientTargetPlatform",
                    "AllDesktopTargetPlatform",
                    "LinuxPlatformEditor",
                }
                    );
            }
        }

        DynamicallyLoadedModuleNames.AddRange(
            new string[] {
            "NetworkReplayStreaming",
            "NullNetworkReplayStreaming",
            "HttpNetworkReplayStreaming",
            "Advertising"
        }
            );

        if (Target.Type != TargetType.Server)
        {
            DynamicallyLoadedModuleNames.AddRange(
                new string[] {
                "ImageWrapper"
            }
                );
        }

        WhitelistRestrictedFolders.Add("Private/NotForLicensees");

        if (!Target.bBuildRequiresCookedData && Target.bCompileAgainstEngine)
        {
            DynamicallyLoadedModuleNames.AddRange(
                new string[] {
                "DerivedDataCache",
                "TargetPlatform",
                "DesktopPlatform"
            }
                );
        }

        if (Target.bBuildEditor == true)
        {
            PublicDependencyModuleNames.AddRange(
                new string[] {
                "UnrealEd",
                "Kismet"
            }
                ); // @todo api: Only public because of WITH_EDITOR and UNREALED_API

            CircularlyReferencedDependentModules.AddRange(
                new string[] {
                "UnrealEd",
                "Kismet"
            }
                );

            PrivateIncludePathModuleNames.Add("TextureCompressor");
            PrivateIncludePaths.Add("Developer/TextureCompressor/Public");

            PrivateIncludePathModuleNames.Add("HierarchicalLODUtilities");
            DynamicallyLoadedModuleNames.Add("HierarchicalLODUtilities");

            DynamicallyLoadedModuleNames.Add("AnimationModifiers");

            PrivateIncludePathModuleNames.Add("AssetTools");
            DynamicallyLoadedModuleNames.Add("AssetTools");

            PrivateIncludePathModuleNames.Add("PIEPreviewDeviceProfileSelector");
        }

        SetupModulePhysXAPEXSupport(Target);
        if (Target.bCompilePhysX && (Target.bBuildEditor || Target.bCompileAPEX))
        {
            DynamicallyLoadedModuleNames.Add("PhysXCooking");
        }

        // Engine public headers need to know about some types (enums etc.)
        PublicIncludePathModuleNames.Add("ClothingSystemRuntimeInterface");
        PublicDependencyModuleNames.Add("ClothingSystemRuntimeInterface");

        if (Target.bBuildEditor)
        {
            PrivateDependencyModuleNames.Add("ClothingSystemEditorInterface");
            PrivateIncludePathModuleNames.Add("ClothingSystemEditorInterface");
        }

        if ((Target.Platform == UnrealTargetPlatform.Win64) ||
            (Target.Platform == UnrealTargetPlatform.Win32))
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "UEOgg",
                                                         "Vorbis",
                                                         "VorbisFile",
                                                         "libOpus"
                                                         );

            // Head Mounted Display support
//            PrivateIncludePathModuleNames.AddRange(new string[] { "HeadMountedDisplay" });
//            DynamicallyLoadedModuleNames.AddRange(new string[] { "HeadMountedDisplay" });
        }

        if (Target.Platform == UnrealTargetPlatform.HTML5)
        {
            // TODO test this for HTML5 !
            //AddEngineThirdPartyPrivateStaticDependencies(Target,
            //		"UEOgg",
            //		"Vorbis",
            //		"VorbisFile"
            //		);
            PublicDependencyModuleNames.Add("HTML5JS");
        }

        if (Target.Platform == UnrealTargetPlatform.Mac)
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "UEOgg",
                                                         "Vorbis",
                                                         "libOpus"
                                                         );
            PublicFrameworks.AddRange(new string[] { "AVFoundation", "CoreVideo", "CoreMedia" });
        }

        if (Target.Platform == UnrealTargetPlatform.Android)
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "UEOgg",
                                                         "Vorbis",
                                                         "VorbisFile"
                                                         );
        }

        if (Target.Platform == UnrealTargetPlatform.Linux)
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "UEOgg",
                                                         "Vorbis",
                                                         "VorbisFile",
                                                         "libOpus"
                                                         );
        }

        if (Target.bCompileRecast)
        {
            PrivateDependencyModuleNames.Add("Navmesh");
            PublicDefinitions.Add("WITH_RECAST=1");
        }
        else
        {
            // Because we test WITH_RECAST in public Engine header files, we need to make sure that modules
            // that import this also have this definition set appropriately.  Recast is a private dependency
            // module, so it's definitions won't propagate to modules that import Engine.
            PublicDefinitions.Add("WITH_RECAST=0");
        }

/*
 *              ConfigHierarchy Ini = ConfigCache.ReadHierarchy(ConfigHierarchyType.Engine, System.IO.DirectoryReference.FromFile(Target.ProjectFile), Target.Platform);
 *              bool bLocalVectorFieldOnly = false;
 *              Ini.GetBool("/Script/Engine.RendererSettings", "bGPUParticlesLocalVFOnly", out bLocalVectorFieldOnly);
 *              if (bLocalVectorFieldOnly)
 *              {
 *                      PublicDefinitions.Add("GPUPARTICLE_LOCAL_VF_ONLY=1");
 *              }
 *              else
 *              {
 *                      PublicDefinitions.Add("GPUPARTICLE_LOCAL_VF_ONLY=0");
 *              }
 */

        PublicDefinitions.Add("GPUPARTICLE_LOCAL_VF_ONLY=0");

        // Add a reference to the stats HTML files referenced by UEngine::DumpFPSChartToHTML. Previously staged by CopyBuildToStagingDirectory.
        if (Target.bBuildEditor || Target.Configuration != UnrealTargetConfiguration.Shipping)
        {
            RuntimeDependencies.Add("$(EngineDir)/Content/Stats/...", StagedFileType.UFS);
        }

        // @third party code - BEGIN HairWorks
        AddEngineThirdPartyPrivateStaticDependencies(Target, "HairWorks");
        // @third party code - END HairWorks

        // NVCHANGE_BEGIN: Add VXGI
        if ((Target.Platform == UnrealTargetPlatform.Win64) || (Target.Platform == UnrealTargetPlatform.Win32))
        {
            PublicDependencyModuleNames.Add("VXGI");
        }
        // NVCHANGE_END: Add VXGI
    }
    public LevelEditor(ReadOnlyTargetRules Target) : base(Target)
    {
        PrivateIncludePathModuleNames.AddRange(
            new string[] {
            "AssetTools",
            "ClassViewer",
            "MainFrame",
            "PlacementMode",
            "SlateReflector",
            "IntroTutorials",
            "AppFramework",
            "PortalServices",
            "Persona",
        }
            );

        PublicIncludePathModuleNames.AddRange(
            new string[] {
            "Settings",
            "IntroTutorials",
            "HeadMountedDisplay",
            "UnrealEd",
            "VREditor",
            "CommonMenuExtensions"
        }
            );

        PrivateDependencyModuleNames.AddRange(
            new string[] {
            "LevelSequence",
            "Analytics",
            "Core",
            "CoreUObject",
            "LauncherPlatform",
            "InputCore",
            "Slate",
            "SlateCore",
            "EditorStyle",
            "Engine",
            "MessageLog",
            "SourceControl",
            "SourceControlWindows",
            "StatsViewer",
            "UnrealEd",
            "DeveloperSettings",
            "RenderCore",
            "DeviceProfileServices",
            "ContentBrowser",
            "SceneOutliner",
            "ActorPickerMode",
            "RHI",
            "Projects",
            "TargetPlatform",
            "EngineSettings",
            "PropertyEditor",
            "Kismet",
            "KismetWidgets",
            "Sequencer",
            "Foliage",
            "HierarchicalLODOutliner",
            "HierarchicalLODUtilities",
            "MaterialShaderQualitySettings",
            "PixelInspectorModule",
            "CommonMenuExtensions",
            "ToolMenus",
            "EnvironmentLightingViewer",
            "DesktopPlatform",
        }
            );

        DynamicallyLoadedModuleNames.AddRange(
            new string[] {
            "MainFrame",
            "ClassViewer",
            "DeviceManager",
            "SettingsEditor",
            "SessionFrontend",
            "SlateReflector",
            "AutomationWindow",
            "Layers",
            "WorldBrowser",
            "EditorWidgets",
            "AssetTools",
            "WorkspaceMenuStructure",
            "NewLevelDialog",
            "DeviceProfileEditor",
            "PlacementMode",
            "IntroTutorials",
            "HeadMountedDisplay",
            "VREditor",
            "Persona",
        }
            );

        if (Target.bWithLiveCoding)
        {
            PrivateIncludePathModuleNames.Add("LiveCoding");
        }
    }
Beispiel #16
0
    public TargetPlatform(TargetInfo Target)
    {
        PrivateDependencyModuleNames.Add("Core");
        PublicDependencyModuleNames.Add("DesktopPlatform");

        PrivateIncludePathModuleNames.Add("PhysXFormats");

        // no need for all these modules if the program doesn't want developer tools at all (like UnrealFileServer)
        if (!UEBuildConfiguration.bBuildRequiresCookedData && UEBuildConfiguration.bBuildDeveloperTools)
        {
            // these are needed by multiple platform specific target platforms, so we make sure they are built with the base editor
            DynamicallyLoadedModuleNames.Add("ShaderPreprocessor");
            DynamicallyLoadedModuleNames.Add("ShaderFormatOpenGL");
            DynamicallyLoadedModuleNames.Add("ImageWrapper");

            if ((Target.Platform == UnrealTargetPlatform.Win64) || (Target.Platform == UnrealTargetPlatform.Win32))
            {
                if (UEBuildConfiguration.bCompileLeanAndMeanUE == false)
                {
                    DynamicallyLoadedModuleNames.Add("TextureFormatIntelISPCTexComp");
                }
            }

            if (Target.Platform == UnrealTargetPlatform.Win32 ||
                Target.Platform == UnrealTargetPlatform.Win64 ||
                (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32"))
            {
                // these are needed by multiple platform specific target platforms, so we make sure they are built with the base editor
                DynamicallyLoadedModuleNames.Add("ShaderFormatD3D");
                DynamicallyLoadedModuleNames.Add("MetalShaderFormat");

                if (UEBuildConfiguration.bCompileLeanAndMeanUE == false)
                {
                    DynamicallyLoadedModuleNames.Add("TextureFormatDXT");
                    DynamicallyLoadedModuleNames.Add("TextureFormatPVR");
                    DynamicallyLoadedModuleNames.Add("TextureFormatASTC");
                }

                DynamicallyLoadedModuleNames.Add("TextureFormatUncompressed");

                if (UEBuildConfiguration.bCompileAgainstEngine)
                {
                    DynamicallyLoadedModuleNames.Add("AudioFormatADPCM");                     // For IOS cooking
                    DynamicallyLoadedModuleNames.Add("AudioFormatOgg");
                    DynamicallyLoadedModuleNames.Add("AudioFormatOpus");
                }

                if (Target.Type == TargetRules.TargetType.Editor || Target.Type == TargetRules.TargetType.Program)
                {
                    DynamicallyLoadedModuleNames.Add("AndroidTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_PVRTCTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_ATCTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_DXTTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_ETC1TargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_ETC2TargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_ASTCTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_MultiTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("IOSTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("TVOSTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("HTML5TargetPlatform");
                    DynamicallyLoadedModuleNames.Add("MacTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("MacNoEditorTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("MacServerTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("MacClientTargetPlatform");
                }
            }
            else if (Target.Platform == UnrealTargetPlatform.Mac)
            {
                if (UEBuildConfiguration.bCompileLeanAndMeanUE == false)
                {
                    DynamicallyLoadedModuleNames.Add("TextureFormatDXT");
                    DynamicallyLoadedModuleNames.Add("TextureFormatPVR");
                    DynamicallyLoadedModuleNames.Add("TextureFormatASTC");
                }

                DynamicallyLoadedModuleNames.Add("TextureFormatUncompressed");

                if (UEBuildConfiguration.bCompileAgainstEngine)
                {
                    DynamicallyLoadedModuleNames.Add("AudioFormatOgg");
                    DynamicallyLoadedModuleNames.Add("AudioFormatOpus");
                }

                if (Target.Type == TargetRules.TargetType.Editor || Target.Type == TargetRules.TargetType.Program)
                {
                    DynamicallyLoadedModuleNames.Add("AndroidTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_MultiTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_PVRTCTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_ATCTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_DXTTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_ETC1TargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_ETC2TargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_ASTCTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("IOSTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("TVOSTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("HTML5TargetPlatform");
                }
            }
            else if (Target.Platform == UnrealTargetPlatform.Linux)
            {
                if (UEBuildConfiguration.bCompileLeanAndMeanUE == false)
                {
                    DynamicallyLoadedModuleNames.Add("TextureFormatDXT");
                    DynamicallyLoadedModuleNames.Add("TextureFormatPVR");
                    DynamicallyLoadedModuleNames.Add("TextureFormatASTC");
                }

                DynamicallyLoadedModuleNames.Add("TextureFormatUncompressed");

                if (UEBuildConfiguration.bCompileAgainstEngine)
                {
                    DynamicallyLoadedModuleNames.Add("AudioFormatOgg");
                    DynamicallyLoadedModuleNames.Add("AudioFormatOpus");
                }

                if (Target.Type == TargetRules.TargetType.Editor || Target.Type == TargetRules.TargetType.Program)
                {
                    DynamicallyLoadedModuleNames.Add("AndroidTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_MultiTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_PVRTCTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_ATCTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_DXTTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_ETC1TargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_ETC2TargetPlatform");
                    DynamicallyLoadedModuleNames.Add("Android_ASTCTargetPlatform");
                }
            }
        }

        if (UEBuildConfiguration.bBuildDeveloperTools == true && (UEBuildConfiguration.bBuildRequiresCookedData || UEBuildConfiguration.bRuntimePhysicsCooking) && UEBuildConfiguration.bCompileAgainstEngine && UEBuildConfiguration.bCompilePhysX)
        {
            DynamicallyLoadedModuleNames.Add("PhysXFormats");
        }
    }
        public AudioMixer(ReadOnlyTargetRules Target) : base(Target)
        {
            OptimizeCode = CodeOptimization.Always;

            PrivateIncludePathModuleNames.Add("TargetPlatform");

            PrivateIncludePaths.AddRange(
                new string[]
            {
                "Runtime/AudioMixer/Private",
            }
                );

            PublicDependencyModuleNames.AddRange(
                new string[]
            {
                "Core",
                "CoreUObject",
                "Engine",
            }
                );

            PrivateDependencyModuleNames.AddRange(
                new string[]
            {
                "CoreUObject",
            }
                );

            if ((Target.Platform == UnrealTargetPlatform.Win64) ||
                (Target.Platform == UnrealTargetPlatform.Win32))
            {
                AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                             "UEOgg",
                                                             "Vorbis",
                                                             "VorbisFile",
                                                             "libOpus"
                                                             );
            }

            // TODO test this for HTML5 !
            //if (Target.Platform == UnrealTargetPlatform.HTML5)
            //{
            //	AddEngineThirdPartyPrivateStaticDependencies(Target,
            //		"UEOgg",
            //		"Vorbis",
            //		"VorbisFile"
            //		);
            //}

            if (Target.Platform == UnrealTargetPlatform.Mac)
            {
                AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                             "UEOgg",
                                                             "Vorbis",
                                                             "libOpus"
                                                             );
                PublicFrameworks.AddRange(new string[] { "AVFoundation", "CoreVideo", "CoreMedia" });
            }

            if (Target.Platform == UnrealTargetPlatform.Android)
            {
                AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                             "UEOgg",
                                                             "Vorbis",
                                                             "VorbisFile"
                                                             );
            }

            if (Target.Platform == UnrealTargetPlatform.Linux)
            {
                AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                             "UEOgg",
                                                             "Vorbis",
                                                             "VorbisFile",
                                                             "libOpus"
                                                             );
            }

            if (Target.Platform == UnrealTargetPlatform.XboxOne)
            {
                AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                             "libOpus"
                                                             );
            }
        }
    public Launch(TargetInfo Target)
    {
        PrivateIncludePaths.Add("Runtime/Launch/Private");

        PrivateIncludePathModuleNames.AddRange(
            new string[] {
            "AutomationController",
            "OnlineSubsystem",
            "TaskGraph",
        }
            );

        PrivateDependencyModuleNames.AddRange(
            new string[] {
            "Core",
            "CoreUObject",
            "Engine",
            "InputCore",
            "Media",
            "MediaAssets",
            "MoviePlayer",
            "Networking",
            "PakFile",
            "Projects",
            "RenderCore",
            "RHI",
            "SandboxFile",
            "ShaderCore",
            "Slate",
            "SlateCore",
            "Sockets",
        }
            );

        if (Target.Type != TargetRules.TargetType.Server)
        {
            PrivateDependencyModuleNames.AddRange(
                new string[] {
                "HeadMountedDisplay",
            }
                );

            if (Target.Platform == UnrealTargetPlatform.Linux)
            {
                PrivateDependencyModuleNames.Add("ALAudio");
            }

            PrivateIncludePathModuleNames.AddRange(
                new string[] {
                "SlateRHIRenderer",
            }
                );

            DynamicallyLoadedModuleNames.AddRange(
                new string[] {
                "SlateRHIRenderer",
                "HeadMountedDisplay"
            }
                );
        }

        // UFS clients are not available in shipping builds
        if (Target.Configuration != UnrealTargetConfiguration.Shipping)
        {
            PrivateDependencyModuleNames.AddRange(
                new string[] {
                "NetworkFile",
                "StreamingFile",
                "AutomationWorker",
            }
                );
        }

        DynamicallyLoadedModuleNames.AddRange(
            new string[] {
            "Renderer",
        }
            );

        if (UEBuildConfiguration.bCompileAgainstEngine)
        {
            PrivateIncludePathModuleNames.Add("Messaging");
            PublicDependencyModuleNames.Add("SessionServices");
            PrivateIncludePaths.Add("Developer/DerivedDataCache/Public");

            // LaunchEngineLoop.cpp does a LoadModule() on OnlineSubsystem and OnlineSubsystemUtils when compiled WITH_ENGINE, so they must be marked as dependencies so that they get compiled and cleaned
            DynamicallyLoadedModuleNames.Add("OnlineSubsystem");
            DynamicallyLoadedModuleNames.Add("OnlineSubsystemUtils");
        }

        if (Target.Configuration != UnrealTargetConfiguration.Shipping)
        {
            PublicIncludePathModuleNames.Add("ProfilerService");
            DynamicallyLoadedModuleNames.AddRange(new string[] { "TaskGraph", "RealtimeProfiler", "ProfilerService" });
        }

        if (UEBuildConfiguration.bBuildEditor == true)
        {
            PublicIncludePathModuleNames.Add("ProfilerClient");

            PrivateDependencyModuleNames.AddRange(
                new string[] {
                "SourceControl",
                "UnrealEd",
                "DesktopPlatform"
            }
                );


            // ExtraModules that are loaded when WITH_EDITOR=1 is true
            DynamicallyLoadedModuleNames.AddRange(
                new string[] {
                "AutomationController",
                "AutomationWorker",
                "AutomationWindow",
                "ProfilerClient",
                "Toolbox",
                "GammaUI",
                "ModuleUI",
                "OutputLog",
                "TextureCompressor",
                "MeshUtilities",
                "SourceCodeAccess"
            }
                );

            if (Target.Platform == UnrealTargetPlatform.Mac)
            {
                PrivateDependencyModuleNames.Add("MainFrame");
                PrivateDependencyModuleNames.Add("Settings");
            }
            else
            {
                DynamicallyLoadedModuleNames.Add("MainFrame");
            }
        }

        if ((Target.Platform == UnrealTargetPlatform.Win32) ||
            (Target.Platform == UnrealTargetPlatform.Win64))
        {
            DynamicallyLoadedModuleNames.Add("D3D11RHI");
            DynamicallyLoadedModuleNames.Add("XAudio2");
        }

        if (Target.Platform == UnrealTargetPlatform.Mac)
        {
            DynamicallyLoadedModuleNames.Add("CoreAudio");
        }

        if (Target.Platform == UnrealTargetPlatform.IOS)
        {
            PrivateDependencyModuleNames.Add("OpenGLDrv");
            DynamicallyLoadedModuleNames.Add("IOSAudio");
            DynamicallyLoadedModuleNames.Add("IOSRuntimeSettings");
            PublicFrameworks.Add("OpenGLES");
            // this is weak for IOS8 support for CAMetalLayer that is in QuartzCore
            PublicWeakFrameworks.Add("QuartzCore");

            PrivateDependencyModuleNames.Add("LaunchDaemonMessages");
        }

        if (Target.Platform == UnrealTargetPlatform.Android)
        {
            PrivateDependencyModuleNames.Add("OpenGLDrv");
            PrivateDependencyModuleNames.Add("AndroidAudio");
            DynamicallyLoadedModuleNames.Add("AndroidRuntimeSettings");
        }

        if ((Target.Platform == UnrealTargetPlatform.Win32) ||
            (Target.Platform == UnrealTargetPlatform.Win64) ||
            (Target.Platform == UnrealTargetPlatform.Mac) ||
            (Target.Platform == UnrealTargetPlatform.Linux && Target.Type != TargetRules.TargetType.Server))
        {
            // TODO: re-enable after implementing resource tables for OpenGL.
            DynamicallyLoadedModuleNames.Add("OpenGLDrv");
        }

        if (Target.Platform == UnrealTargetPlatform.HTML5)
        {
            PrivateDependencyModuleNames.Add("HTML5Audio");
            if (Target.Architecture == "-win32")
            {
                PrivateDependencyModuleNames.Add("HTML5Win32");
                PublicIncludePathModuleNames.Add("HTML5Win32");
                AddThirdPartyPrivateStaticDependencies(Target, "SDL");
            }
        }


        // @todo ps4 clang bug: this works around a PS4/clang compiler bug (optimizations)
        if (Target.Platform == UnrealTargetPlatform.PS4)
        {
            bFasterWithoutUnity = true;
        }
    }
Beispiel #19
0
        public AudioMixer(ReadOnlyTargetRules Target) : base(Target)
        {
            PrivateIncludePathModuleNames.Add("TargetPlatform");

            PrivateIncludePaths.AddRange(
                new string[]
            {
                "Runtime/AudioMixer/Private",
            }
                );

            PublicDependencyModuleNames.AddRange(
                new string[]
            {
                "Core",
                "CoreUObject",
            }
                );

            PrivateDependencyModuleNames.AddRange(
                new string[]
            {
                "CoreUObject",
                "Engine",
            }
                );

            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "UEOgg",
                                                         "Vorbis",
                                                         "VorbisFile",
                                                         "libOpus",
                                                         "UELibSampleRate"
                                                         );

            // TODO test this for HTML5 !
            //if (Target.Platform == UnrealTargetPlatform.HTML5)
            //{
            //	AddEngineThirdPartyPrivateStaticDependencies(Target,
            //		"UEOgg",
            //		"Vorbis",
            //		"VorbisFile"
            //		);
            //}

            if (Target.Platform == UnrealTargetPlatform.Mac)
            {
                AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                             "UEOgg",
                                                             "Vorbis",
                                                             "libOpus"
                                                             );
                PublicFrameworks.AddRange(new string[] { "AVFoundation", "CoreVideo", "CoreMedia" });
            }

            if (Target.IsInPlatformGroup(UnrealPlatformGroup.Android))
            {
                AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                             "UEOgg",
                                                             "Vorbis",
                                                             "VorbisFile"
                                                             );
            }

            if (Target.IsInPlatformGroup(UnrealPlatformGroup.Unix))
            {
                AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                             "UEOgg",
                                                             "Vorbis",
                                                             "VorbisFile",
                                                             "libOpus"
                                                             );
            }

            if (Target.Platform == UnrealTargetPlatform.XboxOne)
            {
                AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                             "libOpus"
                                                             );
            }

            if (Target.IsInPlatformGroup(UnrealPlatformGroup.Windows))
            {
                string PlatformName = Target.Platform == UnrealTargetPlatform.Win32 ? "Win32" : "Win64";

                string LibSndFilePath = Target.UEThirdPartyBinariesDirectory + "libsndfile/";
                LibSndFilePath += PlatformName;


                PublicAdditionalLibraries.Add("libsndfile-1.lib");
                PublicDelayLoadDLLs.Add("libsndfile-1.dll");
                PublicIncludePathModuleNames.Add("UELibSampleRate");
                PublicLibraryPaths.Add(LibSndFilePath);

                RuntimeDependencies.Add("$(EngineDir)/Binaries/ThirdParty/libsndfile/" + PlatformName + "/libsndfile-1.dll");
            }
        }
Beispiel #20
0
    public FUCK15(TargetInfo Target)
    {
        //PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });

        //PrivateDependencyModuleNames.AddRange(new string[] {  });

        // Uncomment if you are using Slate UI
        // PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" });

        // Uncomment if you are using online features
        // PrivateDependencyModuleNames.Add("OnlineSubsystem");

        // To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true

        PublicIncludePathModuleNames.AddRange(new string[] { "Renderer", "PacketHandler", "NetworkReplayStreaming" });

        PrivateIncludePaths.AddRange(
            new string[] {
            "Developer/DerivedDataCache/Public",
            "Runtime/SynthBenchmark/Public",
            "Runtime/Engine/Private",
        }
            );

        PrivateIncludePathModuleNames.AddRange(
            new string[] {
            "TargetPlatform",
            "ImageWrapper",
            "HeadMountedDisplay",
            "Advertising",
            "NetworkReplayStreaming",
            "MovieSceneCapture",
            "AutomationWorker",
            "MovieSceneCapture",
            "DesktopPlatform",
        }
            );

        if (Target.Configuration != UnrealTargetConfiguration.Shipping)
        {
            PrivateIncludePathModuleNames.AddRange(new string[] { "TaskGraph" });
        }

        if (Target.Configuration != UnrealTargetConfiguration.Shipping)
        {
            PrivateIncludePathModuleNames.AddRange(
                new string[] {
                "SlateReflector",
            }
                );

            DynamicallyLoadedModuleNames.AddRange(
                new string[] {
                "SlateReflector",
            }
                );
        }

        PublicDependencyModuleNames.AddRange(
            new string[] {
            "Core",
            "CoreUObject",
            "Engine",
            "Json",
            "SlateCore",
            "Slate",
            "InputCore",
            "Messaging",
            "RenderCore",
            "RHI",
            "ShaderCore",
            "AssetRegistry",     // Here until FAssetData is moved to engine
            "EngineMessages",
            "EngineSettings",
            "SynthBenchmark",
            "GameplayTags",
            "AIModule",
            "DatabaseSupport",
            "PacketHandler",
            "HardwareSurvey",
        }
            );

        if (Target.Type == TargetRules.TargetType.Editor)
        {
            PrivateIncludePathModuleNames.AddRange(new string[] { "CrashTracker" });
            DynamicallyLoadedModuleNames.AddRange(new string[] { "CrashTracker" });
            PublicDependencyModuleNames.AddRange(
                new string[] {
            }
                );
        }


        PrivateDependencyModuleNames.AddRange(
            new string[] {
            "AppFramework",
            "Networking",
            "Sockets",
            "Landscape",
            "UMG",
            "Projects",
            "Internationalization",
            "MaterialShaderQualitySettings",
            "CinematicCamera",
            "Analytics",
            "AnalyticsET",
        }
            );

        // to prevent "causes WARNING: Non-editor build cannot depend on non-redistributable modules."
        if (Target.Type == TargetRules.TargetType.Editor)
        {
            // for now we depend on this
            PrivateDependencyModuleNames.Add("RawMesh");
        }

        bool bVariadicTemplatesSupported = true;

        if (Target.Platform == UnrealTargetPlatform.XboxOne)
        {
            // Use reflection to allow type not to exist if console code is not present
            System.Type XboxOnePlatformType = System.Type.GetType("UnrealBuildTool.XboxOnePlatform,UnrealBuildTool");
            if (XboxOnePlatformType != null)
            {
                System.Object VersionName = XboxOnePlatformType.GetMethod("GetVisualStudioCompilerVersionName").Invoke(null, null);
                if (VersionName.ToString().Equals("2012"))
                {
                    bVariadicTemplatesSupported = false;
                }
            }
        }

        if (bVariadicTemplatesSupported)
        {
            PrivateIncludePathModuleNames.AddRange(
                new string[] {
                "MessagingRpc",
                "PortalRpc",
                "PortalServices",
            }
                );

            if (Target.Type == TargetRules.TargetType.Editor)
            {
                // these modules require variadic templates
                PrivateDependencyModuleNames.AddRange(
                    new string[] {
                    "MessagingRpc",
                    "PortalRpc",
                    "PortalServices",
                }
                    );
            }
        }

        CircularlyReferencedDependentModules.Add("GameplayTags");
        CircularlyReferencedDependentModules.Add("AIModule");
        CircularlyReferencedDependentModules.Add("Landscape");
        CircularlyReferencedDependentModules.Add("UMG");
        CircularlyReferencedDependentModules.Add("MaterialShaderQualitySettings");
        CircularlyReferencedDependentModules.Add("CinematicCamera");

        // The AnimGraphRuntime module is not needed by Engine proper, but it is loaded in LaunchEngineLoop.cpp,
        // and needs to be listed in an always-included module in order to be compiled into standalone games
        DynamicallyLoadedModuleNames.Add("AnimGraphRuntime");
        // So does Geometry Cache
        DynamicallyLoadedModuleNames.Add("GeometryCache");

        DynamicallyLoadedModuleNames.AddRange(
            new string[]
        {
            "ActorSequence",
            "MovieScene",
            "MovieSceneCapture",
            "MovieSceneTracks",
            "HeadMountedDisplay",
            "StreamingPauseRendering",
        }
            );

        PrivateIncludePathModuleNames.Add("LightPropagationVolumeRuntime");

        if (Target.Type != TargetRules.TargetType.Server)
        {
            PrivateIncludePathModuleNames.AddRange(
                new string[] {
                "SlateNullRenderer",
                "SlateRHIRenderer"
            }
                );

            DynamicallyLoadedModuleNames.AddRange(
                new string[] {
                "SlateNullRenderer",
                "SlateRHIRenderer"
            }
                );
        }

        if (Target.Type == TargetRules.TargetType.Server || Target.Type == TargetRules.TargetType.Editor)
        {
            PrivateDependencyModuleNames.Add("PerfCounters");
        }

        if (UEBuildConfiguration.bBuildDeveloperTools)
        {
            // Add "BlankModule" so that it gets compiled as an example and will be maintained and tested.  This can be removed
            // at any time if needed.  The module isn't actually loaded by the engine so there is no runtime cost.
            DynamicallyLoadedModuleNames.Add("BlankModule");

            if (Target.Type != TargetRules.TargetType.Server)
            {
                PrivateIncludePathModuleNames.Add("MeshUtilities");
                DynamicallyLoadedModuleNames.Add("MeshUtilities");

                PrivateDependencyModuleNames.AddRange(
                    new string[] {
                    "ImageCore",
                    "RawMesh"
                });
            }

            if (Target.Configuration != UnrealTargetConfiguration.Shipping && Target.Configuration != UnrealTargetConfiguration.Test && Target.Type != TargetRules.TargetType.Server)
            {
                PrivateDependencyModuleNames.Add("CollisionAnalyzer");
                CircularlyReferencedDependentModules.Add("CollisionAnalyzer");

                PrivateDependencyModuleNames.Add("LogVisualizer");
                CircularlyReferencedDependentModules.Add("LogVisualizer");
            }

            if (Target.Platform == UnrealTargetPlatform.Win64)
            {
                DynamicallyLoadedModuleNames.AddRange(
                    new string[] {
                    "WindowsTargetPlatform",
                    "WindowsNoEditorTargetPlatform",
                    "WindowsServerTargetPlatform",
                    "WindowsClientTargetPlatform",
                    "AllDesktopTargetPlatform",
                }
                    );
            }
            else if (Target.Platform == UnrealTargetPlatform.Mac)
            {
                DynamicallyLoadedModuleNames.AddRange(
                    new string[] {
                    "MacTargetPlatform",
                    "MacNoEditorTargetPlatform",
                    "MacServerTargetPlatform",
                    "MacClientTargetPlatform",
                    "AllDesktopTargetPlatform",
                }
                    );
            }
            else if (Target.Platform == UnrealTargetPlatform.Linux)
            {
                DynamicallyLoadedModuleNames.AddRange(
                    new string[] {
                    "LinuxTargetPlatform",
                    "LinuxNoEditorTargetPlatform",
                    "LinuxServerTargetPlatform",
                    "LinuxClientTargetPlatform",
                    "AllDesktopTargetPlatform",
                }
                    );
            }
        }

        DynamicallyLoadedModuleNames.AddRange(
            new string[] {
            "NetworkReplayStreaming",
            "NullNetworkReplayStreaming",
            "HttpNetworkReplayStreaming",
            "Advertising"
        }
            );

        if (Target.Type.Value != TargetRules.TargetType.Server)
        {
            DynamicallyLoadedModuleNames.AddRange(
                new string[] {
                "ImageWrapper",
                "GameLiveStreaming"
            }
                );
        }

        if (!UEBuildConfiguration.bBuildRequiresCookedData && UEBuildConfiguration.bCompileAgainstEngine)
        {
            DynamicallyLoadedModuleNames.AddRange(
                new string[] {
                "DerivedDataCache",
                "TargetPlatform",
                "DesktopPlatform"
            }
                );
        }

        if (UEBuildConfiguration.bBuildEditor == true)
        {
            PublicDependencyModuleNames.AddRange(
                new string[] {
                "UnrealEd",
                "Kismet"
            }
                ); // @todo api: Only public because of WITH_EDITOR and UNREALED_API

            CircularlyReferencedDependentModules.AddRange(
                new string[] {
                "UnrealEd",
                "Kismet"
            }
                );

            PrivateIncludePathModuleNames.Add("TextureCompressor");
            PrivateIncludePaths.Add("Developer/TextureCompressor/Public");

            PrivateIncludePathModuleNames.Add("HierarchicalLODUtilities");
            DynamicallyLoadedModuleNames.Add("HierarchicalLODUtilities");
        }

        SetupModulePhysXAPEXSupport(Target);
        if (UEBuildConfiguration.bCompilePhysX && UEBuildConfiguration.bRuntimePhysicsCooking)
        {
            DynamicallyLoadedModuleNames.Add("PhysXFormats");
            PrivateIncludePathModuleNames.Add("PhysXFormats");
        }


        SetupModuleBox2DSupport(Target);

        if ((Target.Platform == UnrealTargetPlatform.Win64) ||
            (Target.Platform == UnrealTargetPlatform.Win32))
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "UEOgg",
                                                         "Vorbis",
                                                         "VorbisFile",
                                                         "libOpus",
                                                         "OpenSubdiv"
                                                         );

            if (UEBuildConfiguration.bCompileLeanAndMeanUE == false)
            {
                AddEngineThirdPartyPrivateStaticDependencies(Target, "DirectShow");
            }

            // Head Mounted Display support
            //            PrivateIncludePathModuleNames.AddRange(new string[] { "HeadMountedDisplay" });
            //            DynamicallyLoadedModuleNames.AddRange(new string[] { "HeadMountedDisplay" });
        }

        if (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32")
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "UEOgg",
                                                         "Vorbis",
                                                         "VorbisFile"
                                                         );
        }
        if (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture != "-win32")
        {
            PublicDependencyModuleNames.Add("HTML5JS");
        }

        if (Target.Platform == UnrealTargetPlatform.Mac)
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "UEOgg",
                                                         "Vorbis",
                                                         "libOpus"
                                                         );
            PublicFrameworks.AddRange(new string[] { "AVFoundation", "CoreVideo", "CoreMedia" });
        }

        if (Target.Platform == UnrealTargetPlatform.Android)
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "UEOgg",
                                                         "Vorbis",
                                                         "VorbisFile"
                                                         );
        }

        if (Target.Platform == UnrealTargetPlatform.Linux)
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "UEOgg",
                                                         "Vorbis",
                                                         "VorbisFile",
                                                         "libOpus"
                                                         );
        }

        if (UEBuildConfiguration.bCompileRecast)
        {
            PrivateDependencyModuleNames.Add("Navmesh");
            Definitions.Add("WITH_RECAST=1");
        }
        else
        {
            // Because we test WITH_RECAST in public Engine header files, we need to make sure that modules
            // that import this also have this definition set appropriately.  Recast is a private dependency
            // module, so it's definitions won't propagate to modules that import Engine.
            Definitions.Add("WITH_RECAST=0");
        }

        // Add a reference to the stats HTML files referenced by UEngine::DumpFPSChartToHTML. Previously staged by CopyBuildToStagingDirectory.
        if (UEBuildConfiguration.bBuildEditor || Target.Configuration != UnrealTargetConfiguration.Shipping)
        {
            RuntimeDependencies.Add("$(EngineDir)/Content/Stats/...", StagedFileType.UFS);
        }

        DynamicallyLoadedModuleNames.Add("Niagara");
    }
Beispiel #21
0
    public UnrealEd(ReadOnlyTargetRules Target) : base(Target)
    {
        if (Target.Type != TargetType.Editor)
        {
            throw new BuildException("Unable to instantiate UnrealEd module for non-editor targets.");
        }

        PrivatePCHHeaderFile = "Private/UnrealEdPrivatePCH.h";

        SharedPCHHeaderFile = "Public/UnrealEdSharedPCH.h";

        PrivateIncludePaths.AddRange(
            new string[]
        {
            "Editor/UnrealEd/Private",
            "Editor/UnrealEd/Private/Settings",
            "Editor/PackagesDialog/Public",
            "Developer/DerivedDataCache/Public",
            "Developer/TargetPlatform/Public",
        }
            );

        PrivateIncludePathModuleNames.AddRange(
            new string[]
        {
            "BehaviorTreeEditor",
            "ClassViewer",
            "StructViewer",
            "ContentBrowser",
            "DerivedDataCache",
            "DesktopPlatform",
            "LauncherPlatform",
            "EnvironmentQueryEditor",
            "GameProjectGeneration",
            "ProjectTargetPlatformEditor",
            "ImageWrapper",
            "MainFrame",
            "MaterialEditor",
            "MergeActors",
            "MeshUtilities",
            "MessagingCommon",
            "MovieSceneCapture",
            "PlacementMode",
            "Settings",
            "SettingsEditor",
            "AudioEditor",
            "ViewportSnapping",
            "SourceCodeAccess",
            "IntroTutorials",
            "OutputLog",
            "Landscape",
            "LocalizationService",
            "HierarchicalLODUtilities",
            "MessagingRpc",
            "PortalRpc",
            "PortalServices",
            "BlueprintNativeCodeGen",
            "ViewportInteraction",
            "VREditor",
            "Persona",
            "PhysicsAssetEditor",
            "ClothingSystemEditorInterface",
            "NavigationSystem",
            "Media",
            "VirtualTexturingEditor",
        }
            );

        PublicDependencyModuleNames.AddRange(
            new string[]
        {
            "BspMode",
            "Core",
            "CoreUObject",
            "ApplicationCore",
            "DirectoryWatcher",
            "Documentation",
            "Engine",
            "Json",
            "Projects",
            "SandboxFile",
            "Slate",
            "SlateCore",
            "EditorStyle",
            "SourceControl",
            "UnrealEdMessages",
            "GameplayDebugger",
            "BlueprintGraph",
            "Http",
            "UnrealAudio",
            "FunctionalTesting",
            "AutomationController",
            "Localization",
            "AudioEditor",
            "NetworkFileSystem",
            "UMG",
            "NavigationSystem",
            "MeshDescription",
            "StaticMeshDescription",
            "MeshDescriptionOperations",
            "MeshBuilder",
            "MaterialShaderQualitySettings",
            "EditorSubsystem",
            "InteractiveToolsFramework",
            "ToolMenusEditor",
        }
            );

        PrivateDependencyModuleNames.AddRange(
            new string[]
        {
            "AssetRegistry",
            "AssetTagsEditor",
            "LevelSequence",
            "AnimGraph",
            "AppFramework",
            "BlueprintGraph",
            "CinematicCamera",
            "CurveEditor",
            "DesktopPlatform",
            "LauncherPlatform",
            "EditorStyle",
            "EngineSettings",
            "ImageWriteQueue",
            "InputCore",
            "InputBindingEditor",
            "LauncherServices",
            "MaterialEditor",
            "MessageLog",
            "PakFile",
            "PropertyEditor",
            "Projects",
            "RawMesh",
            "MeshUtilitiesCommon",
            "SkeletalMeshUtilitiesCommon",
            "RenderCore",
            "RHI",
            "Sockets",
            "SourceControlWindows",
            "StatsViewer",
            "SwarmInterface",
            "TargetPlatform",
            "TargetDeviceServices",
            "EditorWidgets",
            "GraphEditor",
            "Kismet",
            "InternationalizationSettings",
            "JsonUtilities",
            "Landscape",
            "HeadMountedDisplay",
            "MeshPaint",
            "MeshPaintMode",
            "Foliage",
            "VectorVM",
            "MaterialUtilities",
            "Localization",
            "LocalizationService",
            "AddContentDialog",
            "GameProjectGeneration",
            "HierarchicalLODUtilities",
            "Analytics",
            "AnalyticsET",
            "PluginWarden",
            "PixelInspectorModule",
            "MovieScene",
            "MovieSceneTracks",
            "ViewportInteraction",
            "VREditor",
            "ClothingSystemEditor",
            "ClothingSystemRuntimeInterface",
            "ClothingSystemRuntimeCommon",
            "ClothingSystemRuntimeNv",
            "PIEPreviewDeviceProfileSelector",
            "PakFileUtilities",
            "TimeManagement",
            "LandscapeEditorUtilities",
            "DerivedDataCache",
            "ScriptDisassembler",
            "ToolMenus",
            "FreeImage",
        }
            );

        DynamicallyLoadedModuleNames.AddRange(
            new string[]
        {
            "FontEditor",
            "StaticMeshEditor",
            "TextureEditor",
            "Cascade",
            "UMGEditor",
            "Matinee",
            "AssetTools",
            "ClassViewer",
            "StructViewer",
            "CollectionManager",
            "ContentBrowser",
            "CurveTableEditor",
            "DataTableEditor",
            "EditorSettingsViewer",
            "LandscapeEditor",
            "KismetCompiler",
            "DetailCustomizations",
            "ComponentVisualizers",
            "MainFrame",
            "LevelEditor",
            "PackagesDialog",
            "Persona",
            "PhysicsAssetEditor",
            "ProjectLauncher",
            "DeviceManager",
            "SettingsEditor",
            "SessionFrontend",
            "StringTableEditor",
            "GeometryMode",
            "TextureAlignMode",
            "FoliageEdit",
            "ImageWrapper",
            "Blutility",
            "IntroTutorials",
            "WorkspaceMenuStructure",
            "PlacementMode",
            "MeshUtilities",
            "MergeActors",
            "ProjectSettingsViewer",
            "ProjectTargetPlatformEditor",
            "PListEditor",
            "BehaviorTreeEditor",
            "EnvironmentQueryEditor",
            "ViewportSnapping",
            "GameplayTasksEditor",
            "UndoHistory",
            "SourceCodeAccess",
            "HotReload",
            "PortalProxies",
            "PortalServices",
            "BlueprintNativeCodeGen",
            "OverlayEditor",
            "AnimationModifiers",
            "ClothPainter",
            "Media",
            "TimeManagementEditor",
            "VirtualTexturingEditor",
            "EditorInteractiveToolsFramework"
        }
            );

        if (Target.Platform == UnrealTargetPlatform.Win64 || Target.Platform == UnrealTargetPlatform.Win32 || Target.Platform == UnrealTargetPlatform.Mac)
        {
            DynamicallyLoadedModuleNames.Add("IOSPlatformEditor");
        }

        if (Target.Platform == UnrealTargetPlatform.Win64 || Target.Platform == UnrealTargetPlatform.Win32 || Target.Platform == UnrealTargetPlatform.Mac || Target.Platform == UnrealTargetPlatform.Linux)
        {
            DynamicallyLoadedModuleNames.Add("AndroidPlatformEditor");
        }

        if (Target.Platform == UnrealTargetPlatform.Win64 || Target.Platform == UnrealTargetPlatform.Win32 || Target.Platform == UnrealTargetPlatform.Mac)
        {
            DynamicallyLoadedModuleNames.Add("LuminPlatformEditor");
        }

        CircularlyReferencedDependentModules.AddRange(
            new string[]
        {
            "GraphEditor",
            "Kismet",
            "AudioEditor",
            "ViewportInteraction",
            "VREditor",
        }
            );


        // Add include directory for Lightmass
        PublicIncludePaths.Add("Programs/UnrealLightmass/Public");

        PublicIncludePaths.Add("Developer/Android/AndroidDeviceDetection/Public/Interfaces");

        PublicIncludePathModuleNames.AddRange(
            new string[] {
            "AssetRegistry",
            "AssetTagsEditor",
            "CollectionManager",
            "BlueprintGraph",
            "AddContentDialog",
            "MeshUtilities",
            "AssetTools",
            "KismetCompiler",
            "NavigationSystem",
            "GameplayTasks",
            "AIModule",
            "Engine",
            "SourceControl",
        }
            );


        if ((Target.Platform == UnrealTargetPlatform.Win64) ||
            (Target.Platform == UnrealTargetPlatform.Win32))
        {
            PublicDependencyModuleNames.Add("XAudio2");
            PublicDependencyModuleNames.Add("AudioMixerXAudio2");

            PrivateDependencyModuleNames.Add("WindowsPlatformFeatures");
            PrivateDependencyModuleNames.Add("GameplayMediaEncoder");

            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "UEOgg",
                                                         "Vorbis",
                                                         "VorbisFile",
                                                         "DX11Audio"
                                                         );
        }

        AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                     "VHACD",
                                                     "FBX",
                                                     "FreeType2"
                                                     );

        SetupModulePhysicsSupport(Target);

        if (Target.bCompileRecast)
        {
            PrivateDependencyModuleNames.Add("Navmesh");
            PublicDefinitions.Add("WITH_RECAST=1");
        }
        else
        {
            PublicDefinitions.Add("WITH_RECAST=0");
        }

        if (Target.bWithLiveCoding)
        {
            PrivateIncludePathModuleNames.Add("LiveCoding");
        }
    }
    public TranslationEditor(ReadOnlyTargetRules Target) : base(Target)
    {
        PublicIncludePathModuleNames.Add("LevelEditor");
        PublicIncludePathModuleNames.Add("WorkspaceMenuStructure");

        PrivateIncludePathModuleNames.Add("LocalizationService");

        PrivateIncludePathModuleNames.AddRange(
            new string[] {
            "DesktopPlatform",
            "MessageLog",
        }
            );

        PrivateDependencyModuleNames.AddRange(
            new string[] {
            "Core",
            "CoreUObject",
            "Engine",
            "InputCore",
            "Json",
            "PropertyEditor",
            "Slate",
            "SlateCore",
            "EditorStyle",
            "UnrealEd",
            "GraphEditor",
            "SourceControl",
            "MessageLog",
            "Documentation",
            "Localization",
            "LocalizationCommandletExecution",
            "LocalizationService",
        }
            );

        PublicDependencyModuleNames.AddRange(
            new string[] {
            "Core",
            "CoreUObject",
            "Engine",
            "Localization",
        }
            );

        DynamicallyLoadedModuleNames.AddRange(
            new string[] {
            "WorkspaceMenuStructure",
            "DesktopPlatform",
        }
            );

        PrivateIncludePaths.AddRange(
            new string[]
        {
            "Editor/TranslationEditor/Private",
        }
            );

        PublicIncludePaths.AddRange(
            new string[]
        {
            "Editor/TranslationEditor/Public",
        }
            );
    }
Beispiel #23
0
    public Core(TargetInfo Target)
    {
        PrivatePCHHeaderFile = "Private/CorePrivatePCH.h";

        SharedPCHHeaderFile = "Public/CoreSharedPCH.h";

        PublicIncludePaths.AddRange(
            new string[] {
            "Runtime/Core/Public",
            "Runtime/Core/Public/Internationalization",
            "Runtime/Core/Public/Async",
            "Runtime/Core/Public/Concurrency",
            "Runtime/Core/Public/Containers",
            "Runtime/Core/Public/Delegates",
            "Runtime/Core/Public/GenericPlatform",
            "Runtime/Core/Public/HAL",
            "Runtime/Core/Public/Logging",
            "Runtime/Core/Public/Math",
            "Runtime/Core/Public/Misc",
            "Runtime/Core/Public/Modules",
            "Runtime/Core/Public/Modules/Boilerplate",
            "Runtime/Core/Public/ProfilingDebugging",
            "Runtime/Core/Public/Serialization",
            "Runtime/Core/Public/Serialization/Csv",
            "Runtime/Core/Public/Stats",
            "Runtime/Core/Public/Templates",
            "Runtime/Core/Public/UObject",
        }
            );

        PrivateIncludePaths.AddRange(
            new string[] {
            "Developer/DerivedDataCache/Public",
            "Runtime/SynthBenchmark/Public",
            "Runtime/Core/Private",
            "Runtime/Core/Private/Misc",
            "Runtime/Core/Private/Serialization/Json",
            "Runtime/Core/Private/Internationalization",
            "Runtime/Core/Private/Internationalization/Cultures",
            "Runtime/Analytics/Public",
            "Runtime/Engine/Public",
        }
            );

        PrivateIncludePathModuleNames.AddRange(
            new string[] {
            "TargetPlatform",
            "DerivedDataCache",
            "InputDevice",
            "Analytics",
            "RHI"
        }
            );

        if (UEBuildConfiguration.bBuildEditor == true)
        {
            DynamicallyLoadedModuleNames.Add("SourceCodeAccess");
        }

        if ((Target.Platform == UnrealTargetPlatform.Win64) ||
            (Target.Platform == UnrealTargetPlatform.Win32))
        {
            PublicIncludePaths.Add("Runtime/Core/Public/Windows");
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "zlib");

            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "IntelTBB",
                                                         "XInput"
                                                         );
        }
        else if (Target.Platform == UnrealTargetPlatform.Mac)
        {
            PublicIncludePaths.AddRange(new string[] { "Runtime/Core/Public/Apple", "Runtime/Core/Public/Mac" });
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "IntelTBB",
                                                         "zlib",
                                                         "OpenGL",
                                                         "PLCrashReporter"
                                                         );
            PublicFrameworks.AddRange(new string[] { "Cocoa", "Carbon", "IOKit", "Security" });

            if (UEBuildConfiguration.bBuildEditor == true)
            {
                PublicAdditionalLibraries.Add("/System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/Current/MultitouchSupport");
            }
        }
        else if (Target.Platform == UnrealTargetPlatform.IOS || Target.Platform == UnrealTargetPlatform.TVOS)
        {
            PublicIncludePaths.AddRange(new string[] { "Runtime/Core/Public/Apple", "Runtime/Core/Public/IOS" });
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "zlib"
                                                         );
            PublicFrameworks.AddRange(new string[] { "UIKit", "Foundation", "AudioToolbox", "AVFoundation", "GameKit", "StoreKit", "CoreVideo", "CoreMedia", "CoreGraphics", "GameController", "SystemConfiguration" });
            if (Target.Platform == UnrealTargetPlatform.IOS)
            {
                PublicFrameworks.AddRange(new string[] { "CoreMotion" });
            }

            bool bSupportAdvertising = Target.Platform == UnrealTargetPlatform.IOS;
            if (bSupportAdvertising)
            {
                PublicFrameworks.AddRange(new string[] { "iAD" });
            }
        }
        else if (Target.Platform == UnrealTargetPlatform.Android)
        {
            PublicIncludePaths.Add("Runtime/Core/Public/Android");
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "cxademangle",
                                                         "zlib"
                                                         );
        }
        else if ((Target.Platform == UnrealTargetPlatform.Linux))
        {
            PublicIncludePaths.Add("Runtime/Core/Public/Linux");
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "zlib",
                                                         "jemalloc",
                                                         "elftoolchain",
                                                         "SDL2"
                                                         );

            // Core uses dlopen()
            PublicAdditionalLibraries.Add("dl");

            // We need FreeType2 and GL for the Splash, but only in the Editor
            if (Target.Type == TargetRules.TargetType.Editor)
            {
                AddEngineThirdPartyPrivateStaticDependencies(Target, "FreeType2");
                AddEngineThirdPartyPrivateStaticDependencies(Target, "OpenGL");
                PrivateIncludePathModuleNames.Add("ImageWrapper");
            }
        }
        else if (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32")
        {
            PublicIncludePaths.Add("Runtime/Core/Public/HTML5");
            AddEngineThirdPartyPrivateStaticDependencies(Target, "SDL2");
            AddEngineThirdPartyPrivateStaticDependencies(Target, "OpenAL");
        }
        else if (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture != "-win32")
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target, "SDL2");
            PrivateDependencyModuleNames.Add("HTML5JS");
            PrivateDependencyModuleNames.Add("MapPakDownloader");
        }
        else if (Target.Platform == UnrealTargetPlatform.PS4)
        {
            PublicAdditionalLibraries.Add("SceRtc_stub_weak"); //ORBIS SDK rtc.h, used in PS4Time.cpp
        }

        if (UEBuildConfiguration.bCompileICU == true)
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target, "ICU");
        }
        Definitions.Add("UE_ENABLE_ICU=" + (UEBuildConfiguration.bCompileICU ? "1" : "0")); // Enable/disable (=1/=0) ICU usage in the codebase. NOTE: This flag is for use while integrating ICU and will be removed afterward.

        // If we're compiling with the engine, then add Core's engine dependencies
        if (UEBuildConfiguration.bCompileAgainstEngine == true)
        {
            if (!UEBuildConfiguration.bBuildRequiresCookedData)
            {
                DynamicallyLoadedModuleNames.AddRange(new string[] { "DerivedDataCache" });
            }
        }


        // On Windows platform, VSPerfExternalProfiler.cpp needs access to "VSPerf.h".  This header is included with Visual Studio, but it's not in a standard include path.
        if (Target.Platform == UnrealTargetPlatform.Win32 || Target.Platform == UnrealTargetPlatform.Win64)
        {
            var VisualStudioVersionNumber = "11.0";
            var SubFolderName             = (Target.Platform == UnrealTargetPlatform.Win64) ? "x64/PerfSDK" : "PerfSDK";

            string PerfIncludeDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), String.Format("Microsoft Visual Studio {0}/Team Tools/Performance Tools/{1}", VisualStudioVersionNumber, SubFolderName));

            if (File.Exists(Path.Combine(PerfIncludeDirectory, "VSPerf.h")))
            {
                PrivateIncludePaths.Add(PerfIncludeDirectory);
                Definitions.Add("WITH_VS_PERF_PROFILER=1");
            }
        }


        if (Target.Platform == UnrealTargetPlatform.XboxOne)
        {
            Definitions.Add("WITH_DIRECTXMATH=1");
        }
        else if ((Target.Platform == UnrealTargetPlatform.Win64) ||
                 (Target.Platform == UnrealTargetPlatform.Win32))
        {
            // To enable this requires Win8 SDK
            Definitions.Add("WITH_DIRECTXMATH=0");  // Enable to test on Win64/32.

            //PublicDependencyModuleNames.AddRange(  // Enable to test on Win64/32.
            //    new string[] {
            //    "DirectXMath"
            //});
        }
        else
        {
            Definitions.Add("WITH_DIRECTXMATH=0");
        }
    }
    public GameProjectGeneration(ReadOnlyTargetRules Target) : base(Target)
    {
        PublicDependencyModuleNames.AddRange(
            new string[] {
            "HardwareTargeting",
        }
            );

        PrivateIncludePathModuleNames.AddRange(
            new string[] {
            "AssetRegistry",
            "ContentBrowser",
            "DesktopPlatform",
            "LauncherPlatform",
            "MainFrame",
            "AddContentDialog",
            "HardwareTargeting",
        }
            );

        PrivateDependencyModuleNames.AddRange(
            new string[] {
            "Analytics",
            "ApplicationCore",
            "AppFramework",
            "ClassViewer",
            "Core",
            "CoreUObject",
            "Engine",
            "EngineSettings",
            "InputCore",
            "Projects",
            "RenderCore",
            "Slate",
            "SlateCore",
            "EditorStyle",
            "SourceControl",
            "TargetPlatform",
            "UnrealEd",
            "DesktopPlatform",
            "LauncherPlatform",
            "HardwareTargeting",
            "AddContentDialog",
            "AudioMixer",
            "AudioMixerCore"
        }
            );

        DynamicallyLoadedModuleNames.AddRange(
            new string[] {
            "AssetRegistry",
            "ContentBrowser",
            "Documentation",
            "MainFrame",
        }
            );

        if (Target.bWithLiveCoding)
        {
            PrivateIncludePathModuleNames.Add("LiveCoding");
        }
    }
Beispiel #25
0
    public Engine(TargetInfo Target)
    {
        SharedPCHHeaderFile = "Runtime/Engine/Public/Engine.h";

        PublicIncludePathModuleNames.AddRange(new string[] { "Renderer", "PacketHandler" });

        PrivateIncludePaths.AddRange(
            new string[] {
            "Developer/DerivedDataCache/Public",
            "Runtime/Online/OnlineSubsystem/Public",
            "Runtime/Online/OnlineSubsystemUtils/Public",
            "Runtime/SynthBenchmark/Public",
            "Runtime/Engine/Private",
        }
            );

        PrivateIncludePathModuleNames.AddRange(
            new string[] {
            "OnlineSubsystem",
            "TargetPlatform",
            "ImageWrapper",
            "HeadMountedDisplay",
            "Advertising",
            "NetworkReplayStreaming",
            "MovieSceneCapture",
            "AutomationWorker",
            "Analytics",
            "MovieSceneCapture",
            "DesktopPlatform",
            "Analytics"
        }
            );

        if (Target.Configuration != UnrealTargetConfiguration.Shipping)
        {
            PrivateIncludePathModuleNames.AddRange(new string[] { "TaskGraph" });
        }

        if (Target.Configuration != UnrealTargetConfiguration.Shipping)
        {
            PrivateIncludePathModuleNames.AddRange(
                new string[] {
                "SlateReflector",
            }
                );

            DynamicallyLoadedModuleNames.AddRange(
                new string[] {
                "SlateReflector",
            }
                );
        }

        PublicDependencyModuleNames.AddRange(
            new string[] {
            "Core",
            "CoreUObject",
            "Json",
            "SlateCore",
            "Slate",
            "InputCore",
            "Messaging",
            "RenderCore",
            "RHI",
            "ShaderCore",
            "AssetRegistry",                     // Here until FAssetData is moved to engine
            "EngineMessages",
            "EngineSettings",
            "SynthBenchmark",
            "AIModule",
            "DatabaseSupport",
        }
            );

        if (Target.Type == TargetRules.TargetType.Editor)
        {
            PrivateIncludePathModuleNames.AddRange(new string[] { "CrashTracker" });
            DynamicallyLoadedModuleNames.AddRange(new string[] { "CrashTracker" });
            PublicDependencyModuleNames.AddRange(
                new string[] {
                "CookingStats",
            }
                );
        }


        PrivateDependencyModuleNames.AddRange(
            new string[] {
            "AppFramework",
            "Networking",
            "Sockets",
            "Landscape",
            "UMG",
            "Projects",
            "Niagara",
            "Internationalization",
            "PacketHandler",
            "MaterialShaderQualitySettings",
        }
            );

        if (Target.Platform != UnrealTargetPlatform.XboxOne)
        {
            PrivateIncludePathModuleNames.AddRange(
                new string[] {
                "MessagingRpc",
                "PortalRpc",
                "PortalServices",
            }
                );

            if (Target.Type == TargetRules.TargetType.Editor)
            {
                // these modules require variadic templates
                PrivateDependencyModuleNames.AddRange(
                    new string[] {
                    "MessagingRpc",
                    "PortalRpc",
                    "PortalServices",
                }
                    );
            }
        }

        CircularlyReferencedDependentModules.Add("AIModule");
        CircularlyReferencedDependentModules.Add("Landscape");
        CircularlyReferencedDependentModules.Add("UMG");
        CircularlyReferencedDependentModules.Add("Niagara");
        CircularlyReferencedDependentModules.Add("MaterialShaderQualitySettings");

        // The AnimGraphRuntime module is not needed by Engine proper, but it is loaded in LaunchEngineLoop.cpp,
        // and needs to be listed in an always-included module in order to be compiled into standalone games
        DynamicallyLoadedModuleNames.Add("AnimGraphRuntime");

        DynamicallyLoadedModuleNames.AddRange(
            new string[]
        {
            "MovieScene",
            "MovieSceneCapture",
            "MovieSceneTracks",
            "HeadMountedDisplay",
            "StreamingPauseRendering",
        }
            );

        PrivateIncludePathModuleNames.Add("LightPropagationVolumeRuntime");

        if (Target.Type != TargetRules.TargetType.Server)
        {
            PrivateIncludePathModuleNames.AddRange(
                new string[] {
                "SlateNullRenderer",
                "SlateRHIRenderer"
            }
                );

            DynamicallyLoadedModuleNames.AddRange(
                new string[] {
                "SlateNullRenderer",
                "SlateRHIRenderer"
            }
                );
        }

        if (Target.Type == TargetRules.TargetType.Server || Target.Type == TargetRules.TargetType.Editor)
        {
            PrivateDependencyModuleNames.Add("PerfCounters");
        }

        if (UEBuildConfiguration.bBuildDeveloperTools)
        {
            // Add "BlankModule" so that it gets compiled as an example and will be maintained and tested.  This can be removed
            // at any time if needed.  The module isn't actually loaded by the engine so there is no runtime cost.
            DynamicallyLoadedModuleNames.Add("BlankModule");

            if (Target.Type != TargetRules.TargetType.Server)
            {
                PrivateIncludePathModuleNames.Add("MeshUtilities");
                DynamicallyLoadedModuleNames.Add("MeshUtilities");

                PrivateDependencyModuleNames.AddRange(
                    new string[] {
                    "ImageCore",
                    "RawMesh"
                });
            }

            if (Target.Configuration != UnrealTargetConfiguration.Shipping && Target.Configuration != UnrealTargetConfiguration.Test && Target.Type != TargetRules.TargetType.Server)
            {
                PrivateDependencyModuleNames.Add("CollisionAnalyzer");
                CircularlyReferencedDependentModules.Add("CollisionAnalyzer");

                PrivateDependencyModuleNames.Add("LogVisualizer");
                CircularlyReferencedDependentModules.Add("LogVisualizer");
            }

            if (Target.Platform == UnrealTargetPlatform.Win64)
            {
                DynamicallyLoadedModuleNames.AddRange(
                    new string[] {
                    "WindowsTargetPlatform",
                    "WindowsNoEditorTargetPlatform",
                    "WindowsServerTargetPlatform",
                    "WindowsClientTargetPlatform",
                    "AllDesktopTargetPlatform",
                }
                    );
            }
            else if (Target.Platform == UnrealTargetPlatform.Mac)
            {
                DynamicallyLoadedModuleNames.AddRange(
                    new string[] {
                    "MacTargetPlatform",
                    "MacNoEditorTargetPlatform",
                    "MacServerTargetPlatform",
                    "MacClientTargetPlatform",
                    "AllDesktopTargetPlatform",
                }
                    );
            }
            else if (Target.Platform == UnrealTargetPlatform.Linux)
            {
                DynamicallyLoadedModuleNames.AddRange(
                    new string[] {
                    "LinuxTargetPlatform",
                    "LinuxNoEditorTargetPlatform",
                    "LinuxServerTargetPlatform",
                    "AllDesktopTargetPlatform",
                }
                    );
            }
        }

        DynamicallyLoadedModuleNames.AddRange(
            new string[] {
            "Analytics",
            "AnalyticsET",
            "NetworkReplayStreaming",
            "NullNetworkReplayStreaming",
            "HttpNetworkReplayStreaming",
            "OnlineSubsystem",
            "OnlineSubsystemUtils",
            "Advertising"
        }
            );

        if (Target.Type.Value != TargetRules.TargetType.Server)
        {
            DynamicallyLoadedModuleNames.AddRange(
                new string[] {
                "ImageWrapper",
                "GameLiveStreaming"
            }
                );
        }

        if (!UEBuildConfiguration.bBuildRequiresCookedData && UEBuildConfiguration.bCompileAgainstEngine)
        {
            DynamicallyLoadedModuleNames.AddRange(
                new string[] {
                "DerivedDataCache",
                "TargetPlatform",
                "DesktopPlatform"
            }
                );
        }

        if (UEBuildConfiguration.bBuildEditor == true)
        {
            PublicDependencyModuleNames.AddRange(
                new string[] {
                "UnrealEd",
                "Kismet"
            }
                ); // @todo api: Only public because of WITH_EDITOR and UNREALED_API

            CircularlyReferencedDependentModules.AddRange(
                new string[] {
                "UnrealEd",
                "Kismet"
            }
                );

            PrivateIncludePathModuleNames.Add("TextureCompressor");
            PrivateIncludePaths.Add("Developer/TextureCompressor/Public");
        }

        SetupModulePhysXAPEXSupport(Target);
        if (UEBuildConfiguration.bCompilePhysX && UEBuildConfiguration.bRuntimePhysicsCooking)
        {
            DynamicallyLoadedModuleNames.Add("PhysXFormats");
            PrivateIncludePathModuleNames.Add("PhysXFormats");
        }


        SetupModuleBox2DSupport(Target);

        if ((Target.Platform == UnrealTargetPlatform.Win64) ||
            (Target.Platform == UnrealTargetPlatform.Win32))
        {
            AddThirdPartyPrivateStaticDependencies(Target,
                                                   "UEOgg",
                                                   "Vorbis",
                                                   "VorbisFile",
                                                   "libOpus"
                                                   );

            if (UEBuildConfiguration.bCompileLeanAndMeanUE == false)
            {
                AddThirdPartyPrivateStaticDependencies(Target, "DirectShow");
            }

            // Head Mounted Display support
//            PrivateIncludePathModuleNames.AddRange(new string[] { "HeadMountedDisplay" });
//            DynamicallyLoadedModuleNames.AddRange(new string[] { "HeadMountedDisplay" });
        }

        if (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32")
        {
            AddThirdPartyPrivateStaticDependencies(Target,
                                                   "UEOgg",
                                                   "Vorbis",
                                                   "VorbisFile"
                                                   );
        }
        if (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture != "-win32")
        {
            PublicDependencyModuleNames.Add("HTML5JS");
        }

        if (Target.Platform == UnrealTargetPlatform.Mac)
        {
            AddThirdPartyPrivateStaticDependencies(Target,
                                                   "UEOgg",
                                                   "Vorbis",
                                                   "libOpus"
                                                   );
            PublicFrameworks.AddRange(new string[] { "AVFoundation", "CoreVideo", "CoreMedia" });
        }

        if (Target.Platform == UnrealTargetPlatform.Android)
        {
            AddThirdPartyPrivateStaticDependencies(Target,
                                                   "UEOgg",
                                                   "Vorbis",
                                                   "VorbisFile"
                                                   );
        }

        if (Target.Platform == UnrealTargetPlatform.Linux)
        {
            AddThirdPartyPrivateStaticDependencies(Target,
                                                   "UEOgg",
                                                   "Vorbis",
                                                   "VorbisFile",
                                                   "libOpus"
                                                   );
        }

        if (UEBuildConfiguration.bCompileRecast)
        {
            PrivateDependencyModuleNames.Add("Navmesh");
            Definitions.Add("WITH_RECAST=1");
        }
        else
        {
            // Because we test WITH_RECAST in public Engine header files, we need to make sure that modules
            // that import this also have this definition set appropriately.  Recast is a private dependency
            // module, so it's definitions won't propagate to modules that import Engine.
            Definitions.Add("WITH_RECAST=0");
        }
    }
Beispiel #26
0
    public TargetPlatform(ReadOnlyTargetRules Target) : base(Target)
    {
        PrivateDependencyModuleNames.Add("Core");
        PrivateDependencyModuleNames.Add("SlateCore");
        PrivateDependencyModuleNames.Add("Slate");
        PrivateDependencyModuleNames.Add("EditorStyle");
        PrivateDependencyModuleNames.Add("Projects");
        PublicDependencyModuleNames.Add("AudioPlatformConfiguration");
        PublicDependencyModuleNames.Add("DesktopPlatform");
        PublicDependencyModuleNames.Add("LauncherPlatform");

        PrivateIncludePathModuleNames.Add("Engine");
        PrivateIncludePathModuleNames.Add("PhysicsCore");

        // no need for all these modules if the program doesn't want developer tools at all (like UnrealFileServer)
        if (!Target.bBuildRequiresCookedData && Target.bBuildDeveloperTools)
        {
            // these are needed by multiple platform specific target platforms, so we make sure they are built with the base editor
            DynamicallyLoadedModuleNames.Add("ShaderPreprocessor");
            DynamicallyLoadedModuleNames.Add("ShaderFormatOpenGL");
            DynamicallyLoadedModuleNames.Add("ShaderFormatVectorVM");
            DynamicallyLoadedModuleNames.Add("ImageWrapper");

            if ((Target.Platform == UnrealTargetPlatform.Win64) || (Target.Platform == UnrealTargetPlatform.Win32))
            {
                DynamicallyLoadedModuleNames.Add("TextureFormatIntelISPCTexComp");
            }

            if (Target.Platform == UnrealTargetPlatform.Win32 ||
                Target.Platform == UnrealTargetPlatform.Win64)
            {
                // these are needed by multiple platform specific target platforms, so we make sure they are built with the base editor
                DynamicallyLoadedModuleNames.Add("ShaderFormatD3D");
                DynamicallyLoadedModuleNames.Add("MetalShaderFormat");

                DynamicallyLoadedModuleNames.Add("TextureFormatDXT");
                DynamicallyLoadedModuleNames.Add("TextureFormatPVR");
                DynamicallyLoadedModuleNames.Add("TextureFormatASTC");

                DynamicallyLoadedModuleNames.Add("TextureFormatUncompressed");

                if (Target.bCompileAgainstEngine)
                {
                    DynamicallyLoadedModuleNames.Add("AudioFormatADPCM");                     // For IOS cooking
                    DynamicallyLoadedModuleNames.Add("AudioFormatOgg");
                    DynamicallyLoadedModuleNames.Add("AudioFormatOpus");
                }

                if (Target.Type == TargetType.Editor || Target.Type == TargetType.Program)
                {
                    DynamicallyLoadedModuleNames.Add("AndroidTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("IOSTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("TVOSTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("MacTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("MacNoEditorTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("MacServerTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("MacClientTargetPlatform");
                }
            }
            else if (Target.Platform == UnrealTargetPlatform.Mac)
            {
                DynamicallyLoadedModuleNames.Add("TextureFormatDXT");
                DynamicallyLoadedModuleNames.Add("TextureFormatPVR");
                DynamicallyLoadedModuleNames.Add("TextureFormatASTC");

                DynamicallyLoadedModuleNames.Add("TextureFormatUncompressed");

                if (Target.bCompileAgainstEngine)
                {
                    DynamicallyLoadedModuleNames.Add("AudioFormatOgg");
                    DynamicallyLoadedModuleNames.Add("AudioFormatOpus");
                    DynamicallyLoadedModuleNames.Add("AudioFormatADPCM");
                }

                if (Target.Type == TargetType.Editor || Target.Type == TargetType.Program)
                {
                    DynamicallyLoadedModuleNames.Add("AndroidTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("IOSTargetPlatform");
                    DynamicallyLoadedModuleNames.Add("TVOSTargetPlatform");
                }
            }
            else if (Target.IsInPlatformGroup(UnrealPlatformGroup.Linux))
            {
                DynamicallyLoadedModuleNames.Add("TextureFormatDXT");
                DynamicallyLoadedModuleNames.Add("TextureFormatPVR");
                DynamicallyLoadedModuleNames.Add("TextureFormatASTC");

                DynamicallyLoadedModuleNames.Add("TextureFormatUncompressed");

                if (Target.bCompileAgainstEngine)
                {
                    DynamicallyLoadedModuleNames.Add("AudioFormatOgg");
                    DynamicallyLoadedModuleNames.Add("AudioFormatOpus");
                    DynamicallyLoadedModuleNames.Add("AudioFormatADPCM");
                }

                if (Target.Type == TargetType.Editor || Target.Type == TargetType.Program)
                {
                    DynamicallyLoadedModuleNames.Add("AndroidTargetPlatform");
                }
            }
        }

        if (Target.bBuildDeveloperTools == true && Target.bBuildRequiresCookedData && Target.bCompileAgainstEngine && Target.bCompilePhysX)
        {
            DynamicallyLoadedModuleNames.Add("PhysXCooking");
        }
    }
Beispiel #27
0
    public ApplicationCore(ReadOnlyTargetRules Target) : base(Target)
    {
        PublicDependencyModuleNames.AddRange(
            new string[] {
            "Core"
        }
            );

        PublicIncludePathModuleNames.AddRange(
            new string[] {
            "RHI"
        }
            );

        PrivateIncludePathModuleNames.AddRange(
            new string[] {
            "InputDevice",
            "Analytics",
            "SynthBenchmark"
        }
            );

        if ((Target.Platform == UnrealTargetPlatform.Win64) ||
            (Target.Platform == UnrealTargetPlatform.Win32))
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "XInput"
                                                         );
            if (Target.bCompileWithAccessibilitySupport && !Target.bIsBuildingConsoleApplication)
            {
                PublicAdditionalLibraries.Add("uiautomationcore.lib");
            }
        }
        else if (Target.Platform == UnrealTargetPlatform.Mac)
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "OpenGL"
                                                         );
            if (Target.bBuildEditor == true)
            {
                PublicAdditionalLibraries.Add("/System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/Current/MultitouchSupport");
            }
        }
        else if (Target.Platform == UnrealTargetPlatform.Linux)
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "SDL2"
                                                         );

            // We need FreeType2 and GL for the Splash, but only in the Editor
            if (Target.Type == TargetType.Editor)
            {
                AddEngineThirdPartyPrivateStaticDependencies(Target, "FreeType2");
                AddEngineThirdPartyPrivateStaticDependencies(Target, "OpenGL");
                PrivateIncludePathModuleNames.Add("ImageWrapper");
            }
        }
        else if (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32")
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target, "SDL2");
            AddEngineThirdPartyPrivateStaticDependencies(Target, "OpenAL");
        }
        else if (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture != "-win32")
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target, "SDL2");
            PrivateDependencyModuleNames.Add("HTML5JS");
            PrivateDependencyModuleNames.Add("MapPakDownloader");
        }
        else if (Target.Platform == UnrealTargetPlatform.IOS || Target.Platform == UnrealTargetPlatform.TVOS)
        {
            PublicIncludePaths.AddRange(new string[] { "Runtime/ApplicationCore/Public/IOS" });
            AddEngineThirdPartyPrivateStaticDependencies(Target, "SoundSwitch");

            // export ApplicationCore symbols for embedded Dlls
            ModuleSymbolVisibility = ModuleRules.SymbolVisibility.VisibileForDll;
        }
        else if (Target.Platform == UnrealTargetPlatform.Android || Target.Platform == UnrealTargetPlatform.Lumin)
        {
            PrivateDependencyModuleNames.AddRange(
                new string[] {
                "Launch"
            }
                );
        }

        if (!Target.bCompileAgainstApplicationCore)
        {
            throw new System.Exception("ApplicationCore cannot be used when Target.bCompileAgainstApplicationCore = false.");
        }
    }
Beispiel #28
0
    public ApplicationCore(ReadOnlyTargetRules Target) : base(Target)
    {
        PublicDependencyModuleNames.AddRange(
            new string[] {
            "Core"
        }
            );

        PublicIncludePathModuleNames.AddRange(
            new string[] {
            "RHI"
        }
            );

        PrivateIncludePathModuleNames.AddRange(
            new string[] {
            "InputDevice",
            "Analytics",
            "SynthBenchmark"
        }
            );

        if ((Target.Platform == UnrealTargetPlatform.Win64) ||
            (Target.Platform == UnrealTargetPlatform.Win32))
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "XInput"
                                                         );
        }
        else if (Target.Platform == UnrealTargetPlatform.Mac)
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "OpenGL"
                                                         );
            if (Target.bBuildEditor == true)
            {
                PublicAdditionalLibraries.Add("/System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/Current/MultitouchSupport");
            }
        }
        else if (Target.Platform == UnrealTargetPlatform.Linux)
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "SDL2"
                                                         );

            // We need FreeType2 and GL for the Splash, but only in the Editor
            if (Target.Type == TargetType.Editor)
            {
                AddEngineThirdPartyPrivateStaticDependencies(Target, "FreeType2");
                AddEngineThirdPartyPrivateStaticDependencies(Target, "OpenGL");
                PrivateIncludePathModuleNames.Add("ImageWrapper");
            }
        }
        else if (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32")
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target, "SDL2");
            AddEngineThirdPartyPrivateStaticDependencies(Target, "OpenAL");
        }
        else if (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture != "-win32")
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target, "SDL2");
            PrivateDependencyModuleNames.Add("HTML5JS");
            PrivateDependencyModuleNames.Add("MapPakDownloader");
        }
        else if (Target.Platform == UnrealTargetPlatform.IOS || Target.Platform == UnrealTargetPlatform.TVOS)
        {
            PublicIncludePaths.AddRange(new string[] { "Runtime/ApplicationCore/Public/IOS" });
        }
    }
Beispiel #29
0
    public Launch(ReadOnlyTargetRules Target) : base(Target)
    {
        PrivateIncludePaths.Add("Runtime/Launch/Private");

        PrivateIncludePathModuleNames.AddRange(
            new string[] {
            "AutomationController",
            "TaskGraph",
        }
            );

        PrivateDependencyModuleNames.AddRange(
            new string[] {
            "Core",
            "CoreUObject",
            "Engine",
            "InputCore",
            "MediaAssets",
            "MoviePlayer",
            "Networking",
            "PakFile",
            "Projects",
            "RenderCore",
            "RHI",
            "SandboxFile",
            "Serialization",
            "ShaderCore",
            "Slate",
            "SlateCore",
            "Sockets",
            "Overlay",
            "UtilityShaders",
        }
            );

        // Enable the LauncherCheck module to be used for platforms that support the Launcher.
        // Projects should set Target.bUseLauncherChecks in their Target.cs to enable the functionality.
        if (Target.bUseLauncherChecks &&
            ((Target.Platform == UnrealTargetPlatform.Win32) ||
             (Target.Platform == UnrealTargetPlatform.Win64) ||
             (Target.Platform == UnrealTargetPlatform.Mac)))
        {
            PrivateDependencyModuleNames.Add("LauncherCheck");
            Definitions.Add("WITH_LAUNCHERCHECK=1");
        }
        else
        {
            Definitions.Add("WITH_LAUNCHERCHECK=0");
        }

        if (Target.Type != TargetType.Server)
        {
            PrivateDependencyModuleNames.AddRange(
                new string[] {
                "HeadMountedDisplay",
                "MRMesh",
            }
                );

            if ((Target.Platform == UnrealTargetPlatform.Win32) ||
                (Target.Platform == UnrealTargetPlatform.Win64))
            {
                DynamicallyLoadedModuleNames.Add("D3D12RHI");
                DynamicallyLoadedModuleNames.Add("D3D11RHI");
                DynamicallyLoadedModuleNames.Add("XAudio2");
                DynamicallyLoadedModuleNames.Add("AudioMixerXAudio2");
                if (Target.Platform == UnrealTargetPlatform.Win64)
                {
                    DynamicallyLoadedModuleNames.Add("AudioMixerSDL");
                }
            }
            else if (Target.Platform == UnrealTargetPlatform.Mac)
            {
                DynamicallyLoadedModuleNames.Add("CoreAudio");
                DynamicallyLoadedModuleNames.Add("AudioMixerAudioUnit");
            }
            else if (Target.Platform == UnrealTargetPlatform.Linux)
            {
                DynamicallyLoadedModuleNames.Add("ALAudio");
                PrivateDependencyModuleNames.Add("Json");
            }

            PrivateIncludePathModuleNames.AddRange(
                new string[] {
                "SlateNullRenderer",
                "SlateRHIRenderer"
            }
                );

            DynamicallyLoadedModuleNames.AddRange(
                new string[] {
                "SlateNullRenderer",
                "SlateRHIRenderer"
            }
                );
        }

        // UFS clients are not available in shipping builds
        if (Target.Configuration != UnrealTargetConfiguration.Shipping)
        {
            PrivateDependencyModuleNames.AddRange(
                new string[] {
                "NetworkFile",
                "StreamingFile",
                "CookedIterativeFile",
                "AutomationWorker",
            }
                );
        }

        DynamicallyLoadedModuleNames.AddRange(
            new string[] {
            "Media",
            "Renderer",
        }
            );

        if (Target.bCompileAgainstEngine)
        {
            PrivateIncludePathModuleNames.Add("Messaging");
            PublicDependencyModuleNames.Add("SessionServices");
            PrivateIncludePaths.Add("Developer/DerivedDataCache/Public");

            // LaunchEngineLoop.cpp will still attempt to load XMPP but not all projects require it so it will silently fail unless referenced by the project's build.cs file.
            // DynamicallyLoadedModuleNames.Add("XMPP");
            DynamicallyLoadedModuleNames.Add("HTTP");

            PrivateDependencyModuleNames.Add("ClothingSystemRuntimeInterface");
            PrivateDependencyModuleNames.Add("ClothingSystemRuntime");
        }

        if (Target.Configuration != UnrealTargetConfiguration.Shipping)
        {
            PublicIncludePathModuleNames.Add("ProfilerService");
            DynamicallyLoadedModuleNames.AddRange(new string[] { "TaskGraph", "RealtimeProfiler", "ProfilerService" });
        }

        // The engine can use AutomationController in any connfiguration besides shipping.  This module is loaded
        // dynamically in LaunchEngineLoop.cpp in non-shipping configurations
        if (Target.bCompileAgainstEngine && Target.Configuration != UnrealTargetConfiguration.Shipping)
        {
            DynamicallyLoadedModuleNames.AddRange(new string[] { "AutomationController" });
        }

        if (Target.bBuildEditor == true)
        {
            PublicIncludePathModuleNames.Add("ProfilerClient");

            PrivateDependencyModuleNames.AddRange(
                new string[] {
                "SourceControl",
                "UnrealEd",
                "DesktopPlatform",
                "PIEPreviewDeviceProfileSelector",
            }
                );


            // ExtraModules that are loaded when WITH_EDITOR=1 is true
            DynamicallyLoadedModuleNames.AddRange(
                new string[] {
                "AutomationWindow",
                "ProfilerClient",
                "Toolbox",
                "GammaUI",
                "ModuleUI",
                "OutputLog",
                "TextureCompressor",
                "MeshUtilities",
                "SourceCodeAccess"
            }
                );

            if (Target.Platform == UnrealTargetPlatform.Mac)
            {
                PrivateDependencyModuleNames.Add("MainFrame");
                PrivateDependencyModuleNames.Add("Settings");
            }
            else
            {
                DynamicallyLoadedModuleNames.Add("MainFrame");
            }
        }

        if (Target.Platform == UnrealTargetPlatform.IOS ||
            Target.Platform == UnrealTargetPlatform.TVOS)
        {
            PrivateDependencyModuleNames.Add("OpenGLDrv");
            PrivateDependencyModuleNames.Add("IOSAudio");
            PrivateDependencyModuleNames.Add("AudioMixerAudioUnit");
            DynamicallyLoadedModuleNames.Add("IOSRuntimeSettings");
            DynamicallyLoadedModuleNames.Add("IOSLocalNotification");
            PublicFrameworks.Add("OpenGLES");
            // this is weak for IOS8 support for CAMetalLayer that is in QuartzCore
            PublicWeakFrameworks.Add("QuartzCore");

            PrivateDependencyModuleNames.Add("LaunchDaemonMessages");
        }

        if (Target.Platform == UnrealTargetPlatform.Android)
        {
            PrivateDependencyModuleNames.Add("OpenGLDrv");
            PrivateDependencyModuleNames.Add("AndroidAudio");
            PrivateDependencyModuleNames.Add("AudioMixerAndroid");
            DynamicallyLoadedModuleNames.Add("AndroidRuntimeSettings");
            DynamicallyLoadedModuleNames.Add("AndroidLocalNotification");
        }

        if ((Target.Platform == UnrealTargetPlatform.Win32) ||
            (Target.Platform == UnrealTargetPlatform.Win64) ||
            (Target.Platform == UnrealTargetPlatform.Linux && Target.Type != TargetType.Server))
        {
            // TODO: re-enable after implementing resource tables for OpenGL.
            DynamicallyLoadedModuleNames.Add("OpenGLDrv");
        }

        if (Target.Platform == UnrealTargetPlatform.HTML5)
        {
            PrivateDependencyModuleNames.Add("ALAudio");
            AddEngineThirdPartyPrivateStaticDependencies(Target, "SDL2");
        }

        // @todo ps4 clang bug: this works around a PS4/clang compiler bug (optimizations)
        if (Target.Platform == UnrealTargetPlatform.PS4)
        {
            bFasterWithoutUnity = true;
        }

        if (Target.Platform == UnrealTargetPlatform.Linux)
        {
            PrivateDependencyModuleNames.AddRange(
                new string[] {
                "LinuxCommonStartup"
            }
                );
        }
    }
    public Core(ReadOnlyTargetRules Target) : base(Target)
    {
        PrivatePCHHeaderFile = "Private/CorePrivatePCH.h";

        SharedPCHHeaderFile = "Public/CoreSharedPCH.h";

        PrivateDependencyModuleNames.Add("BuildSettings");

        PrivateIncludePaths.AddRange(
            new string[] {
            "Developer/DerivedDataCache/Public",
            "Runtime/SynthBenchmark/Public",
            "Runtime/Core/Private",
            "Runtime/Core/Private/Misc",
            "Runtime/Core/Private/Internationalization",
            "Runtime/Core/Private/Internationalization/Cultures",
            "Runtime/Engine/Public",
        }
            );

        PrivateIncludePathModuleNames.AddRange(
            new string[] {
            "TargetPlatform",
            "DerivedDataCache",
            "InputDevice",
            "Analytics",
            "RHI"
        }
            );

        if (Target.bBuildEditor == true)
        {
            DynamicallyLoadedModuleNames.Add("SourceCodeAccess");

            PrivateIncludePathModuleNames.Add("DirectoryWatcher");
            DynamicallyLoadedModuleNames.Add("DirectoryWatcher");
        }

        if ((Target.Platform == UnrealTargetPlatform.Win64) ||
            (Target.Platform == UnrealTargetPlatform.Win32))
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "zlib");

            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "IntelTBB",
                                                         "IntelVTune"
                                                         );
        }
        else if (Target.Platform == UnrealTargetPlatform.Mac)
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "IntelTBB",
                                                         "zlib",
                                                         "PLCrashReporter",
                                                         "rd_route"
                                                         );
            PublicFrameworks.AddRange(new string[] { "Cocoa", "Carbon", "IOKit", "Security" });

            if (Target.bBuildEditor == true)
            {
                PublicAdditionalLibraries.Add("/System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/Current/MultitouchSupport");
            }
        }
        else if (Target.Platform == UnrealTargetPlatform.IOS || Target.Platform == UnrealTargetPlatform.TVOS)
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "zlib"
                                                         );
            PublicFrameworks.AddRange(new string[] { "UIKit", "Foundation", "AudioToolbox", "AVFoundation", "GameKit", "StoreKit", "CoreVideo", "CoreMedia", "CoreGraphics", "GameController", "SystemConfiguration" });
            if (Target.Platform == UnrealTargetPlatform.IOS)
            {
                PublicFrameworks.AddRange(new string[] { "CoreMotion", "AdSupport", "WebKit" });
                AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                             "PLCrashReporter"
                                                             );
            }

            PrivateIncludePathModuleNames.Add("ApplicationCore");

            bool bSupportAdvertising = Target.Platform == UnrealTargetPlatform.IOS;
            if (bSupportAdvertising)
            {
                PublicFrameworks.AddRange(new string[] { "iAD" });
            }
        }
        else if (Target.Platform == UnrealTargetPlatform.Android)
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "cxademangle",
                                                         "zlib"
                                                         );
        }
        else if (Target.IsInPlatformGroup(UnrealPlatformGroup.Unix))
        {
            PublicIncludePaths.Add(string.Format("Runtime/Core/Public/{0}", Target.Platform.ToString()));
            AddEngineThirdPartyPrivateStaticDependencies(Target,
                                                         "zlib",
                                                         "jemalloc",
                                                         "elftoolchain"
                                                         );

            // Core uses dlopen()
            PublicAdditionalLibraries.Add("dl");
        }
        else if (Target.Platform == UnrealTargetPlatform.HTML5)
        {
            PrivateDependencyModuleNames.Add("HTML5JS");
            PrivateDependencyModuleNames.Add("MapPakDownloader");
        }
        else if (Target.Platform == UnrealTargetPlatform.PS4)
        {
            PublicAdditionalLibraries.Add("SceRtc_stub_weak"); //ORBIS SDK rtc.h, used in PS4Time.cpp
        }

        if (Target.bCompileICU == true)
        {
            AddEngineThirdPartyPrivateStaticDependencies(Target, "ICU");
        }
        PublicDefinitions.Add("UE_ENABLE_ICU=" + (Target.bCompileICU ? "1" : "0")); // Enable/disable (=1/=0) ICU usage in the codebase. NOTE: This flag is for use while integrating ICU and will be removed afterward.

        // If we're compiling with the engine, then add Core's engine dependencies
        if (Target.bCompileAgainstEngine == true)
        {
            if (!Target.bBuildRequiresCookedData)
            {
                DynamicallyLoadedModuleNames.AddRange(new string[] { "DerivedDataCache" });
            }
        }


        // On Windows platform, VSPerfExternalProfiler.cpp needs access to "VSPerf.h".  This header is included with Visual Studio, but it's not in a standard include path.
        if (Target.Platform == UnrealTargetPlatform.Win32 || Target.Platform == UnrealTargetPlatform.Win64)
        {
            var VisualStudioVersionNumber = "11.0";
            var SubFolderName             = (Target.Platform == UnrealTargetPlatform.Win64) ? "x64/PerfSDK" : "PerfSDK";

            string PerfIncludeDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), String.Format("Microsoft Visual Studio {0}/Team Tools/Performance Tools/{1}", VisualStudioVersionNumber, SubFolderName));

            if (File.Exists(Path.Combine(PerfIncludeDirectory, "VSPerf.h")))
            {
                PrivateIncludePaths.Add(PerfIncludeDirectory);
                PublicDefinitions.Add("WITH_VS_PERF_PROFILER=1");
            }
            else
            {
                PublicDefinitions.Add("WITH_VS_PERF_PROFILER=0");
            }
        }

        WhitelistRestrictedFolders.Add("Private/NoRedist");

        if (Target.Platform == UnrealTargetPlatform.XboxOne)
        {
            PublicDefinitions.Add("WITH_DIRECTXMATH=1");
        }
        else if ((Target.Platform == UnrealTargetPlatform.Win64) ||
                 (Target.Platform == UnrealTargetPlatform.Win32))
        {
            // To enable this requires Win8 SDK
            PublicDefinitions.Add("WITH_DIRECTXMATH=0");  // Enable to test on Win64/32.

            //PublicDependencyModuleNames.AddRange(  // Enable to test on Win64/32.
            //    new string[] {
            //    "DirectXMath"
            //});
        }
        else
        {
            PublicDefinitions.Add("WITH_DIRECTXMATH=0");
        }

        // Decide if validating memory allocator (aka MallocStomp) can be used on the current platform.
        // Run-time validation must be enabled through '-stompmalloc' command line argument.

        bool bWithMallocStomp = false;

        if (Target.Configuration != UnrealTargetConfiguration.Shipping)
        {
            switch (Target.Platform)
            {
            case UnrealTargetPlatform.Mac:
            case UnrealTargetPlatform.Linux:
            //case UnrealTargetPlatform.Win32: // 32-bit windows can technically be supported, but will likely run out of virtual memory space quickly
            //case UnrealTargetPlatform.XboxOne: // XboxOne could be supported, as it's similar enough to Win64
            case UnrealTargetPlatform.Win64:
                bWithMallocStomp = true;
                break;
            }
        }

        PublicDefinitions.Add("WITH_MALLOC_STOMP=" + (bWithMallocStomp ? "1" : "0"));
    }