Ejemplo n.º 1
0
    public UnrealLightmass(TargetInfo Target)
    {
        PublicIncludePaths.Add("Runtime/Launch/Public");

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

        Definitions.Add("UE_LIGHTMASS=1");

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

            // Unreallightmass requires GetProcessMemoryInfo exported by psapi.dll. http://msdn.microsoft.com/en-us/library/windows/desktop/ms683219(v=vs.85).aspx
            PublicAdditionalLibraries.Add("psapi.lib");
            PrivateDependencyModuleNames.AddRange(
                new string[] {
                "Messaging",
            }
                );
        }
        else if (Target.Platform == UnrealTargetPlatform.Mac || Target.Platform == UnrealTargetPlatform.Linux)
        {
            // On Mac/Linux UnrealLightmass is executed locally and communicates with the editor using Messaging module instead of SwarmAgent
            // @todo: allow for better plug-in support in standalone Slate apps
            PrivateDependencyModuleNames.AddRange(
                new string[] {
                "Networking",
                "Sockets",
                "Messaging",
                "UdpMessaging",
            }
                );

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

        // Lightmass ray tracing is 8% faster with buffer security checks disabled due to fixed size arrays on the stack in the kDOP ray tracing functions
        // Warning: This means buffer overwrites will not be detected
        bEnableBufferSecurityChecks = false;

        PrivateIncludePaths.Add("Runtime/Launch/Private");                      // For LaunchEngineLoop.cpp include
        PrivateIncludePaths.Add("Programs/UnrealLightmass/Private/Launch");
        PrivateIncludePaths.Add("Programs/UnrealLightmass/Private/ImportExport");
        PrivateIncludePaths.Add("Programs/UnrealLightmass/Private/CPUSolver");
        PrivateIncludePaths.Add("Programs/UnrealLightmass/Private/Lighting");
        PrivateIncludePaths.Add("Programs/UnrealLightmass/Private/LightmassCore");
        PrivateIncludePaths.Add("Programs/UnrealLightmass/Private/LightmassCore/Misc");
        PrivateIncludePaths.Add("Programs/UnrealLightmass/Private/LightmassCore/Math");
        PrivateIncludePaths.Add("Programs/UnrealLightmass/Private/LightmassCore/Templates");
        PrivateIncludePaths.Add("Programs/UnrealLightmass/Private/LightmassCore/Types");

        // EMBREE
        if (Target.Platform == UnrealTargetPlatform.Win64)
        {
            string SDKDir = UEBuildConfiguration.UEThirdPartySourceDirectory + "IntelEmbree/Embree270/Win64/";

            PublicIncludePaths.Add(SDKDir + "include");
            PublicLibraryPaths.Add(SDKDir + "lib");
            PublicAdditionalLibraries.Add("embree.lib");
            RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/Win64/embree.dll"));
            RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/Win64/tbb.dll"));
            RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/Win64/tbbmalloc.dll"));
            Definitions.Add("USE_EMBREE=1");
        }
        else if (Target.Platform == UnrealTargetPlatform.Mac)
        {
            string SDKDir = UEBuildConfiguration.UEThirdPartySourceDirectory + "IntelEmbree/Embree270/MacOSX/";

            PublicIncludePaths.Add(SDKDir + "include");
            PublicAdditionalLibraries.Add(SDKDir + "lib/libembree.2.dylib");
            RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/Mac/libembree.2.dylib"));
            RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/Mac/libtbb.dylib"));
            RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/Mac/libtbbmalloc.dylib"));
            Definitions.Add("USE_EMBREE=1");
        }
        else
        {
            Definitions.Add("USE_EMBREE=0");
        }
    }
Ejemplo n.º 2
0
    public SimplygonSwarm(ReadOnlyTargetRules Target) : base(Target)
    {
        PublicIncludePaths.Add("Developer/SimplygonSwarm/Public");
        PrivateIncludePaths.Add("Developer/SimplygonSwarm/Private");

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

        PrivateDependencyModuleNames.AddRange(
            new string[] {
            "Core",
            "CoreUObject",
            "Engine",
            "RenderCore",
            "RawMesh",
            "MeshBoneReduction",
            "ImageWrapper",
            "HTTP",
            "Json",
            "UnrealEd",
            "MaterialUtilities"
        }
            );

        PrivateIncludePathModuleNames.AddRange(
            new string[] {
            "MeshUtilities",
            "MaterialUtilities",
            "SimplygonMeshReduction",
            "MeshReductionInterface"
        }
            );

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


        AddEngineThirdPartyPrivateStaticDependencies(Target, "Simplygon");
        AddEngineThirdPartyPrivateStaticDependencies(Target, "SSF");
        AddEngineThirdPartyPrivateStaticDependencies(Target, "SPL");
        AddEngineThirdPartyPrivateDynamicDependencies(Target, "PropertyEditor");

        string SimplygonPath = Target.UEThirdPartySourceDirectory + "NotForLicensees/Simplygon/Simplygon-latest/Inc/SimplygonSDK.h";

        if (Target.Platform == UnrealTargetPlatform.Win64 && File.Exists(SimplygonPath))
        {
            PrecompileForTargets = PrecompileTargetsType.Editor;
        }
        else
        {
            PrecompileForTargets = PrecompileTargetsType.None;
        }
    }
Ejemplo n.º 3
0
    public VulkanRHI(TargetInfo Target)
    {
        PrivateIncludePaths.Add("Runtime/Vulkan/Private");

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

        if (Target.Platform == UnrealTargetPlatform.Win32 || Target.Platform == UnrealTargetPlatform.Win64)
        {
            string VulkanSDKPath = Environment.GetEnvironmentVariable("VULKAN_SDK");
            bool   bSDKInstalled = !String.IsNullOrEmpty(VulkanSDKPath);
            if (bSDKInstalled)
            {
                // If the user has an installed SDK, use that instead
                PrivateIncludePaths.Add(VulkanSDKPath + "/Include");
                // Older SDKs have an extra subfolder
                PrivateIncludePaths.Add(VulkanSDKPath + "/Include/vulkan");

                if (Target.Platform == UnrealTargetPlatform.Win32)
                {
                    PublicLibraryPaths.Add(VulkanSDKPath + "/Source/lib32");
                }
                else
                {
                    PublicLibraryPaths.Add(VulkanSDKPath + "/Source/lib");
                }

                PublicAdditionalLibraries.Add("vulkan-1.lib");
                PublicAdditionalLibraries.Add("vkstatic.1.lib");
            }
            else
            {
                AddEngineThirdPartyPrivateStaticDependencies(Target, "Vulkan");
            }
        }
        else
        {
            string VulkanSDKPath = Environment.GetEnvironmentVariable("VULKAN_SDK");

            bool bHaveVulkan = false;
            if (Target.Platform == UnrealTargetPlatform.Android)
            {
                // Note: header is the same for all architectures so just use arch-arm
                string NDKPath = Environment.GetEnvironmentVariable("NDKROOT");
                string NDKVulkanIncludePath = NDKPath + "/platforms/android-24/arch-arm/usr/include/vulkan";

                // Use NDK Vulkan header if discovered, or VulkanSDK if available
                if (File.Exists(NDKVulkanIncludePath + "/vulkan.h"))
                {
                    bHaveVulkan = true;
                    PrivateIncludePaths.Add(NDKVulkanIncludePath);
                }
                else
                if (!String.IsNullOrEmpty(VulkanSDKPath))
                {
                    // If the user has an installed SDK, use that instead
                    bHaveVulkan = true;
                    PrivateIncludePaths.Add(VulkanSDKPath + "/Include/vulkan");
                }
                else
                {
                    // Fall back to the Windows Vulkan SDK (the headers are the same)
                    bHaveVulkan = true;
                    PrivateIncludePaths.Add(UEBuildConfiguration.UEThirdPartySourceDirectory + "Vulkan/Windows/Include/vulkan");
                }
            }
            else if (!String.IsNullOrEmpty(VulkanSDKPath))
            {
                bHaveVulkan = true;
                PrivateIncludePaths.Add(VulkanSDKPath + "/Include");

                if (Target.Platform == UnrealTargetPlatform.Win32)
                {
                    PublicLibraryPaths.Add(VulkanSDKPath + "/Bin32");
                }
                else
                {
                    PublicLibraryPaths.Add(VulkanSDKPath + "/Bin");
                }

                PublicAdditionalLibraries.Add("vulkan-1.lib");
                PublicAdditionalLibraries.Add("vkstatic.1.lib");
            }

            if (bHaveVulkan)
            {
                if (Target.Configuration != UnrealTargetConfiguration.Shipping)
                {
                    PrivateIncludePathModuleNames.AddRange(
                        new string[]
                    {
                        "TaskGraph",
                    }
                        );
                }
            }
            else
            {
                PrecompileForTargets = PrecompileTargetsType.None;
            }
        }
    }
