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