Exemplo n.º 1
0
    public MLSDK(ReadOnlyTargetRules Target) : base(Target)
    {
        // Needed for FVector, FQuat and FTransform used in MagicLeapMath.h
        PrivateDependencyModuleNames.Add("Core");
        // Include headers to be public to other modules.
        PublicIncludePaths.Add(Path.Combine(ModuleDirectory, "Public"));

        Type = ModuleType.External;

        string MLSDKPath         = System.Environment.GetEnvironmentVariable("MLSDK");
        bool   bIsMLSDKInstalled = false;

        if (MLSDKPath != null)
        {
            string IncludePath           = Path.Combine(MLSDKPath, "include");
            string LibraryPath           = Path.Combine(MLSDKPath, "lib");
            string LibraryPlatformFolder = string.Empty;
            switch (Target.Platform)
            {
            case UnrealTargetPlatform.Win64:
                LibraryPlatformFolder = "win64";
                break;

            case UnrealTargetPlatform.Mac:
                LibraryPlatformFolder = "osx";
                break;

            case UnrealTargetPlatform.Linux:
                LibraryPlatformFolder = "linux64";
                break;

            case UnrealTargetPlatform.Lumin:
                LibraryPlatformFolder = "lumin";
                break;
            }
            LibraryPath = Path.Combine(LibraryPath, LibraryPlatformFolder);

            bIsMLSDKInstalled = Directory.Exists(IncludePath) && Directory.Exists(LibraryPath);
            if (bIsMLSDKInstalled)
            {
                string             ProjectFileName = null != Target.ProjectFile ? Target.ProjectFile.FullName : "";
                DirectoryReference ProjectDir      =
                    string.IsNullOrEmpty(ProjectFileName) ? (DirectoryReference)null : Target.ProjectFile.Directory;
                ConfigHierarchy Ini = ConfigCache.ReadHierarchy(ConfigHierarchyType.Engine, ProjectDir, Target.Platform);

                PublicIncludePaths.Add(IncludePath);
                if (Target.Platform != UnrealTargetPlatform.Lumin)
                {
                    string VirtualDeviceIncludePath = "";
                    if (Ini.TryGetValue("MLSDK", "IncludePath", out VirtualDeviceIncludePath))
                    {
                        PublicIncludePaths.Add(VirtualDeviceIncludePath);
                    }
                }
                //PublicIncludePaths.Add(Path.Combine(MLSDKPath, "lumin/usr/include/vulkan"));
                PublicIncludePaths.Add(Target.UEThirdPartySourceDirectory + "Vulkan/Include/vulkan");

                string MLSDKLibraryPath = "";
                Ini.TryGetValue("MLSDK", "LibraryPath", out MLSDKLibraryPath);

                PublicLibraryPaths.Add(LibraryPath);
                if (!string.IsNullOrEmpty(MLSDKLibraryPath))
                {
                    PublicLibraryPaths.Add(MLSDKLibraryPath);
                }

                string[] MLSDKLibraryList = new string[] {
                    "ml_audio",
                    "ml_camera_metadata",
                    "ml_camera",
                    "ml_dispatch",
                    "ml_ext_logging",
                    "ml_graphics",
                    "ml_graphics_utils",
                    "ml_identity",
                    "ml_input",
                    "ml_lifecycle",
                    "ml_mediacodeclist",
                    "ml_mediacodec",
                    "ml_mediacrypto",
                    "ml_mediadrm",
                    "ml_mediaerror",
                    "ml_mediaextractor",
                    "ml_mediaformat",
                    "ml_mediaplayer",
                    "ml_musicservice",
                    "ml_perception_client",
                    "ml_privileges",
                    "ml_screens",
                    "ml_secure_storage",
                    "ml_sharedfile",
                    "ml_purchase"
                };

                if (Target.Platform == UnrealTargetPlatform.Win64)
                {
                    foreach (string libname in MLSDKLibraryList)
                    {
                        PublicAdditionalLibraries.Add(string.Format("{0}.lib", libname));
                        PublicDelayLoadDLLs.Add(string.Format("{0}.dll", libname));
                    }

                    PublicAdditionalLibraries.Add("ml_remote.lib");
                    PublicDelayLoadDLLs.Add("ml_remote.dll");
                }
                else if (Target.Platform == UnrealTargetPlatform.Mac)
                {
                    foreach (string libname in MLSDKLibraryList)
                    {
                        string lib = string.Format("lib{0}.dylib", libname);
                        if (!string.IsNullOrEmpty(MLSDKLibraryPath) && File.Exists(Path.Combine(MLSDKLibraryPath, lib)))
                        {
                            PublicDelayLoadDLLs.Add(Path.Combine(MLSDKLibraryPath, lib));
                        }
                        else
                        {
                            PublicDelayLoadDLLs.Add(Path.Combine(LibraryPath, lib));
                        }
                    }

                    string virtualDeviceLib = "libml_remote.dylib";
                    if (!string.IsNullOrEmpty(MLSDKLibraryPath) && File.Exists(Path.Combine(MLSDKLibraryPath, virtualDeviceLib)))
                    {
                        PublicDelayLoadDLLs.Add(Path.Combine(MLSDKLibraryPath, virtualDeviceLib));
                    }
                }
                else if (Target.Platform == UnrealTargetPlatform.Linux)
                {
                    foreach (string libname in MLSDKLibraryList)
                    {
                        string lib = string.Format("lib{0}.so", libname);
                        if (!string.IsNullOrEmpty(MLSDKLibraryPath) && File.Exists(Path.Combine(MLSDKLibraryPath, lib)))
                        {
                            PublicDelayLoadDLLs.Add(Path.Combine(MLSDKLibraryPath, lib));
                        }
                        else
                        {
                            PublicDelayLoadDLLs.Add(Path.Combine(LibraryPath, lib));
                        }
                    }

                    string virtualDeviceLib = "libml_remote.so";
                    if (!string.IsNullOrEmpty(MLSDKLibraryPath) && File.Exists(Path.Combine(MLSDKLibraryPath, virtualDeviceLib)))
                    {
                        PublicDelayLoadDLLs.Add(Path.Combine(MLSDKLibraryPath, virtualDeviceLib));
                    }
                }
                else if (Target.Platform == UnrealTargetPlatform.Lumin)
                {
                    foreach (string libname in MLSDKLibraryList)
                    {
                        PublicAdditionalLibraries.Add(libname);
                        PublicDelayLoadDLLs.Add(string.Format("lib{0}.so", libname));
                    }
                }
            }
        }
        PublicDefinitions.Add("WITH_MLSDK=" + (bIsMLSDKInstalled ? "1" : "0"));
    }