Ejemplo n.º 4
0
    public MainFrame(TargetInfo Target)
    {
        PublicDependencyModuleNames.AddRange(
            new string[]
        {
            "Documentation",
        }
            );

        PrivateDependencyModuleNames.AddRange(
            new string[] {
            "Core",
            "CoreUObject",
            "CrashTracker",
            "Engine",
            "EngineSettings",
            "InputCore",
            "RHI",
            "ShaderCore",
            "Slate",
            "SlateCore",
            "EditorStyle",
            "SourceControl",
            "SourceControlWindows",
            "TargetPlatform",
            "DesktopPlatform",
            "UnrealEd",
            "WorkspaceMenuStructure",
            "MessageLog",
//				"SearchUI",
            "TranslationEditor",
            "Projects",
            "DeviceProfileEditor",
            "UndoHistory",
        }
            );

        PrivateIncludePathModuleNames.AddRange(
            new string[] {
            "AssetTools",
            "DesktopPlatform",
            "GameProjectGeneration",
            "ProjectTargetPlatformEditor",
            "LevelEditor",
            "OutputLog",
            "SuperSearch",
            "Settings",
            "SourceCodeAccess",
            "Toolbox",
            "LocalizationDashboard",
        }
            );

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

        DynamicallyLoadedModuleNames.AddRange(
            new string[] {
            "AssetTools",
            "DesktopPlatform",
            "Documentation",
            "GameProjectGeneration",
            "ProjectTargetPlatformEditor",
            "LevelEditor",
            "OutputLog",
            "SuperSearch",
            "TranslationEditor",
            "SourceCodeAccess",
            "EditorLiveStreaming",
            "HotReload",
            "LocalizationDashboard"
        }
            );
    }
    public Launch(TargetInfo Target)
    {
        PrivateIncludePaths.Add("Runtime/Launch/Private");

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

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

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

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

            if ((Target.Platform == UnrealTargetPlatform.Win32) ||
                (Target.Platform == UnrealTargetPlatform.Win64))
            {
                DynamicallyLoadedModuleNames.Add("D3D12RHI");
                DynamicallyLoadedModuleNames.Add("D3D11RHI");
                DynamicallyLoadedModuleNames.Add("XAudio2");
            }
            else if (Target.Platform == UnrealTargetPlatform.Mac)
            {
                DynamicallyLoadedModuleNames.Add("CoreAudio");
            }
            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",
                "AutomationWorker",
            }
                );
        }

        DynamicallyLoadedModuleNames.AddRange(
            new string[] {
            "Media",
            "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" });
        }

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

        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[] {
                "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");
            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("ALAudio");
            if (Target.Architecture == "-win32")
            {
                PrivateDependencyModuleNames.Add("HTML5Win32");
                PublicIncludePathModuleNames.Add("HTML5Win32");
            }
            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"
            }
                );
        }
    }
Ejemplo n.º 6
0
    public UnrealCLR(ReadOnlyTargetRules Target) : base(Target)
    {
        PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;

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

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

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

        PrivateDependencyModuleNames.AddRange(new string[] {
            "AIModule",
            "CoreUObject",
            "Engine",
            "HeadMountedDisplay",
            "InputCore",
            "Slate",
            "SlateCore"
        });

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

        if (Target.bBuildEditor)
        {
            PrivateDependencyModuleNames.AddRange(new string[] {
                "UnrealEd"
            });
        }
        else
        {
            string runtimePath = null;

            if (Target.Platform == UnrealTargetPlatform.Win64)
            {
                runtimePath = Path.Combine(ModuleDirectory, "../../Runtime/Win64");
            }
            else if (Target.Platform == UnrealTargetPlatform.Linux)
            {
                runtimePath = Path.Combine(ModuleDirectory, "../../Runtime/Linux");
            }
            else if (Target.Platform == UnrealTargetPlatform.Mac)
            {
                runtimePath = Path.Combine(ModuleDirectory, "../../Runtime/Mac");
            }

            string[] files = Directory.GetFiles(runtimePath, "*.*", SearchOption.AllDirectories);

            foreach (string file in files)
            {
                RuntimeDependencies.Add(file);
            }

            files = Directory.GetFiles(Path.Combine(ModuleDirectory, "../../Managed"), "*.*", SearchOption.AllDirectories);

            foreach (string file in files)
            {
                RuntimeDependencies.Add(file);
            }

            string userAssemblies = Path.Combine(PluginDirectory, "../../Managed");

            if (Directory.Exists(userAssemblies))
            {
                files = Directory.GetFiles(userAssemblies, "*.*", SearchOption.AllDirectories);

                foreach (string file in files)
                {
                    RuntimeDependencies.Add(file);
                }
            }
        }
    }
Ejemplo n.º 7
0
    public ImGui(TargetInfo Target)
#endif
    {
#if WITH_FORWARDED_MODULE_RULES_CTOR
        bool bBuildEditor = Target.bBuildEditor;
#else
        bool bBuildEditor = (Target.Type == TargetRules.TargetType.Editor);
#endif

        PublicIncludePaths.AddRange(
            new string[] {
            "ImGui/Public",
            Path.Combine(ModuleDirectory, "../ThirdParty/ImGuiLibrary/Include")
            // ... add public include paths required here ...
        }
            );


        PrivateIncludePaths.AddRange(
            new string[] {
            "ImGui/Private",
            "ThirdParty/ImGuiLibrary/Private"
            // ... add other private include paths required here ...
        }
            );


        PublicDependencyModuleNames.AddRange(
            new string[]
        {
            "Core",
            "Projects"
            // ... add other public dependencies that you statically link with here ...
        }
            );


        PrivateDependencyModuleNames.AddRange(
            new string[]
        {
            "CoreUObject",
            "Engine",
            "InputCore",
            "Slate",
            "SlateCore"
            // ... add private dependencies that you statically link with here ...
        }
            );


        if (bBuildEditor)
        {
            PrivateDependencyModuleNames.AddRange(
                new string[]
            {
                "EditorStyle",
                "Settings",
                "UnrealEd",
            }
                );
        }


        DynamicallyLoadedModuleNames.AddRange(
            new string[]
        {
            // ... add any modules that your module loads dynamically here ...
        }
            );
    }
Ejemplo n.º 8
0
        public IOSTapJoy(ReadOnlyTargetRules Target) : base(Target)
        {
            PublicIncludePaths.AddRange(
                new string[] {
                // ... add public include paths required here ...
            }
                );

            PrivateIncludePaths.AddRange(
                new string[] {
                // ... add other private include paths required here ...
            }
                );

            PublicDependencyModuleNames.AddRange(
                new string[]
            {
                "Core",
                // ... add other public dependencies that you statically link with here ...
            }
                );

            PrivateDependencyModuleNames.AddRange(
                new string[]
            {
                "Advertising",
                "ApplicationCore",
                // ... add private dependencies that you statically link with here ...
            }
                );

            PublicIncludePathModuleNames.Add("Advertising");

            DynamicallyLoadedModuleNames.AddRange(
                new string[]
            {
                // ... add any modules that your module loads dynamically here ...
            }
                );

            // Add the TapJoy framework
            PublicAdditionalFrameworks.Add(
                new Framework(
                    "TapJoy",                                                                                   // Framework name
                    "../../ThirdPartyFrameworks/Tapjoy.embeddedframework.zip",                                  // Zip name
                    "Resources/TapjoyResources.bundle"                                                          // Resources we need copied and staged
                    )
                );

            PublicFrameworks.AddRange(
                new string[]
            {
                "EventKit",
                "MediaPlayer",
                "AdSupport",
                "CoreLocation",
                "SystemConfiguration",
                "MessageUI",
                "Security",
                "CoreTelephony",
                "Twitter",
                "Social"
            }
                );
        }
Ejemplo n.º 9
0
    public FroxIntelRealSensePlugin(ReadOnlyTargetRules Target) : base(Target)
    {
        /*
         * if (Target.Platform == UnrealTargetPlatform.Win64)
         * {
         *  PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "../ThirdParty/FroxIntelRealSense/", "Frox"));
         *
         *  // Add the import library
         *  string BinariesPath = Path.Combine(ModuleDirectory, "../ThirdParty/Frox/", "x64", "Release");
         *  PublicLibraryPaths.Add(BinariesPath);
         *  PublicAdditionalLibraries.Add("FroxIntelRealSense.lib");
         *
         *  // Delay-load the DLL, so we can load it from the right place first
         *  PublicDelayLoadDLLs.Add("FroxIntelRealSense.dll");
         *
         *  string PlatformString = Target.Platform.ToString();
         *  string ProjectPath = Path.Combine(ModuleDirectory, "../..");
         *  string ProjectBinariesPath = Path.Combine(ProjectPath, "Binaries/", PlatformString);
         *  CopyFile(Path.Combine(BinariesPath, "FroxIntelRealSense.dll"), ProjectBinariesPath);
         *  CopyFile(Path.Combine(BinariesPath, "realsense2.dll"), ProjectBinariesPath);
         * }
         * else if (Target.Platform == UnrealTargetPlatform.Mac)
         * {
         *  PublicDelayLoadDLLs.Add(Path.Combine(ModuleDirectory, "Mac", "Release", "libFroxIntelRealSense.dylib"));
         * }
         */
        PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;

        PublicIncludePaths.AddRange(
            new string[] {
            // ... add public include paths required here ...
        }
            );


        PrivateIncludePaths.AddRange(
            new string[] {
            // ... add other private include paths required here ...
        }
            );


        PublicDependencyModuleNames.AddRange(
            new string[]
        {
            "Core",
            "CoreUObject",
            "Engine",
            "InputCore",
            "FroxPluginLibrary",
            "FroxPlugin",
            "FroxDepthSensorPlugin",
            "Projects"
            // ... add other public dependencies that you statically link with here ...
        }
            );


        PrivateDependencyModuleNames.AddRange(
            new string[]
        {
            // ... add private dependencies that you statically link with here ...
        }
            );


        DynamicallyLoadedModuleNames.AddRange(
            new string[]
        {
            // ... add any modules that your module loads dynamically here ...
        }
            );
    }
Ejemplo n.º 10
0
        public ScriptPlugin(TargetInfo Target)
        {
            PublicIncludePaths.AddRange(
                new string[] {
                //"Programs/UnrealHeaderTool/Public",
                // ... add other public include paths required here ...
            }
                );

            PrivateIncludePaths.AddRange(
                new string[] {
                // ... add other private include paths required here ...
            }
                );

            PublicDependencyModuleNames.AddRange(
                new string[]
            {
                "Core",
                "CoreUObject",
                "Engine",
                "InputCore",
                "SlateCore",
                // ... add other public dependencies that you statically link with here ...
            }
                );

            if (UEBuildConfiguration.bBuildEditor == true)
            {
                PublicDependencyModuleNames.AddRange(
                    new string[]
                {
                    "UnrealEd",
                }
                    );
            }


            DynamicallyLoadedModuleNames.AddRange(
                new string[]
            {
                // ... add any modules that your module loads dynamically here ...
            }
                );

            var LuaPath         = Path.Combine("..", "Plugins", "ScriptPlugin", "Source", "Lua");
            var LuaLibDirectory = Path.Combine(LuaPath, "Lib", Target.Platform.ToString(), "Release");
            var LuaLibPath      = Path.Combine(LuaLibDirectory, "Lua.lib");

            if (File.Exists(LuaLibPath))
            {
                Definitions.Add("WITH_LUA=1");

                // Path to Lua include files
                var IncludePath = Path.GetFullPath(Path.Combine(LuaPath, "Include"));
                PrivateIncludePaths.Add(IncludePath);

                // Lib file
                PublicLibraryPaths.Add(LuaLibDirectory);
                PublicAdditionalLibraries.Add(LuaLibPath);

                Log.TraceVerbose("LUA Integration enabled: {0}", IncludePath);
            }
            else
            {
                Log.TraceVerbose("LUA Integration NOT enabled");
            }
        }
Ejemplo n.º 11
0
    public HoudiniEngineRuntime(ReadOnlyTargetRules Target) : base(Target)
    {
        bPrecompile          = true;
        PCHUsage             = PCHUsageMode.UseSharedPCHs;
        PrivatePCHHeaderFile = "Private/HoudiniEngineRuntimePrivatePCH.h";

        // Check if we are compiling for unsupported platforms.
        if (Target.Platform != UnrealTargetPlatform.Win64 &&
            Target.Platform != UnrealTargetPlatform.Mac &&
            Target.Platform != UnrealTargetPlatform.Linux &&
            Target.Platform != UnrealTargetPlatform.Switch)
        {
            System.Console.WriteLine(string.Format("Houdini Engine: Compiling for untested target platform.  Please let us know how it goes!"));
        }

        // Find HFS
        string HFSPath = GetHFSPath();

        HFSPath = HFSPath.Replace("\\", "/");

        if (HFSPath != "")
        {
            string Log = string.Format("Houdini Engine: Found Houdini in {0}", HFSPath);
            System.Console.WriteLine(Log);

            PlatformID buildPlatformId = Environment.OSVersion.Platform;
            if (buildPlatformId == PlatformID.Win32NT)
            {
                PublicDefinitions.Add("HOUDINI_ENGINE_HFS_PATH_DEFINE=" + HFSPath);
            }
        }

        // Find the HAPI include directory
        string HAPIIncludePath = HFSPath + "/toolkit/include/HAPI";

        if (!Directory.Exists(HAPIIncludePath))
        {
            // Add the custom include path as well in case the toolkit path doesn't exist yet.
            HAPIIncludePath = HFSPath + "/custom/houdini/include/HAPI";

            if (!Directory.Exists(HAPIIncludePath))
            {
                System.Console.WriteLine(string.Format("Couldn't find the HAPI include folder!"));
                HAPIIncludePath = "";
            }
        }

        if (HAPIIncludePath != "")
        {
            PublicIncludePaths.Add(HAPIIncludePath);
        }

        PublicIncludePaths.AddRange(
            new string[] {
            Path.Combine(ModuleDirectory, "Public/HAPI"),
            Path.Combine(ModuleDirectory, "Public")
        }
            );

        PrivateIncludePaths.AddRange(
            new string[] {
            "HoudiniEngineRuntime/Private"
        }
            );

        // Add common dependencies.
        PublicDependencyModuleNames.AddRange(
            new string[]
        {
            "Core",
            "CoreUObject",
            "Engine",
            "RenderCore",
            "ShaderCore",
            "InputCore",
            "RHI",
            "Foliage",
            "Landscape"
        }
            );

        PrivateDependencyModuleNames.AddRange(
            new string[]
        {
            // ... add private dependencies that you statically link with here ...
        }
            );

        if (Target.bBuildEditor == true)
        {
            PrivateDependencyModuleNames.AddRange(
                new string[]
            {
                "AppFramework",
                "AssetTools",
                "EditorStyle",
                "EditorWidgets",
                "LevelEditor",
                "MainFrame",
                "MeshPaint",
                "Projects",
                "PropertyEditor",
                "RawMesh",
                "Settings",
                "Slate",
                "SlateCore",
                "TargetPlatform",
                "UnrealEd",
                "ApplicationCore",
            }
                );
        }

        DynamicallyLoadedModuleNames.AddRange(
            new string[]
        {
            // ... add any modules that your module loads dynamically here ...
        }
            );
    }
    public UnrealEnginePython(TargetInfo Target)
    {
        PublicIncludePaths.AddRange(
            new string[] {
            "UnrealEnginePython/Public",
            // ... add public include paths required here ...
        }
            );


        PrivateIncludePaths.AddRange(
            new string[] {
            "UnrealEnginePython/Private",
            // ... add other private include paths required here ...
        }
            );


        PublicDependencyModuleNames.AddRange(
            new string[]
        {
            "Core",
            "Sockets",
            "Networking"
            // ... add other public dependencies that you statically link with here ...
        }
            );


        PrivateDependencyModuleNames.AddRange(
            new string[]
        {
            "CoreUObject",
            "Engine",
            "InputCore",
            "Slate",
            "SlateCore",
            "MovieScene",
            "LevelSequence",
            // ... add private dependencies that you statically link with here ...
        }
            );


        DynamicallyLoadedModuleNames.AddRange(
            new string[]
        {
            // ... add any modules that your module loads dynamically here ...
        }
            );


        if (UEBuildConfiguration.bBuildEditor)
        {
            PrivateDependencyModuleNames.AddRange(new string[] {
                "UnrealEd",
                "LevelEditor",
                "BlueprintGraph",
                "Projects",
                "Sequencer",
                "SequencerWidgets",
                "AssetTools",
                "LevelSequenceEditor",
                "MovieSceneTools",
                "MovieSceneTracks",
                "CinematicCamera",
                "EditorStyle",
                "GraphEditor",
                "UMGEditor",
                "AIGraph",
            });
        }

        if ((Target.Platform == UnrealTargetPlatform.Win64) || (Target.Platform == UnrealTargetPlatform.Win32))
        {
            if (pythonHome == "")
            {
                pythonHome = DiscoverPythonPath(windowsKnownPaths);
                if (pythonHome == "")
                {
                    throw new System.Exception("Unable to find Python installation");
                }
            }
            System.Console.WriteLine("Using Python at: " + pythonHome);
            PublicIncludePaths.Add(pythonHome);
            string libPath = GetWindowsPythonLibFile(pythonHome);
            PublicLibraryPaths.Add(Path.GetDirectoryName(libPath));
            PublicAdditionalLibraries.Add(libPath);
        }
        else if (Target.Platform == UnrealTargetPlatform.Mac)
        {
            if (pythonHome == "")
            {
                pythonHome = DiscoverPythonPath(macKnownPaths);
                if (pythonHome == "")
                {
                    throw new System.Exception("Unable to find Python installation");
                }
            }
            System.Console.WriteLine("Using Python at: " + pythonHome);
            PublicIncludePaths.Add(pythonHome);
            string libPath = GetMacPythonLibFile(pythonHome);
            PublicLibraryPaths.Add(Path.GetDirectoryName(libPath));
            PublicDelayLoadDLLs.Add(libPath);
            Definitions.Add(string.Format("UNREAL_ENGINE_PYTHON_ON_MAC"));
        }
        else if (Target.Platform == UnrealTargetPlatform.Linux)
        {
            if (pythonHome == "python35")
            {
                PublicIncludePaths.Add("/usr/include/python3.5m");
                PublicAdditionalLibraries.Add("/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu/libpython3.5.so");
            }
            else if (pythonHome == "python27")
            {
                PublicIncludePaths.Add("/usr/include/python2.7");
                PublicAdditionalLibraries.Add("/usr/lib/python2.7/config-x86_64-linux-gnu/libpython2.7.so");
            }
            Definitions.Add(string.Format("UNREAL_ENGINE_PYTHON_ON_LINUX"));
        }
    }