Exemplo n.º 2
0
        public PsIronSource(ReadOnlyTargetRules Target) : base(Target)
        {
            bool bIronSourceEnable = false;
            ConfigHierarchy EngineConfig = ConfigCache.ReadHierarchy(ConfigHierarchyType.Engine, DirectoryReference.FromFile(Target.ProjectFile), Target.Platform);
            EngineConfig.TryGetValue("/Script/PsIronSource.PsIronSourceSettings", "bIronSourceEnable", out bIronSourceEnable);
            PublicDefinitions.Add("WITH_IRONSOURCE=" + (bIronSourceEnable ? "1" : "0"));

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

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

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

            if (bIronSourceEnable)
            {
                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(
                            "UnityAds",
                            "../../ThirdParty/iOS/UnityAds.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"
                        )
                    );

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

                    // Dependence for ISAdMobAdapter
                    PublicAdditionalFrameworks.Add(
                        new Framework(
                            "UserMessagingPlatform",
                            "../../ThirdParty/iOS/UserMessagingPlatform.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(
                            "VungleSDK",
                            "../../ThirdParty/iOS/VungleSDK.embeddedframework.zip"
                        )
                    );

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

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

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

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

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

                    PublicSystemLibraries.Add("xml2");
                    PublicSystemLibraries.Add("sqlite3");
                    PublicSystemLibraries.Add("resolv");

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

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

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

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

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

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

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

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

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

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

                    PublicSystemLibraries.Add("z");
                    PublicSystemLibraries.Add("bz2");
                    PublicSystemLibraries.Add("c++abi");
                }
                else if (Target.Platform == UnrealTargetPlatform.Android)
                {
                    string PluginPath = Utils.MakePathRelativeTo(ModuleDirectory, Target.RelativeEnginePath);
                    AdditionalPropertiesForReceipt.Add("AndroidPlugin", Path.Combine(PluginPath, "PsIronSource_UPL_Android.xml"));
                }
            }
        }