Ejemplo n.º 13
0
    public GameSparks(TargetInfo Target)
    {
        Definitions.Add("GS_BUILDING_MODULE=1");
        Definitions.Add("GAMESPARKS_PACKAGE=1");

        PrivateDependencyModuleNames.AddRange(
            new string[] {
            "Core",
            "CoreUObject",
            "Engine",
            "InputCore",
            "OnlineSubsystemUtils",
            "OnlineSubsystem",     // required for OnlineDelegateMacros.h
            "Json",
        }
            );

        PublicIncludePaths.Add(Path.Combine(GameSparksPath, "include"));

        PrivateIncludePaths.AddRange(new string[] {
            Path.Combine(GameSparksPath, "src", "GameSparks"),
            Path.Combine(GameSparksPath, "src", "cjson"),
            Path.Combine(GameSparksPath, "src", "easywsclient"),
            Path.Combine(GameSparksPath, "src", "google"),
            Path.Combine(GameSparksPath, "src", "hmac"),
            Path.Combine(GameSparksPath, "src", "mbedtls"),
            Path.Combine(GameSparksPath, "src")
        });

        switch (Target.Platform)
        {
        case UnrealTargetPlatform.Win32:
            break;

        case UnrealTargetPlatform.Win64:
            break;

        case UnrealTargetPlatform.Android:
            break;

        case UnrealTargetPlatform.IOS:
            PublicAdditionalLibraries.Add("c++");
            break;

        case UnrealTargetPlatform.Mac:
            break;

        case UnrealTargetPlatform.PS4:
            break;

        case UnrealTargetPlatform.XboxOne:
            break;

        case UnrealTargetPlatform.Linux:
            break;

        case UnrealTargetPlatform.HTML5:
        default:
            throw new NotImplementedException("This target platform is not configured for GameSparks SDK: " + Target.Platform.ToString());
        }
    }
Ejemplo n.º 14
0
    public MsgCore(ReadOnlyTargetRules Target) : base(Target)
    {
        PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;

        PublicIncludePaths.AddRange(
            new string[] {
            "MsgCore/Public",
            "MsgCore/Public/SubClass"

            // ... add public include paths required here ...
        }
            );


        PrivateIncludePaths.AddRange(
            new string[] {
            "MsgCore/Private",
            "MsgCore/Private/SubClass"
            // ... add other private include paths required here ...
        }
            );


        PublicDependencyModuleNames.AddRange(
            new string[]
        {
            "Core",
            "HTTP",
            "JsonUtilities",
            "Json",
            "Networking",
            // ... add other public dependencies that you statically link with here ...
        }
            );


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

            // ... add private dependencies that you statically link with here ...
        }
            );


        DynamicallyLoadedModuleNames.AddRange(
            new string[]
        {
            // ... add any modules that your module loads dynamically here ...
        }
            );

        if (Target.Platform == UnrealTargetPlatform.Android)
        {
        }
        else if (Target.Platform == UnrealTargetPlatform.IOS)
        {
            PublicFrameworks.AddRange(
                new string[]
            {
                "SystemConfiguration",
                "CoreMotion",
                "CoreGraphics",
            }
                );
        }
    }
Ejemplo n.º 15
0
    public Linter(TargetInfo Target)
    {
        PublicIncludePaths.AddRange(
            new string[] {
            "Linter/Public",

            /* @PlasticWax #PlasticWax - Added Search Paths here so that Linter
             *  can find relevent engine headers */
            "Developer/AssetTools/Public/",
            "Developer/AssetTools/Private/",
            "Developer/AssetTools/Classes/",
            "Editor/ContentBrowser/Public/",
            "Editor/ContentBrowser/Private/",
            "Editor/ContentBrowser/Classes/",
            "Runtime/AssetRegistry/Public/",
            "Runtime/AssetRegistry/Private/",
            "Runtime/AssetRegistry/Classes/",
            "Runtime/Engine/Private",
            "Runtime/Engine/Classes",
            "Runtime/Engine/Public",
            "Runtime/Media/Public/",
            "Runtime/Media/Private/",
            "Runtime/Media/Classes/",
            "Runtime/LevelSequence/Public",
            "Runtime/LevelSequence/Private",
            "Runtime/LevelSequence/Classes",
        }
            );


        PrivateIncludePaths.AddRange(
            new string[] {
            "Linter/Private",

            /* @PlasticWax #PlasticWax - Added Search Paths here so that Linter
             *  can find relevent engine headers */
            "Developer/AssetTools/Public/",
            "Developer/AssetTools/Private/",
            "Developer/AssetTools/Classes/",
            "Editor/ContentBrowser/Public/",
            "Editor/ContentBrowser/Private/",
            "Editor/ContentBrowser/Classes/",
            "Runtime/AssetRegistry/Public/",
            "Runtime/AssetRegistry/Private/",
            "Runtime/AssetRegistry/Classes/",
            "Runtime/Engine/Private",
            "Runtime/Engine/Classes",
            "Runtime/Engine/Public",
            "Runtime/Media/Public/",
            "Runtime/Media/Private/",
            "Runtime/Media/Classes/",
            "Runtime/LevelSequence/Public",
            "Runtime/LevelSequence/Private",
            "Runtime/LevelSequence/Classes",
        }
            );


        PublicDependencyModuleNames.AddRange(
            new string[]
        {
            "Core",
            "LevelSequence", // @PlasticWax #PlasticWax - Have to add the LevelSequence Module so that we can use the LevelSequence Header
            "Paper2D",       // @PlasticWax #PlasticWax - Added this so we can use the Paper2DModule
            // ... add other public dependencies that you statically link with here ...
        }
            );


        PrivateDependencyModuleNames.AddRange(
            new string[]
        {
            "CoreUObject",
            "Engine",
            "Slate",
            "SlateCore",
            "UnrealEd",
            "UMG",
            "UMGEditor",
            "ContentBrowser",
            "AssetTools",
            "EditorStyle",
            "Projects",
            "MediaAssets",
            "Landscape",
            "AIModule",
            "NetworkReplayStreaming",
            "BlueprintGraph"
            // ... add private dependencies that you statically link with here ...
        }
            );


        DynamicallyLoadedModuleNames.AddRange(
            new string[]
        {
            //"LevelSequence",
        }
            );
    }
    public OnlineSubsystemFacebook(ReadOnlyTargetRules Target) : base(Target)
    {
        Definitions.Add("ONLINESUBSYSTEMFACEBOOK_PACKAGE=1");
        PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;

        PrivateIncludePaths.Add("Private");

        PrivateDependencyModuleNames.AddRange(
            new string[] {
            "Core",
            "CoreUObject",
            "ApplicationCore",
            "HTTP",
            "ImageCore",
            "Json",
            "OnlineSubsystem",
        }
            );

        AddEngineThirdPartyPrivateStaticDependencies(Target, "Facebook");

        if (Target.Platform == UnrealTargetPlatform.IOS)
        {
            Definitions.Add("WITH_FACEBOOK=1");
            PrivateIncludePaths.Add("Private/IOS");
        }
        else if (Target.Platform == UnrealTargetPlatform.Android)
        {
            bool   bHasFacebookSDK = false;
            string FacebookNFLDir  = "";
            try
            {
                FacebookNFLDir  = System.IO.Path.Combine(ModuleDirectory, "ThirdParty", "Android", "NotForLicensees", "FacebookSDK");
                bHasFacebookSDK = System.IO.Directory.Exists(FacebookNFLDir);
            }
            catch (System.Exception)
            {
            }

            PrivateIncludePaths.Add("Private/Android");

            if (bHasFacebookSDK)
            {
                string Err = string.Format("Facebook SDK found in {0}", FacebookNFLDir);
                System.Console.WriteLine(Err);

                Definitions.Add("WITH_FACEBOOK=1");
                Definitions.Add("UE4_FACEBOOK_VER=4.19.0");

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

                string PluginPath = Utils.MakePathRelativeTo(ModuleDirectory, Target.RelativeEnginePath);
                AdditionalPropertiesForReceipt.Add(new ReceiptProperty("AndroidPlugin", Path.Combine(PluginPath, "OnlineSubsystemFacebook_UPL.xml")));
            }
            else
            {
                string Err = string.Format("Facebook SDK not found in {0}", FacebookNFLDir);
                System.Console.WriteLine(Err);
                Definitions.Add("WITH_FACEBOOK=0");
            }
        }
        else if (Target.Platform == UnrealTargetPlatform.Win32 || Target.Platform == UnrealTargetPlatform.Win64)
        {
            Definitions.Add("WITH_FACEBOOK=1");
            PrivateIncludePaths.Add("Private/Windows");
        }
        else if (Target.Platform == UnrealTargetPlatform.XboxOne)
        {
            PrivateIncludePaths.Add("Private/XboxOne");
        }
        else if (Target.Platform == UnrealTargetPlatform.PS4)
        {
            PrivateIncludePaths.Add("Private/PS4");
        }
        else
        {
            Definitions.Add("WITH_FACEBOOK=0");
            PrecompileForTargets = PrecompileTargetsType.None;
        }
    }
Ejemplo n.º 17
0
    public Engine(TargetInfo Target)
    {
        SharedPCHHeaderFile = "Runtime/Engine/Public/Engine.h";

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

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

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

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

        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",
            "VectorVM",
            "DatabaseSupport",
        }
            );

        PrivateDependencyModuleNames.AddRange(
            new string[] {
            "AppFramework",
            "Networking",
            "Sockets",
            "SlateReflector",
            "VectorVM",
            "Landscape",
            "UMG",
            "Projects"
        }
            );

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

        DynamicallyLoadedModuleNames.AddRange(
            new string[]
        {
            "MovieSceneCore",
            "MovieSceneCoreTypes",
            "HeadMountedDisplay",
            "StreamingPauseRendering",
        }
            );

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

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

        if (Target.Type == TargetRules.TargetType.Server)
        {
            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",
                    "DesktopTargetPlatform",
                }
                    );
            }
            else if (Target.Platform == UnrealTargetPlatform.Mac)
            {
                DynamicallyLoadedModuleNames.AddRange(
                    new string[] {
                    "MacTargetPlatform",
                    "MacNoEditorTargetPlatform",
                    "MacServerTargetPlatform",
                    "MacClientTargetPlatform",
                    "DesktopTargetPlatform",
                }
                    );
            }
            else if (Target.Platform == UnrealTargetPlatform.Linux)
            {
                DynamicallyLoadedModuleNames.AddRange(
                    new string[] {
                    "LinuxTargetPlatform",
                    "LinuxNoEditorTargetPlatform",
                    "LinuxServerTargetPlatform",
                    "DesktopTargetPlatform",
                }
                    );
            }
        }

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

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

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

        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 us 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");
        }
    }
Ejemplo n.º 18
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",
            "MoviePlayer",
            "Networking",
            "PakFile",
            "Projects",
            "RenderCore",
            "RHI",
            "SandboxFile",
            "Serialization",
            "ApplicationCore",
            "Slate",
            "SlateCore",
            "Sockets",
            "TraceLog",
            "Overlay",
            "UtilityShaders",
            "PreLoadScreen"
        });

        // Set a macro allowing us to switch between debuggame/development configuration
        if (Target.Configuration == UnrealTargetConfiguration.DebugGame)
        {
            PrivateDefinitions.Add("UE_BUILD_DEVELOPMENT_WITH_DEBUGGAME=1");
        }
        else
        {
            PrivateDefinitions.Add("UE_BUILD_DEVELOPMENT_WITH_DEBUGGAME=0");
        }

        // 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");
            PublicDefinitions.Add("WITH_LAUNCHERCHECK=1");
        }
        else
        {
            PublicDefinitions.Add("WITH_LAUNCHERCHECK=0");
        }

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

            if ((Target.Platform == UnrealTargetPlatform.Win32) ||
                (Target.Platform == UnrealTargetPlatform.Win64))
            {
                DynamicallyLoadedModuleNames.AddRange(new string[] {
                    "AudioMixerXAudio2",
                    "D3D11RHI",
                    "D3D12RHI",
                    "XAudio2",
                    "WindowsPlatformFeatures",
                    "GameplayMediaEncoder",
                });
            }
            else if (Target.Platform == UnrealTargetPlatform.HoloLens)
            {
                DynamicallyLoadedModuleNames.Add("D3D11RHI");
                DynamicallyLoadedModuleNames.Add("XAudio2");
                DynamicallyLoadedModuleNames.Add("AudioMixerXAudio2");
            }
            else if (Target.Platform == UnrealTargetPlatform.Mac)
            {
                DynamicallyLoadedModuleNames.AddRange(new string[] {
                    "AudioMixerAudioUnit",
                    "CoreAudio",
                });
            }
            else if (Target.IsInPlatformGroup(UnrealPlatformGroup.Unix))
            {
                DynamicallyLoadedModuleNames.Add("AudioMixerSDL");
                PrivateDependencyModuleNames.Add("Json");
            }

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

            DynamicallyLoadedModuleNames.AddRange(new string[] {
                "Media",
                "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[] {
            "Renderer",
        });

        if (Target.bCompileAgainstEngine)
        {
            PrivateIncludePathModuleNames.AddRange(new string[] {
                "MessagingCommon",
            });

            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.AddRange(new string[] {
                "HTTP",
                "MediaAssets",
            });

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

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

        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.AddRange(new string[] {
                    "MainFrame",
                    "Settings",
                });
            }
            else
            {
                DynamicallyLoadedModuleNames.Add("MainFrame");
            }
        }

        if (Target.IsInPlatformGroup(UnrealPlatformGroup.Android))
        {
            PrivateDependencyModuleNames.Add("OpenGLDrv");
            if (Target.Platform != UnrealTargetPlatform.Lumin)
            {
                PrivateDependencyModuleNames.Add("AndroidAudio");
                PrivateDependencyModuleNames.Add("AudioMixerAndroid");
            }
            // these are, for now, only for basic android
            if (Target.Platform == UnrealTargetPlatform.Android)
            {
                DynamicallyLoadedModuleNames.Add("AndroidRuntimeSettings");
                DynamicallyLoadedModuleNames.Add("AndroidLocalNotification");
            }
            else if (Target.Platform == UnrealTargetPlatform.Lumin)
            {
                DynamicallyLoadedModuleNames.Add("LuminRuntimeSettings");
            }
        }

        if (Target.Platform == UnrealTargetPlatform.IOS || Target.Platform == UnrealTargetPlatform.TVOS)
        {
            PrivateDependencyModuleNames.AddRange(new string[] {
                "AudioMixerAudioUnit",
                "IOSAudio",
                "LaunchDaemonMessages",
            });

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

            // For 4.23 the below check fails for binary builds, re-enabling for all builds UE-77520
            // ES support will be fully removed in 4.24

            // no longer build GL for apps requiring iOS 12 or later
            //if (Target.IOSPlatform.RuntimeVersion < 12.0)
            {
                PublicFrameworks.Add("OpenGLES");
                PrivateDependencyModuleNames.Add("OpenGLDrv");
            }
            // needed for Metal layer
            PublicFrameworks.Add("QuartzCore");
        }

        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.AddRange(
                new string[] {
                "ALAudio",
                "AudioMixerSDL",
                "Analytics",
                "AnalyticsET"
            }
                );
            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.IsInPlatformGroup(UnrealPlatformGroup.Unix))
        {
            PrivateDependencyModuleNames.Add("UnixCommonStartup");
        }

        if (Target.LinkType == TargetLinkType.Monolithic && !Target.bFormalBuild)
        {
            PrivateDefinitions.Add(string.Format("COMPILED_IN_CL={0}", Target.Version.Changelist));
            PrivateDefinitions.Add(string.Format("COMPILED_IN_COMPATIBLE_CL={0}", Target.Version.EffectiveCompatibleChangelist));
            PrivateDefinitions.Add(string.Format("COMPILED_IN_BRANCH_NAME={0}", (Target.Version.BranchName == null || Target.Version.BranchName.Length == 0)? "UE4" : Target.Version.BranchName));
        }
    }
Ejemplo n.º 19
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/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",
            "Json",
            "SlateCore",
            "Slate",
            "InputCore",
            "Messaging",
            "RenderCore",
            "RHI",
            "ShaderCore",
            "AssetRegistry",                     // Here until FAssetData is moved to engine
            "EngineMessages",
            "EngineSettings",
            "SynthBenchmark",
            "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("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");

        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",
                    "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");
    }