Exemplo n.º 3
0
        public PrFirebase(ReadOnlyTargetRules Target) : base(Target)
        {
            PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;

            ConfigHierarchy EngineConfig = ConfigCache.ReadHierarchy(ConfigHierarchyType.Engine, DirectoryReference.FromFile(Target.ProjectFile), Target.Platform);

            bool bFirebaseLoggingInShipping = false;

            EngineConfig.TryGetValue("/Script/PrFirebase.PrFirebaseSettings", "bFirebaseLoggingInShipping", out bFirebaseLoggingInShipping);

            bool bFirebaseEnable                = false;
            bool bFirebaseCrashlyticsEnable     = false;
            bool bFirebaseRemoteConfigEnable    = false;
            bool bFirebaseAuthEnable            = false;
            bool bFirebasePerformanceEnable     = false;
            bool bFirebaseAppDistributionEnable = false;

            EngineConfig.TryGetValue("/Script/PrFirebase.PrFirebaseSettings", "bFirebaseEnable", out bFirebaseEnable);
            EngineConfig.TryGetValue("/Script/PrFirebase.PrFirebaseSettings", "bFirebaseCrashlyticsEnable", out bFirebaseCrashlyticsEnable);
            EngineConfig.TryGetValue("/Script/PrFirebase.PrFirebaseSettings", "bFirebaseRemoteConfigEnable", out bFirebaseRemoteConfigEnable);
            EngineConfig.TryGetValue("/Script/PrFirebase.PrFirebaseSettings", "bFirebaseAuthEnable", out bFirebaseAuthEnable);
            EngineConfig.TryGetValue("/Script/PrFirebase.PrFirebaseSettings", "bFirebasePerformanceEnable", out bFirebasePerformanceEnable);
            EngineConfig.TryGetValue("/Script/PrFirebase.PrFirebaseSettings", "bFirebaseAppDistributionEnable", out bFirebaseAppDistributionEnable);

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

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

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

            bool bSymbolsWarning = false;

            if (bFirebaseEnable)
            {
                if (Target.Platform == UnrealTargetPlatform.IOS)
                {
                    bool bGeneratedSYMBundle = false;
                    bool bGeneratedSYMFile   = false;
                    EngineConfig.TryGetValue("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bGeneratedSYMBundle", out bGeneratedSYMBundle);
                    EngineConfig.TryGetValue("/Script/IOSRuntimeSettings.IOSRuntimeSettings", "bGeneratedSYMFile", out bGeneratedSYMFile);

                    if ((!bGeneratedSYMBundle || !bGeneratedSYMFile) && bFirebaseCrashlyticsEnable)
                    {
                        bSymbolsWarning = true;
                    }

                    /* Firebase / Firebase Analytics */
                    PublicAdditionalFrameworks.Add(
                        new Framework(
                            "FirebaseAnalytics",
                            "../../ThirdParty/iOS/FirebaseAnalytics.embeddedframework.zip"
                            )
                        );

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

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

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

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

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

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

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

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

                    /* Crashlytics */
                    if (bFirebaseCrashlyticsEnable)
                    {
                        PublicAdditionalFrameworks.Add(
                            new Framework(
                                "FirebaseCrashlytics",
                                "../../ThirdParty/iOS/FirebaseCrashlytics.embeddedframework.zip"
                                )
                            );
                    }

                    /* Remote Config */
                    if (bFirebaseRemoteConfigEnable)
                    {
                        PublicAdditionalFrameworks.Add(
                            new Framework(
                                "FirebaseABTesting",
                                "../../ThirdParty/iOS/FirebaseABTesting.embeddedframework.zip"
                                )
                            );

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

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

                    /* Performance */
                    if (bFirebasePerformanceEnable)
                    {
                        PublicAdditionalFrameworks.Add(
                            new Framework(
                                "FirebaseABTesting",
                                "../../ThirdParty/iOS/FirebaseABTesting.embeddedframework.zip"
                                )
                            );

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

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

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

                    /* Auth */
                    if (bFirebaseAuthEnable)
                    {
                        PublicAdditionalFrameworks.Add(
                            new Framework(
                                "FirebaseAuth",
                                "../../ThirdParty/iOS/FirebaseAuth.embeddedframework.zip"
                                )
                            );

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

                    if (bFirebaseAppDistributionEnable)
                    {
                        PublicAdditionalFrameworks.Add(
                            new Framework(
                                "FirebaseAppDistribution",
                                "../../ThirdParty/iOS/FirebaseAppDistribution.embeddedframework.zip"
                                )
                            );
                    }

                    PublicSystemLibraries.Add("sqlite3");

                    PrivateIncludePaths.Add("PrFirebase/External/iOS");

                    string PluginPath = Utils.MakePathRelativeTo(ModuleDirectory, Target.RelativeEnginePath);
                    AdditionalPropertiesForReceipt.Add("IOSPlugin", Path.Combine(PluginPath, "PrFirebase_UPL_IOS.xml"));
                }
                else if (Target.Platform == UnrealTargetPlatform.Android)
                {
                    PublicDependencyModuleNames.AddRange(
                        new string[]
                    {
                        "Launch"
                    });

                    string PluginPath = Utils.MakePathRelativeTo(ModuleDirectory, Target.RelativeEnginePath);
                    AdditionalPropertiesForReceipt.Add("AndroidPlugin", Path.Combine(PluginPath, "PrFirebase_UPL_Android.xml"));
                }
                else
                {
                    bFirebaseEnable = false;
                }
            }

            PublicDefinitions.Add("WITH_FIREBASE=" + (bFirebaseEnable ? "1" : "0"));
            PublicDefinitions.Add("WITH_FIREBASE_CRASHLYTICS=" + (bFirebaseEnable && bFirebaseCrashlyticsEnable ? "1" : "0"));
            PublicDefinitions.Add("WITH_FIREBASE_REMOTECONFIG=" + (bFirebaseEnable && bFirebaseRemoteConfigEnable ? "1" : "0"));
            PublicDefinitions.Add("WITH_FIREBASE_AUTH=" + (bFirebaseEnable && bFirebaseAuthEnable ? "1" : "0"));
            PublicDefinitions.Add("WITH_FIREBASE_PERFORMANCE=" + (bFirebaseEnable && bFirebasePerformanceEnable ? "1" : "0"));
            PublicDefinitions.Add("WITH_FIREBASE_SYMBOLS_WARNING=" + (bFirebaseEnable && bSymbolsWarning ? "1" : "0"));
            PublicDefinitions.Add("WITH_FIREBASE_APPDISTRIBUTION=" + (bFirebaseEnable && bFirebaseAppDistributionEnable ? "1" : "0"));

            PublicDefinitions.Add("FIREBASE_LOGGING=" + (bFirebaseLoggingInShipping ? "1" : "0"));
        }
Exemplo n.º 4
0
    public NetPhysSync(ReadOnlyTargetRules Target) : base(Target)
    {
        PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;

        int BufferSize = 20;

        Log.TraceInformation("######## Target Directory : " + Target.ProjectFile.Directory.FullName);

        ConfigHierarchy EngineConfig = ConfigCache.ReadHierarchy
                                       (
            ConfigHierarchyType.Engine,
            DirectoryReference.FromFile(Target.ProjectFile),
            Target.Platform
                                       );

        ConfigHierarchy GameConfig = ConfigCache.ReadHierarchy
                                     (
            ConfigHierarchyType.Game,
            DirectoryReference.FromFile(Target.ProjectFile),
            Target.Platform
                                     );

        if (EngineConfig != null)
        {
            float PhysSubstepDeltaTime;
            float SupportRTTInMS;
            int   JitterWaitPhysTick;

            if (EngineConfig.TryGetValue("/Script/Engine.PhysicsSettings", "MaxSubstepDeltaTime", out PhysSubstepDeltaTime) &&
                GameConfig.TryGetValue("/Script/NetPhysSync.NPSNetSetting", "SupportRTTInMS", out SupportRTTInMS) &&
                GameConfig.TryGetValue("/Script/NetPhysSync.NPSNetSetting", "JitterWaitPhysTick", out JitterWaitPhysTick))
            {
                float BufferSizeFloat = (0.001f * SupportRTTInMS) / PhysSubstepDeltaTime;
                BufferSize = (int)Math.Ceiling(BufferSizeFloat);

                if (2 * BufferSize > BufferSize + JitterWaitPhysTick)
                {
                    BufferSize = 2 * BufferSize;
                }
                else
                {
                    BufferSize = 2 * BufferSize + JitterWaitPhysTick;
                }

                Log.TraceInformation("######## NPS_BUFFER_SIZE=" + BufferSize);
            }
            else
            {
                Log.TraceInformation("######## Cannot find value from config file. Set NPS_BUFFER_SIZE to default 20");
            }
        }

        PublicDefinitions.Add("NPS_BUFFER_SIZE=" + BufferSize);
        PublicDefinitions.Add("NPS_LOG_SYNC_AUTO_PROXY=0");

        PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "OnlineSubSystem", "OnlineSubsystemUtils", "PhysX", "APEX" });


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

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

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