Ejemplo n.º 20
0
    public Carla(ReadOnlyTargetRules Target) : base(Target)
    {
        PrivatePCHHeaderFile = "Carla.h";

        if (IsWindows(Target))
        {
            bEnableExceptions = true;
        }

        PublicIncludePaths.AddRange(
            new string[] {
            // ... add public include paths required here ...
        }
            );

        PrivateIncludePaths.AddRange(
            new string[] {
            // ... add other private include paths required here ...
        }
            );

        PublicDependencyModuleNames.AddRange(
            new string[]
        {
            "Core",
            "RenderCore",
            "RHI",
            "ROSIntegration"
            // ... add other public dependencies that you statically link with here ...
        }
            );

        PrivateDependencyModuleNames.AddRange(
            new string[]
        {
            "AIModule",
            "AssetRegistry",
            "CoreUObject",
            "Engine",
            "Foliage",
            "ImageWriteQueue",
            "Json",
            "JsonUtilities",
            "Landscape",
            "PhysX",
            "PhysXVehicles",
            "PhysXVehicleLib",
            "Slate",
            "SlateCore"
            // ... add private dependencies that you statically link with here ...
        }
            );

        DynamicallyLoadedModuleNames.AddRange(
            new string[]
        {
            // ... add any modules that your module loads dynamically here ...
        }
            );

        AddCarlaServerDependency(Target);
    }
        public PsIronSource(ReadOnlyTargetRules Target) : base(Target)
        {
            const bool bEnableIronSource = true;

            PublicDefinitions.Add("WITH_IRONSOURCE=" + (bEnableIronSource ? "1" : "0"));

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

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

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

            if (bEnableIronSource)
            {
                if (Target.Platform == UnrealTargetPlatform.IOS)
                {
                    string PluginPath = Utils.MakePathRelativeTo(ModuleDirectory, Target.RelativeEnginePath);
                    AdditionalPropertiesForReceipt.Add("IOSPlugin", Path.Combine(PluginPath, "PsIronSource_UPL_IOS.xml"));

                    PublicAdditionalFrameworks.Add(
                        new Framework(
                            "IronSource",
                            "../../ThirdParty/iOS/IronSource.embeddedframework.zip"
                            )
                        );

                    PublicAdditionalFrameworks.Add(
                        new Framework(
                            "ISFacebookAdapter",
                            "../../ThirdParty/iOS/ISFacebookAdapter.embeddedframework.zip"
                            )
                        );

                    PublicAdditionalFrameworks.Add(
                        new Framework(
                            "ISUnityAdsAdapter",
                            "../../ThirdParty/iOS/ISUnityAdsAdapter.embeddedframework.zip"
                            )
                        );

                    PublicAdditionalFrameworks.Add(
                        new Framework(
                            "ISAdMobAdapter",
                            "../../ThirdParty/iOS/ISAdMobAdapter.embeddedframework.zip"
                            )
                        );

                    // Dependence for ISAdMobAdapter
                    PublicAdditionalFrameworks.Add(
                        new Framework(
                            "GoogleAppMeasurement",
                            "../../ThirdParty/iOS/GoogleAppMeasurement_is.embeddedframework.zip"
                            )
                        );

                    // Dependence for ISAdMobAdapter
                    PublicAdditionalFrameworks.Add(
                        new Framework(
                            "GoogleMobileAds",
                            "../../ThirdParty/iOS/GoogleMobileAds.embeddedframework.zip"
                            )
                        );

                    // Dependence for ISAdMobAdapter
                    PublicAdditionalFrameworks.Add(
                        new Framework(
                            "GoogleUtilities",
                            "../../ThirdParty/iOS/GoogleUtilities_is.embeddedframework.zip"
                            )
                        );

                    // Dependence for ISAdMobAdapter
                    PublicAdditionalFrameworks.Add(
                        new Framework(
                            "nanopb",
                            "../../ThirdParty/iOS/nanopb_is.embeddedframework.zip"
                            )
                        );

                    PublicAdditionalFrameworks.Add(
                        new Framework(
                            "ISAppLovinAdapter",
                            "../../ThirdParty/iOS/ISAppLovinAdapter.embeddedframework.zip"
                            )
                        );

                    // Dependence for ISAppLovinAdapter
                    PublicAdditionalFrameworks.Add(
                        new Framework(
                            "AppLovinSDK",
                            "../../ThirdParty/iOS/AppLovinSDK.embeddedframework.zip",
                            "AppLovinSDKResources.bundle"
                            )
                        );

                    PublicAdditionalFrameworks.Add(
                        new Framework(
                            "ISVungleAdapter",
                            "../../ThirdParty/iOS/ISVungleAdapter.embeddedframework.zip"
                            )
                        );

                    PublicAdditionalFrameworks.Add(
                        new Framework(
                            "ISAdColonyAdapter",
                            "../../ThirdParty/iOS/ISAdColonyAdapter.embeddedframework.zip"
                            )
                        );

                    PublicAdditionalFrameworks.Add(
                        new Framework(
                            "ISTapjoyAdapter",
                            "../../ThirdParty/iOS/ISTapjoyAdapter.embeddedframework.zip",
                            "TapjoyResources.bundle"
                            )
                        );

                    PublicAdditionalFrameworks.Add(
                        new Framework(
                            "ISInMobiAdapter",
                            "../../ThirdParty/iOS/ISInMobiAdapter.embeddedframework.zip"
                            )
                        );

                    PublicAdditionalLibraries.Add("xml2");
                    PublicAdditionalLibraries.Add("sqlite3");

                    PublicAdditionalFrameworks.Add(
                        new Framework(
                            "ISTikTokAdapter",
                            "../../ThirdParty/iOS/ISTikTokAdapter.embeddedframework.zip",
                            "BUAdSDK.bundle"
                            )
                        );

                    PublicAdditionalLibraries.Add("resolv");

                    PublicAdditionalFrameworks.Add(
                        new Framework(
                            "ISChartboostAdapter",
                            "../../ThirdParty/iOS/ISChartboostAdapter.embeddedframework.zip"
                            )
                        );

                    PublicAdditionalFrameworks.Add(
                        new Framework(
                            "ISMintegralAdapter",
                            "../../ThirdParty/iOS/ISMintegralAdapter.embeddedframework.zip"
                            )
                        );

                    PublicAdditionalFrameworks.Add(
                        new Framework(
                            "ISMyTargetAdapter",
                            "../../ThirdParty/iOS/ISMyTargetAdapter.embeddedframework.zip"
                            )
                        );
                }
                else if (Target.Platform == UnrealTargetPlatform.Android)
                {
                    string PluginPath = Utils.MakePathRelativeTo(ModuleDirectory, Target.RelativeEnginePath);
                    AdditionalPropertiesForReceipt.Add("AndroidPlugin", Path.Combine(PluginPath, "PsIronSource_UPL_Android.xml"));
                }
            }
        }
Ejemplo n.º 22
0
    public CesiumRuntime(ReadOnlyTargetRules Target) : base(Target)
    {
        PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;

        PublicIncludePaths.AddRange(
            new string[] {
            Path.Combine(ModuleDirectory, "../ThirdParty/include")
        }
            );


        PrivateIncludePaths.AddRange(
            new string[] {
            // ... add other private include paths required here ...
        }
            );

        string libPrefix;
        string libPostfix;
        string platform;

        if (Target.Platform == UnrealTargetPlatform.Win64)
        {
            platform   = "Windows-x64";
            libPostfix = ".lib";
            libPrefix  = "";
        }
        else if (Target.Platform == UnrealTargetPlatform.Mac)
        {
            platform   = "Darwin-x64";
            libPostfix = ".a";
            libPrefix  = "lib";
        }
        else if (Target.Platform == UnrealTargetPlatform.Linux)
        {
            platform   = "Linux-x64";
            libPostfix = ".a";
            libPrefix  = "lib";
        }
        else
        {
            platform   = "Unknown";
            libPostfix = ".Unknown";
            libPrefix  = "Unknown";
        }

        string libPath = Path.Combine(ModuleDirectory, "../ThirdParty/lib/" + platform);

        string releasePostfix = "";
        string debugPostfix   = "d";

        bool   preferDebug = (Target.Configuration == UnrealTargetConfiguration.Debug || Target.Configuration == UnrealTargetConfiguration.DebugGame);
        string postfix     = preferDebug ? debugPostfix : releasePostfix;

        string[] libs = new string[]
        {
            "async++",
            "Cesium3DTiles",
            "CesiumAsync",
            "CesiumGeometry",
            "CesiumGeospatial",
            "CesiumGltfReader",
            "CesiumGltf",
            "CesiumJsonReader",
            "CesiumUtility",
            "draco",
            "modp_b64",
            "spdlog",
            "sqlite3",
            "tinyxml2",
            "uriparser"
        };

        if (preferDebug)
        {
            // We prefer Debug, but might still use Release if that's all that's available.
            foreach (string lib in libs)
            {
                string debugPath = Path.Combine(libPath, libPrefix + lib + debugPostfix + libPostfix);
                if (!File.Exists(debugPath))
                {
                    Console.WriteLine("Using release build of cesium-native because a debug build is not available.");
                    preferDebug = false;
                    postfix     = releasePostfix;
                    break;
                }
            }
        }

        PublicAdditionalLibraries.AddRange(libs.Select(lib => Path.Combine(libPath, libPrefix + lib + postfix + libPostfix)));

        PublicDependencyModuleNames.AddRange(
            new string[]
        {
            "Core",
            // ... add other public dependencies that you statically link with here ...
        }
            );


        PrivateDependencyModuleNames.AddRange(
            new string[]
        {
            "RHI",
            "CoreUObject",
            "Engine",
            "MeshDescription",
            "StaticMeshDescription",
            "HTTP",
            "MikkTSpace",
            "LevelSequence",
            "Projects"
        }
            );

        PublicDefinitions.AddRange(
            new string[]
        {
            "SPDLOG_COMPILED_LIB",
            "LIBASYNC_STATIC"
        }
            );

        if (Target.bCompilePhysX && !Target.bUseChaos)
        {
            PrivateDependencyModuleNames.Add("PhysXCooking");
            PrivateDependencyModuleNames.Add("PhysicsCore");
        }
        else
        {
            PrivateDependencyModuleNames.Add("Chaos");
        }

        if (Target.bBuildEditor == true)
        {
            PublicDependencyModuleNames.AddRange(
                new string[] {
                "UnrealEd",
                "Slate",
                "SlateCore",
            }
                );
        }

        DynamicallyLoadedModuleNames.AddRange(
            new string[]
        {
            // ... add any modules that your module loads dynamically here ...
        }
            );

        PCHUsage             = PCHUsageMode.UseExplicitOrSharedPCHs;
        PrivatePCHHeaderFile = "Private/PCH.h";
        CppStandard          = CppStandardVersion.Cpp17;
        bEnableExceptions    = true;
    }
Ejemplo n.º 23
0
    public MidiInterface(ReadOnlyTargetRules Target) : base(Target)
    {
        PublicIncludePaths.AddRange(
            new string[] {
            "MidiInterface/Public"
        }
            );


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


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


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


        if (Target.Platform == UnrealTargetPlatform.Win32 || Target.Platform == UnrealTargetPlatform.Win64)
        {
            Definitions.Add("__WINDOWS_MM__=1");
            PublicAdditionalLibraries.Add("winmm.lib");
        }
        else if (Target.Platform == UnrealTargetPlatform.Mac || Target.Platform == UnrealTargetPlatform.IOS)
        {
            Definitions.Add("__MACOSX_CORE__=1");
            PublicIncludePaths.AddRange(new string[] { "Runtime/Core/Public/Apple" });

            if (Target.Platform == UnrealTargetPlatform.Mac)
            {
                PublicIncludePaths.AddRange(new string[] { "Runtime/Core/Public/Mac" });
            }
            else
            {
                PublicIncludePaths.AddRange(new string[] { "Runtime/Core/Public/IOS" });
            }

            PublicFrameworks.AddRange(new string[]
            {
                "CoreMIDI", "CoreAudio", "CoreFoundation"
            });
        }
        else if (Target.Platform == UnrealTargetPlatform.Linux)
        {
            Definitions.Add("__LINUX_ALSA__=1");

            PublicIncludePaths.Add("Runtime/Core/Public/Linux");

            PublicAdditionalLibraries.AddRange(
                new string[]
            {
                "libasound2.so", "libpthread.so"
            });
        }
    }
    public MeshModelingTools(ReadOnlyTargetRules Target) : base(Target)
    {
        PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;

        PublicIncludePaths.AddRange(
            new string[] {
            // ... add public include paths required here ...
        }
            );


        PrivateIncludePaths.AddRange(
            new string[] {
            // ... add other private include paths required here ...
        }
            );


        PublicDependencyModuleNames.AddRange(
            new string[]
        {
            // These dependencies were commented out when we split out MeshModelingToolsEditorOnly
            // Many of them are editor only and should not be depended on here.  If you re-add any
            // dependent modules, please confirm by "launching" or packaging that you are not introducing
            // editor dependencies
            //
            //"MeshDescription",
            //"ProxyLODMeshReduction", // currently required to be public due to IVoxelBasedCSG API

            "Core",
            "Eigen",
            "InteractiveToolsFramework",
            "GeometricObjects",
            "DynamicMesh",
            "MeshConversion",
            "MeshSolverUtilities",
            "ModelingComponents",
            "ModelingOperators",

            // ... add other public dependencies that you statically link with here ...
        }
            );


        PrivateDependencyModuleNames.AddRange(
            new string[]
        {
            // These dependencies were commented out when we split out MeshModelingToolsEditorOnly
            // Many of them are editor only and should not be depended on here.  If you re-add any
            // dependent modules, please confirm by "launching" or packaging that you are not introducing
            // editor dependencies
            //
            //"RenderCore",
            //"RHI",
            //"MeshUtilities",    // temp for saving mesh asset
            //"UnrealEd",
            //"MeshBuilder",
            //"MeshDescriptionOperations",
            //"MeshUtilitiesCommon",
            //"MeshReductionInterface", // for UE4 standard simplification
            //"ProxyLODMeshReduction", // for mesh merging voxel-based csg
            //"Slate",
            //"SlateCore",

            "CoreUObject",
            "Engine",
            "ModelingOperators",
            "InputCore",

            // ... add private dependencies that you statically link with here ...
        }
            );


        DynamicallyLoadedModuleNames.AddRange(
            new string[]
        {
            // ... add any modules that your module loads dynamically here ...
        }
            );
    }
    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"));
    }
Ejemplo n.º 26
0
    public HoudiniEngineEditor(TargetInfo Target)
    {
        bool   bIsRelease     = true;
        string HFSPath        = "";
        string HoudiniVersion = "15.5.579";

        // Check if we are compiling on unsupported platforms.
        if (Target.Platform != UnrealTargetPlatform.Win64 &&
            Target.Platform != UnrealTargetPlatform.Mac &&
            Target.Platform != UnrealTargetPlatform.Linux)
        {
            string Err = string.Format("Houdini Engine Runtime: Compiling on unsupported platform.");
            System.Console.WriteLine(Err);
            throw new BuildException(Err);
        }

        if (bIsRelease)
        {
            if (Target.Platform == UnrealTargetPlatform.Win64)
            {
                // We first check if Houdini Engine is installed.
                string HPath = "C:/Program Files/Side Effects Software/Houdini Engine " + HoudiniVersion;
                if (!Directory.Exists(HPath))
                {
                    // If Houdini Engine is not installed, we check for Houdini installation.
                    HPath = "C:/Program Files/Side Effects Software/Houdini " + HoudiniVersion;
                    if (!Directory.Exists(HPath))
                    {
                        if (!Directory.Exists(HFSPath))
                        {
                            string Err = string.Format("Houdini Engine : Please install Houdini or Houdini Engine {0}", HoudiniVersion);
                            System.Console.WriteLine(Err);
                        }
                    }
                    else
                    {
                        HFSPath = HPath;
                    }
                }
                else
                {
                    HFSPath = HPath;
                }
            }
            else if (Target.Platform == UnrealTargetPlatform.Mac)
            {
                string HPath = "/Library/Frameworks/Houdini.framework/Versions/" + HoudiniVersion + "/Resources";
                if (!Directory.Exists(HPath))
                {
                    if (!Directory.Exists(HFSPath))
                    {
                        string Err = string.Format("Houdini Engine : Please install Houdini {0}", HoudiniVersion);
                        System.Console.WriteLine(Err);
                    }
                }
                else
                {
                    HFSPath = HPath;
                }
            }
            else
            {
                HFSPath = System.Environment.GetEnvironmentVariable("HFS");
                System.Console.WriteLine("Linux - found HFS:" + HFSPath);
            }
        }

        string HAPIIncludePath = "";

        if (HFSPath != "")
        {
            HAPIIncludePath = HFSPath + "/toolkit/include/HAPI";

            if (Target.Platform == UnrealTargetPlatform.Win64)
            {
                Definitions.Add("HOUDINI_ENGINE_HFS_PATH_DEFINE=" + HFSPath);
            }
        }

        if (HAPIIncludePath != "")
        {
            PublicIncludePaths.Add(HAPIIncludePath);

            // Add the custom include path as well in case the toolkit path doesn't exist yet.
            PublicIncludePaths.Add(HFSPath + "/custom/houdini/include/HAPI");
        }

        PublicIncludePaths.AddRange(
            new string[] {
            "HoudiniEngineRuntime/Public/HAPI",
            "HoudiniEngineRuntime/Public",
            "HoudiniEngineEditor/Public"
        }
            );

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

        // Add common dependencies.
        PublicDependencyModuleNames.AddRange(
            new string[]
        {
            "Core",
            "CoreUObject",
            "Engine",
            "RenderCore",
            "ShaderCore",
            "InputCore",
            "RHI",
            "AssetTools",
            "UnrealEd",
            "Slate",
            "SlateCore",
            "Projects",
            "PropertyEditor",
            "ContentBrowser",
            "RawMesh",
            "TargetPlatform",
            "LevelEditor",
            "MainFrame",
            "EditorStyle",
            "EditorWidgets",
            "AppFramework",
            "DesktopWidgets",
            "HoudiniEngineRuntime"
        }
            );

        PrivateDependencyModuleNames.AddRange(
            new string[]
        {
            // ... add private dependencies that you statically link with here ...
        }
            );

        DynamicallyLoadedModuleNames.AddRange(
            new string[]
        {
            // ... add any modules that your module loads dynamically here ...
        }
            );
    }
Ejemplo n.º 27
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 UnrealEnginePython(TargetInfo Target)
#endif
    {
        PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
        string enableUnityBuild = System.Environment.GetEnvironmentVariable("UEP_ENABLE_UNITY_BUILD");

        bFasterWithoutUnity = string.IsNullOrEmpty(enableUnityBuild);

        PublicIncludePaths.AddRange(
            new string[] {
            Path.Combine(ModuleDirectory, "Public"),
            // ... add public include paths required here ...
        }
            );


        PrivateIncludePaths.AddRange(
            new string[] {
            Path.Combine(ModuleDirectory, "Private"),
            PythonHome,
            // ... add other private include paths required here ...
        }
            );


        PublicDependencyModuleNames.AddRange(
            new string[]
        {
            "Core",
            "Sockets",
            "Networking",
            "Projects"
            // ... add other public dependencies that you statically link with here ...
        }
            );


        PrivateDependencyModuleNames.AddRange(
            new string[]
        {
            "CoreUObject",
            "Engine",
            "InputCore",
            "Slate",
            "SlateCore",
            "MovieScene",
            "LevelSequence",
            "HTTP",
            "UMG",
            "AppFramework",
            "RHI",
            "Voice",
            "RenderCore",
            "MovieSceneCapture",
            "Landscape",
            "Foliage",
            "AIModule"
            // ... add private dependencies that you statically link with here ...
        }
            );


#if WITH_FORWARDED_MODULE_RULES_CTOR
        BuildVersion Version;
        if (BuildVersion.TryRead(BuildVersion.GetDefaultFileName(), out Version))
        {
            if (Version.MinorVersion >= 18)
            {
                PrivateDependencyModuleNames.Add("ApplicationCore");
            }
        }
#endif


        DynamicallyLoadedModuleNames.AddRange(
            new string[]
        {
            // ... add any modules that your module loads dynamically here ...
        }
            );

#if WITH_FORWARDED_MODULE_RULES_CTOR
        if (Target.bBuildEditor)
#else
        if (UEBuildConfiguration.bBuildEditor)
#endif
        {
            PrivateDependencyModuleNames.AddRange(new string[] {
                "UnrealEd",
                "LevelEditor",
                "BlueprintGraph",
                "Projects",
                "Sequencer",
                "SequencerWidgets",
                "AssetTools",
                "LevelSequenceEditor",
                "MovieSceneTools",
                "MovieSceneTracks",
                "CinematicCamera",
                "EditorStyle",
                "GraphEditor",
                "UMGEditor",
                "AIGraph",
                "RawMesh",
                "DesktopWidgets",
                "EditorWidgets",
                "FBX",
                "Persona",
                "PropertyEditor",
                "LandscapeEditor",
                "MaterialEditor"
            });
        }

        if ((Target.Platform == UnrealTargetPlatform.Win64) || (Target.Platform == UnrealTargetPlatform.Win32))
        {
            if (UseThirdPartyPython)
            {
                PythonHome = ThirdPartyPythonHome;

                System.Console.WriteLine("Using Embedded Python at: " + PythonHome);
                PublicIncludePaths.Add(PythonHome);
                string libPath = Path.Combine(PythonHome, "Lib", string.Format("{0}.lib", PythonType.ToLower()));

                System.Console.WriteLine("full lib path: " + libPath);
                PublicLibraryPaths.Add(Path.GetDirectoryName(libPath));
                PublicAdditionalLibraries.Add(libPath);

                string dllPath = Path.Combine(BinariesPath, "Win64", string.Format("{0}.dll", PythonType.ToLower()));
                RuntimeDependencies.Add(dllPath);

                AddRuntimeDependenciesForCopying(Target);
            }
            else if (PythonHome == "")
            {
                PythonHome = DiscoverPythonPath(windowsKnownPaths, "Win64");
                if (PythonHome == "")
                {
                    throw new System.Exception("Unable to find Python installation");
                }

                System.Console.WriteLine("Using Python at: " + PythonHome);
                PublicIncludePaths.Add(PythonHome);
                string libPath = GetWindowsPythonLibFile(PythonHome);
                PublicLibraryPaths.Add(Path.GetDirectoryName(libPath));
                PublicAdditionalLibraries.Add(libPath);
            }
        }

        //other platforms
        else
        {
            if (PythonHome == "")
            {
                PythonHome = DiscoverPythonPath(macKnownPaths, "Mac");
                if (PythonHome == "")
                {
                    throw new System.Exception("Unable to find Python installation");
                }
                System.Console.WriteLine("Using Python at: " + PythonHome);
                PublicIncludePaths.Add(PythonHome);
                PublicAdditionalLibraries.Add(Path.Combine(PythonHome, "Lib", string.Format("{0}.lib", PythonType)));
            }
            System.Console.WriteLine("Using Python at: " + PythonHome);
            PublicIncludePaths.Add(PythonHome);
            string libPath = GetMacPythonLibFile(PythonHome);
            PublicLibraryPaths.Add(Path.GetDirectoryName(libPath));
            PublicDelayLoadDLLs.Add(libPath);
        }
        if (Target.Platform == UnrealTargetPlatform.Linux)
        {
            if (PythonHome == "")
            {
                string includesPath = DiscoverLinuxPythonIncludesPath();
                if (includesPath == null)
                {
                    throw new System.Exception("Unable to find Python includes, please add a search path to linuxKnownIncludesPaths");
                }
                string libsPath = DiscoverLinuxPythonLibsPath();
                if (libsPath == null)
                {
                    throw new System.Exception("Unable to find Python libs, please add a search path to linuxKnownLibsPaths");
                }
                PublicIncludePaths.Add(includesPath);
                PublicAdditionalLibraries.Add(libsPath);
            }
            else
            {
                string[] items = PythonHome.Split(';');
                PublicIncludePaths.Add(items[0]);
                PublicAdditionalLibraries.Add(items[1]);
            }
        }
#if WITH_FORWARDED_MODULE_RULES_CTOR
        else if (Target.Platform == UnrealTargetPlatform.Android)
        {
            PublicIncludePaths.Add(System.IO.Path.Combine(ModuleDirectory, "../../android/python35/include"));
            PublicLibraryPaths.Add(System.IO.Path.Combine(ModuleDirectory, "../../android/armeabi-v7a"));
            PublicAdditionalLibraries.Add("python3.5m");

            string APLName    = "UnrealEnginePython_APL.xml";
            string RelAPLPath = Utils.MakePathRelativeTo(System.IO.Path.Combine(ModuleDirectory, APLName), Target.RelativeEnginePath);
            AdditionalPropertiesForReceipt.Add("AndroidPlugin", RelAPLPath);
        }
#endif
    }
Ejemplo n.º 29
0
    public Sequencer(TargetInfo Target)
    {
        PrivateIncludePaths.AddRange(
            new string[] {
            "Editor/Sequencer/Private",
            "Editor/Sequencer/Private/DisplayNodes",
            "Editor/UnrealEd/Private"                     // TODO: Fix this, for now it's needed for the fbx exporter
        }
            );

        PrivateDependencyModuleNames.AddRange(
            new string[] {
            "AppFramework",
            "CinematicCamera",
            "Core",
            "CoreUObject",
            "InputCore",
            "Engine",
            "Slate",
            "SlateCore",
            "EditorStyle",
            "UnrealEd",
            "MovieScene",
            "MovieSceneTracks",
            "MovieSceneTools",
            "MovieSceneCapture",
            "MovieSceneCaptureDialog",
            "EditorWidgets",
            "SequencerWidgets",
            "BlueprintGraph",
            "LevelSequence"
        }
            );

        PrivateIncludePathModuleNames.AddRange(
            new string[] {
            "ContentBrowser",
            "PropertyEditor",
            "Kismet",
            "SceneOutliner",
            "SequenceRecorder",
            "LevelEditor",
            "MainFrame",
            "DesktopPlatform"
        }
            );

        DynamicallyLoadedModuleNames.AddRange(
            new string[] {
            "PropertyEditor",
            "LevelEditor",
            "SceneOutliner",
            "WorkspaceMenuStructure",
            "SequenceRecorder",
            "SequenceRecorderSections",
            "MainFrame",
        }
            );

        CircularlyReferencedDependentModules.Add("MovieSceneTools");
        AddEngineThirdPartyPrivateStaticDependencies(Target, "FBX");
    }
Ejemplo n.º 30
0
    public ProteusAvatars(ReadOnlyTargetRules Target) : base(Target)
    {
        // Precompiled header usage for this module
        PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
        string BaseDirectory = Path.GetFullPath(Path.Combine(ModuleDirectory, ".."));

        //(This setting is currently not need as we discover all files from the 'Public' folder) List of all paths to include files that are exposed to other modules
        PublicIncludePaths.AddRange
        (
            new string[]
        {
            BaseDirectory + "/ProteusAvatars/Public",
            // Access to ProteusOvrAvatarHelpers.h
            BaseDirectory + "/ProteusAvatars/Private",
            //Access to OVR_Avatar.h and OVR_Avatar_defs.h
            EngineDirectory + "/Source/ThirdParty/Oculus/LibOVRAvatar/LibOVRAvatar/include",
            // Access to OculusHMDModule.h
            EngineDirectory + "/Plugins/Runtime/Oculus/OculusVR/Source/OculusHMD/Private"
        }
        );

        // List of public dependency module names (no path needed) (automatically does the private/public include). These are modules that are required by our public source files.
        PublicIncludePathModuleNames.AddRange
        (
            new string[]
        {
            //Access to the module /Source/ThirdParty/Oculus/OVRPlugin
            "OVRPlugin"
        }
        );

        // List of public dependency module names (no path needed) (automatically does the private/public include).
        // These are modules that are required by our public source files
        PublicDependencyModuleNames.AddRange
        (
            new string[]
        {
            "Core",
            // "ProteusAvatarsLibrary",
            "Projects",
            //Access to the module /Source/ThirdParty/Oculus/OVRPlugin and /LibOVRAvatar
            "OVRPlugin",
            "LibOVRAvatar",
            //Access to /Plugins/Runtime/Oculus/OculusVR/Source/OculusHMD
            "OculusHMD",
            "CoreUObject",
            "Engine",
            "InputCore",
            "UMG",
            "Slate",
            "SlateCore",
            "RenderCore",
            "OnlineSubsystem",
            "HeadMountedDisplay"
        }
        );


        // List of all paths to this module's internal include files, not exposed to other modules (at least one include to the 'Private' path, more if we want to avoid relative paths)
        PrivateIncludePaths.AddRange
        (
            new string[]
        {
            BaseDirectory + "/ProteusAvatars/Private"
        }
        );

        // List of modules name(no path needed) with header files that our module's private code files needs access to, but we don't need to "import" or link against.
        PrivateIncludePathModuleNames.AddRange
        (
            new string[]
        {
            //Access to /Plugins/Runtime/Oculus/OculusVR/Source/OculusHMD
            "OculusHMD"
        }
        );

        // List of private dependency module names.These are modules that our private code depends on but nothing in our public include files depend on.
        PrivateDependencyModuleNames.AddRange
        (
            new string[]
        {
            "Core", "CoreUObject", "Engine", "InputCore", "UMG", "Slate", "SlateCore", "RenderCore",
            "OnlineSubsystem", "HeadMountedDisplay", "OVRPlugin", "OculusHMD", "LibOVRAvatar"
        }
        );

        // Addition modules this module may require at run-time
        DynamicallyLoadedModuleNames.AddRange
        (
            new string[]
        {
            // ... add any modules that your module loads dynamically here ...
        }
        );

        if (Target.Platform == UnrealTargetPlatform.Win64)
        {
            // List of delay load DLLs - typically used for External (third party) modules
            // Binaries/ThirdParty/Oculus/OVRPlugin/OVRPlugin/Win64/OVRPLugin.dll
            PublicDelayLoadDLLs.Add("libovravatar.dll");
            // Binaries/ThirdParty/Oculus/OVRPlugin/OVRPlugin/Win64/OVRPLugin.dll
            PublicDelayLoadDLLs.Add("OVRPlugin.dll");
            // List of files which this module depends on at runtime. These files will be staged along with the target.
            RuntimeDependencies.Add("$(EngineDir)/Binaries/ThirdParty/Oculus/OVRPlugin/OVRPlugin/" + Target.Platform.ToString() + "/OVRPlugin.dll");
        }
        // Which targets this module should be precompiled for
        else if (Target.Platform == UnrealTargetPlatform.Android)
        {
            PublicDelayLoadDLLs.Add("libovravatarloader.so");
            PublicDelayLoadDLLs.Add("libOVRPlugin.so");
            // List of files which this module depends on at runtime. These files will be staged along with the target.
            // RuntimeDependencies.Add("$(EngineDir)/Binaries/ThirdParty/Oculus/OVRPlugin/OVRPlugin/Lib/armeabi-v7a/libOVRPlugin.so");
        }
        else
        {
            PrecompileForTargets = PrecompileTargetsType.None;
        }
    }