public ICU(ReadOnlyTargetRules Target) : base(Target) { Type = ModuleType.External; bool bNeedsDlls = false; string ICUVersion = "icu4c-53_1"; string ICURootPath = UEBuildConfiguration.UEThirdPartySourceDirectory + "ICU/" + ICUVersion + "/"; // Includes PublicSystemIncludePaths.Add(ICURootPath + "include" + "/"); string PlatformFolderName = Target.Platform.ToString(); string TargetSpecificPath = ICURootPath + PlatformFolderName + "/"; if (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32") // simulator { TargetSpecificPath = ICURootPath + "Win32/"; } if ((Target.Platform == UnrealTargetPlatform.Win64) || (Target.Platform == UnrealTargetPlatform.Win32) || (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32") // simulator ) { string VSVersionFolderName = "VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); TargetSpecificPath += VSVersionFolderName + "/"; string[] LibraryNameStems = { "dt", // Data "uc", // Unicode Common "in", // Internationalization "le", // Layout Engine "lx", // Layout Extensions "io" // Input/Output }; string LibraryNamePostfix = (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT) ? "d" : string.Empty; // Library Paths PublicLibraryPaths.Add(TargetSpecificPath + "lib" + "/"); EICULinkType ICULinkType = (Target.LinkType == TargetLinkType.Monolithic)? EICULinkType.Static : EICULinkType.Dynamic; switch (ICULinkType) { case EICULinkType.Static: foreach (string Stem in LibraryNameStems) { string LibraryName = "sicu" + Stem + LibraryNamePostfix + "." + "lib"; PublicAdditionalLibraries.Add(LibraryName); } break; case EICULinkType.Dynamic: foreach (string Stem in LibraryNameStems) { string LibraryName = "icu" + Stem + LibraryNamePostfix + "." + "lib"; PublicAdditionalLibraries.Add(LibraryName); } foreach (string Stem in LibraryNameStems) { string LibraryName = "icu" + Stem + LibraryNamePostfix + "53" + "." + "dll"; PublicDelayLoadDLLs.Add(LibraryName); } if (Target.Platform == UnrealTargetPlatform.Win64 || Target.Platform == UnrealTargetPlatform.Win32) { string BinariesDir = String.Format("$(EngineDir)/Binaries/ThirdParty/ICU/{0}/{1}/VS{2}/", ICUVersion, Target.Platform.ToString(), WindowsPlatform.GetVisualStudioCompilerVersionName()); foreach (string Stem in LibraryNameStems) { string LibraryName = BinariesDir + String.Format("icu{0}{1}53.dll", Stem, LibraryNamePostfix); RuntimeDependencies.Add(new RuntimeDependency(LibraryName)); } } bNeedsDlls = true; break; } } else if (Target.Platform == UnrealTargetPlatform.Linux || Target.Platform == UnrealTargetPlatform.Android) { string StaticLibraryExtension = "a"; switch (Target.Platform) { case UnrealTargetPlatform.Linux: TargetSpecificPath += Target.Architecture + "/"; break; case UnrealTargetPlatform.Android: PublicLibraryPaths.Add(TargetSpecificPath + "ARMv7/lib"); PublicLibraryPaths.Add(TargetSpecificPath + "ARM64/lib"); PublicLibraryPaths.Add(TargetSpecificPath + "x86/lib"); PublicLibraryPaths.Add(TargetSpecificPath + "x64/lib"); break; } string[] LibraryNameStems = { "data", // Data "uc", // Unicode Common "i18n", // Internationalization "le", // Layout Engine "lx", // Layout Extensions "io" // Input/Output }; string LibraryNamePostfix = (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT) ? "d" : string.Empty; // Library Paths // Temporarily? only link statically on Linux too //EICULinkType ICULinkType = (Target.Platform == UnrealTargetPlatform.Android || Target.IsMonolithic) ? EICULinkType.Static : EICULinkType.Dynamic; EICULinkType ICULinkType = EICULinkType.Static; switch (ICULinkType) { case EICULinkType.Static: foreach (string Stem in LibraryNameStems) { string LibraryName = "icu" + Stem + LibraryNamePostfix; if (Target.Platform == UnrealTargetPlatform.Android) { // we will filter out in the toolchain PublicAdditionalLibraries.Add(LibraryName); // Android requires only the filename. } else { PublicAdditionalLibraries.Add(TargetSpecificPath + "lib/" + "lib" + LibraryName + "." + StaticLibraryExtension); // Linux seems to need the path, not just the filename. } } break; case EICULinkType.Dynamic: if (Target.Platform == UnrealTargetPlatform.Linux) { string PathToBinary = String.Format("$(EngineDir)/Binaries/ThirdParty/ICU/{0}/{1}/{2}/", ICUVersion, Target.Platform.ToString(), Target.Architecture); foreach (string Stem in LibraryNameStems) { string LibraryName = "icu" + Stem + LibraryNamePostfix; string LibraryPath = UEBuildConfiguration.UEThirdPartyBinariesDirectory + "ICU/icu4c-53_1/Linux/" + Target.Architecture + "/"; PublicLibraryPaths.Add(LibraryPath); PublicAdditionalLibraries.Add(LibraryName); // add runtime dependencies (for staging) RuntimeDependencies.Add(new RuntimeDependency(PathToBinary + "lib" + LibraryName + ".so")); RuntimeDependencies.Add(new RuntimeDependency(PathToBinary + "lib" + LibraryName + ".so.53")); // version-dependent } } break; } } else if (Target.Platform == UnrealTargetPlatform.Mac || Target.Platform == UnrealTargetPlatform.IOS || Target.Platform == UnrealTargetPlatform.TVOS) { string StaticLibraryExtension = "a"; string DynamicLibraryExtension = "dylib"; string[] LibraryNameStems = { "data", // Data "uc", // Unicode Common "i18n", // Internationalization "le", // Layout Engine "lx", // Layout Extensions "io" // Input/Output }; string LibraryNamePostfix = (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT) ? "d" : string.Empty; EICULinkType ICULinkType = (Target.Platform == UnrealTargetPlatform.IOS || (Target.LinkType == TargetLinkType.Monolithic)) ? EICULinkType.Static : EICULinkType.Dynamic; // Library Paths switch (ICULinkType) { case EICULinkType.Static: foreach (string Stem in LibraryNameStems) { string LibraryName = "libicu" + Stem + LibraryNamePostfix + "." + StaticLibraryExtension; PublicAdditionalLibraries.Add(TargetSpecificPath + "lib/" + LibraryName); PublicAdditionalShadowFiles.Add(TargetSpecificPath + "lib/" + LibraryName); } break; case EICULinkType.Dynamic: foreach (string Stem in LibraryNameStems) { if (Target.Platform == UnrealTargetPlatform.Mac) { string LibraryName = "libicu" + Stem + ".53.1" + LibraryNamePostfix + "." + DynamicLibraryExtension; string LibraryPath = UEBuildConfiguration.UEThirdPartyBinariesDirectory + "ICU/icu4c-53_1/Mac/" + LibraryName; PublicDelayLoadDLLs.Add(LibraryPath); PublicAdditionalShadowFiles.Add(LibraryPath); RuntimeDependencies.Add(new RuntimeDependency(LibraryPath)); } } bNeedsDlls = true; break; } } else if (Target.Platform == UnrealTargetPlatform.HTML5) { // we don't bother with debug libraries on HTML5. Mainly because debugging isn't viable on html5 currently string StaticLibraryExtension = "bc"; string[] LibraryNameStems = { "data", // Data "uc", // Unicode Common "i18n", // Internationalization "le", // Layout Engine "lx", // Layout Extensions "io" // Input/Output }; string OpimizationSuffix = ""; if (UEBuildConfiguration.bCompileForSize) { OpimizationSuffix = "_Oz"; } else { if (Target.Configuration == UnrealTargetConfiguration.Development) { OpimizationSuffix = "_O2"; } else if (Target.Configuration == UnrealTargetConfiguration.Shipping) { OpimizationSuffix = "_O3"; } } foreach (string Stem in LibraryNameStems) { string LibraryName = "libicu" + Stem + OpimizationSuffix + "." + StaticLibraryExtension; PublicAdditionalLibraries.Add(TargetSpecificPath + LibraryName); } } else if (Target.Platform == UnrealTargetPlatform.PS4) { string LibraryNamePrefix = "sicu"; string[] LibraryNameStems = { "dt", // Data "uc", // Unicode Common "in", // Internationalization "le", // Layout Engine "lx", // Layout Extensions "io" // Input/Output }; string LibraryNamePostfix = (Target.Configuration == UnrealTargetConfiguration.Debug) ? "d" : string.Empty; string LibraryExtension = "lib"; foreach (string Stem in LibraryNameStems) { string LibraryName = ICURootPath + "PS4/lib/" + LibraryNamePrefix + Stem + LibraryNamePostfix + "." + LibraryExtension; PublicAdditionalLibraries.Add(LibraryName); } } else if (Target.Platform == UnrealTargetPlatform.Switch) { string LibraryNamePrefix = "sicu"; string[] LibraryNameStems = { "dt", // Data "uc", // Unicode Common "in", // Internationalization "le", // Layout Engine "lx", // Layout Extensions "io" // Input/Output }; string LibraryNamePostfix = ""; //(Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT) ? "d" : string.Empty; string LibraryExtension = "a"; foreach (string Stem in LibraryNameStems) { string LibraryName = ICURootPath + "Switch/lib/" + LibraryNamePrefix + Stem + LibraryNamePostfix + "." + LibraryExtension; PublicAdditionalLibraries.Add(LibraryName); } } else 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) { string LibraryNamePrefix = "sicu"; string[] LibraryNameStems = { "dt", // Data "uc", // Unicode Common "in", // Internationalization "le", // Layout Engine "lx", // Layout Extensions "io" // Input/Output }; string LibraryNamePostfix = (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT) ? "d" : string.Empty; string LibraryExtension = "lib"; foreach (string Stem in LibraryNameStems) { System.Object VersionName = XboxOnePlatformType.GetMethod("GetVisualStudioCompilerVersionName").Invoke(null, null); string LibraryName = ICURootPath + "XboxOne/VS" + VersionName.ToString() + "/lib/" + LibraryNamePrefix + Stem + LibraryNamePostfix + "." + LibraryExtension; PublicAdditionalLibraries.Add(LibraryName); } } } // common defines if ((Target.Platform == UnrealTargetPlatform.Win64) || (Target.Platform == UnrealTargetPlatform.Win32) || (Target.Platform == UnrealTargetPlatform.Linux) || (Target.Platform == UnrealTargetPlatform.Android) || (Target.Platform == UnrealTargetPlatform.Mac) || (Target.Platform == UnrealTargetPlatform.IOS) || (Target.Platform == UnrealTargetPlatform.TVOS) || (Target.Platform == UnrealTargetPlatform.PS4) || (Target.Platform == UnrealTargetPlatform.XboxOne) || (Target.Platform == UnrealTargetPlatform.HTML5) || (Target.Platform == UnrealTargetPlatform.Switch) ) { // Definitions Definitions.Add("U_USING_ICU_NAMESPACE=0"); // Disables a using declaration for namespace "icu". Definitions.Add("U_STATIC_IMPLEMENTATION"); // Necessary for linking to ICU statically. Definitions.Add("U_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"); // Disables unnecessary inclusion of headers - inclusions are for ease of use. Definitions.Add("UNISTR_FROM_CHAR_EXPLICIT=explicit"); // Makes UnicodeString constructors for ICU character types explicit. Definitions.Add("UNISTR_FROM_STRING_EXPLICIT=explicit"); // Makes UnicodeString constructors for "char"/ICU string types explicit. Definitions.Add("UCONFIG_NO_TRANSLITERATION=1"); // Disables declarations and compilation of unused ICU transliteration functionality. } if (Target.Platform == UnrealTargetPlatform.PS4) { // Definitions Definitions.Add("ICU_NO_USER_DATA_OVERRIDE=1"); Definitions.Add("U_PLATFORM=U_PF_ORBIS"); } if (Target.Platform == UnrealTargetPlatform.XboxOne) { // Definitions Definitions.Add("ICU_NO_USER_DATA_OVERRIDE=1"); Definitions.Add("U_PLATFORM=U_PF_DURANGO"); } Definitions.Add("NEEDS_ICU_DLLS=" + (bNeedsDlls ? "1" : "0")); }
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", } ); if (Target.Type != TargetRules.TargetType.Server) { PrivateDependencyModuleNames.AddRange( new string[] { "HeadMountedDisplay", } ); if ((Target.Platform == UnrealTargetPlatform.Win32) || (Target.Platform == UnrealTargetPlatform.Win64)) { if (!WindowsPlatform.IsWindowsXPSupported()) { 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"); // CL 2712559 introduced dependency on Json module for everything that includes OnlineJsonSerializer.h // (only relevant to debug since in other configurations functions get inlined) if (Target.Configuration == UnrealTargetConfiguration.Debug) { PrivateDependencyModuleNames.Add("Json"); } } PrivateIncludePathModuleNames.AddRange( new string[] { "SlateRHIRenderer", } ); DynamicallyLoadedModuleNames.AddRange( new string[] { "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" }); } if (UEBuildConfiguration.bBuildEditor == true) { PublicIncludePathModuleNames.Add("ProfilerClient"); PrivateDependencyModuleNames.AddRange( new string[] { "SourceControl", "UnrealEd", "DesktopPlatform" } ); // ExtraModules that are loaded when WITH_EDITOR=1 is true DynamicallyLoadedModuleNames.AddRange( new string[] { "AutomationController", "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) { 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"); } AddThirdPartyPrivateStaticDependencies(Target, "SDL2"); } // @todo ps4 clang bug: this works around a PS4/clang compiler bug (optimizations) if (Target.Platform == UnrealTargetPlatform.PS4) { bFasterWithoutUnity = true; } }
public CEF3(ReadOnlyTargetRules Target) : base(Target) { /** Mark the current version of the library */ string CEFVersion = "3.2623.1395.g3034273"; string CEFPlatform = ""; Type = ModuleType.External; if (Target.Platform == UnrealTargetPlatform.Win64) { CEFPlatform = "windows64"; } else if (Target.Platform == UnrealTargetPlatform.Win32) { CEFPlatform = "windows32"; } else if (Target.Platform == UnrealTargetPlatform.Mac) { CEFPlatform = "macosx64"; } else if (Target.Platform == UnrealTargetPlatform.Linux) { CEFPlatform = "linux64"; } if (CEFPlatform.Length > 0 && UEBuildConfiguration.bCompileCEF3) { string PlatformPath = Path.Combine(UEBuildConfiguration.UEThirdPartySourceDirectory, "CEF3", "cef_binary_" + CEFVersion + "_" + CEFPlatform); PublicSystemIncludePaths.Add(PlatformPath); string LibraryPath = Path.Combine(PlatformPath, "Release"); string RuntimePath = Path.Combine(UEBuildConfiguration.UEThirdPartyBinariesDirectory, "CEF3", Target.Platform.ToString()); if (Target.Platform == UnrealTargetPlatform.Win64 || Target.Platform == UnrealTargetPlatform.Win32) { PublicLibraryPaths.Add(LibraryPath); PublicAdditionalLibraries.Add("libcef.lib"); // There are different versions of the C++ wrapper lib depending on the version of VS we're using string VSVersionFolderName = "VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); string WrapperLibraryPath = Path.Combine(PlatformPath, VSVersionFolderName, "libcef_dll"); if (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT) { WrapperLibraryPath += "/Debug"; } else { WrapperLibraryPath += "/Release"; } PublicLibraryPaths.Add(WrapperLibraryPath); PublicAdditionalLibraries.Add("libcef_dll_wrapper.lib"); string[] Dlls = { "d3dcompiler_43.dll", "d3dcompiler_47.dll", "libcef.dll", "libEGL.dll", "libGLESv2.dll", }; PublicDelayLoadDLLs.AddRange(Dlls); // Add the runtime dlls to the build receipt foreach (string Dll in Dlls) { RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/ThirdParty/CEF3/" + Target.Platform.ToString() + "/" + Dll)); } // We also need the icu translations table required by CEF RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/ThirdParty/CEF3/" + Target.Platform.ToString() + "/icudtl.dat")); // Add the V8 binary data files as well RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/ThirdParty/CEF3/" + Target.Platform.ToString() + "/natives_blob.bin")); RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/ThirdParty/CEF3/" + Target.Platform.ToString() + "/snapshot_blob.bin")); // For Win32 builds, we need a helper executable when running under WOW (32 bit apps under 64 bit windows) if (Target.Platform == UnrealTargetPlatform.Win32) { RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/ThirdParty/CEF3/Win32/wow_helper.exe")); } // And the entire Resources folder. Enunerate the entire directory instead of mentioning each file manually here. foreach (string FileName in Directory.EnumerateFiles(Path.Combine(RuntimePath, "Resources"), "*", SearchOption.AllDirectories)) { string DependencyName = FileName.Substring(UEBuildConfiguration.UEThirdPartyBinariesDirectory.Length).Replace('\\', '/'); RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/ThirdParty/" + DependencyName)); } } // TODO: Ensure these are filled out correctly when adding other platforms else if (Target.Platform == UnrealTargetPlatform.Mac) { string WrapperPath = LibraryPath + "/libcef_dll_wrapper.a"; string FrameworkPath = UEBuildConfiguration.UEThirdPartyBinariesDirectory + "CEF3/Mac/Chromium Embedded Framework.framework"; PublicAdditionalLibraries.Add(WrapperPath); PublicFrameworks.Add(FrameworkPath); if (Directory.Exists(LibraryPath + "/locale")) { var LocaleFolders = Directory.GetFileSystemEntries(LibraryPath + "/locale", "*.lproj"); foreach (var FolderName in LocaleFolders) { AdditionalBundleResources.Add(new UEBuildBundleResource(FolderName, bInShouldLog: false)); } } // Add contents of framework directory as runtime dependencies foreach (string FilePath in Directory.EnumerateFiles(FrameworkPath, "*", SearchOption.AllDirectories)) { RuntimeDependencies.Add(new RuntimeDependency(FilePath)); } } else if (Target.Platform == UnrealTargetPlatform.Linux) { PublicLibraryPaths.Add(LibraryPath); PublicAdditionalLibraries.Add("cef"); string Configuration; if (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT) { Configuration = "build_debug"; } else { Configuration = "build_release"; } string WrapperLibraryPath = Path.Combine(PlatformPath, Configuration, "libcef_dll"); PublicLibraryPaths.Add(WrapperLibraryPath); PublicAdditionalLibraries.Add("cef_dll_wrapper"); RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/ThirdParty/CEF3/" + Target.Platform.ToString() + "/libcef.so")); RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/ThirdParty/CEF3/" + Target.Platform.ToString() + "/icudtl.dat")); RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/ThirdParty/CEF3/" + Target.Platform.ToString() + "/natives_blob.bin")); RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/ThirdParty/CEF3/" + Target.Platform.ToString() + "/snapshot_blob.bin")); // And the entire Resources folder. Enunerate the entire directory instead of mentioning each file manually here. foreach (string FileName in Directory.EnumerateFiles(Path.Combine(RuntimePath, "Resources"), "*", SearchOption.AllDirectories)) { string DependencyName = FileName.Substring(UEBuildConfiguration.UEThirdPartyBinariesDirectory.Length).Replace('\\', '/'); RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/ThirdParty/" + DependencyName)); } } } }
public static string GetUpgradeHighestAvailableVersionDirectory() { return(WindowsPlatform.GetUpgradeHighestAvailableVersionDirectoryImplementation()); }
public static bool IsElevated() { return(WindowsPlatform.IsElevatedImplementation()); }
public static string GetNamedPipeName(string enlistmentRoot) { return(WindowsPlatform.GetNamedPipeNameImplementation(enlistmentRoot)); }
public static bool TryGetGVFSEnlistmentRoot(string directory, out string enlistmentRoot, out string errorMessage) { return(WindowsPlatform.TryGetGVFSEnlistmentRootImplementation(directory, out enlistmentRoot, out errorMessage)); }
public UEOgg(TargetInfo Target) { Type = ModuleType.External; string OggPath = UEBuildConfiguration.UEThirdPartySourceDirectory + "Ogg/libogg-1.2.2/"; PublicSystemIncludePaths.Add(OggPath + "include"); string OggLibPath = OggPath + "lib/"; if (Target.Platform == UnrealTargetPlatform.Win64) { OggLibPath += "Win64/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); PublicLibraryPaths.Add(OggLibPath); PublicAdditionalLibraries.Add("libogg_64.lib"); PublicDelayLoadDLLs.Add("libogg_64.dll"); RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/ThirdParty/Ogg/Win64/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName() + "/libogg_64.dll")); } else if (Target.Platform == UnrealTargetPlatform.Win32) { OggLibPath += "Win32/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); PublicLibraryPaths.Add(OggLibPath); PublicAdditionalLibraries.Add("libogg.lib"); PublicDelayLoadDLLs.Add("libogg.dll"); RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/ThirdParty/Ogg/Win32/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName() + "/libogg.dll")); } else if (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32") // simulator { OggLibPath += "HTML5Win32"; PublicLibraryPaths.Add(OggLibPath); PublicAdditionalLibraries.Add("libogg.lib"); } else if (Target.Platform == UnrealTargetPlatform.Mac) { PublicAdditionalLibraries.Add(OggPath + "macosx/libogg.dylib"); } else if (Target.Platform == UnrealTargetPlatform.HTML5) { string OpimizationSuffix = ""; if (UEBuildConfiguration.bCompileForSize) { OpimizationSuffix = "_Oz"; } else { if (Target.Configuration == UnrealTargetConfiguration.Development) { OpimizationSuffix = "_O2"; } else if (Target.Configuration == UnrealTargetConfiguration.Shipping) { OpimizationSuffix = "_O3"; } } PublicAdditionalLibraries.Add(OggLibPath + "HTML5/libogg" + OpimizationSuffix + ".bc"); } else if (Target.Platform == UnrealTargetPlatform.Android) { // Filtered in the toolchain. PublicLibraryPaths.Add(OggLibPath + "Android/ARMv7"); PublicLibraryPaths.Add(OggLibPath + "Android/ARM64"); PublicLibraryPaths.Add(OggLibPath + "Android/x86"); PublicLibraryPaths.Add(OggLibPath + "Android/x64"); PublicAdditionalLibraries.Add("ogg"); } else if (Target.Platform == UnrealTargetPlatform.Linux) { if (Target.IsMonolithic) { PublicAdditionalLibraries.Add(OggLibPath + "Linux/" + Target.Architecture + "/libogg.a"); } else { PublicAdditionalLibraries.Add(OggLibPath + "Linux/" + Target.Architecture + "/libogg_fPIC.a"); } } }
public UEOpenExr(TargetInfo Target) { Type = ModuleType.External; if (Target.Platform == UnrealTargetPlatform.Win64 || Target.Platform == UnrealTargetPlatform.Win32 || Target.Platform == UnrealTargetPlatform.Mac) { bool bDebug = (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT); string LibDir = UEBuildConfiguration.UEThirdPartySourceDirectory + "openexr/Deploy/lib/"; string Platform; switch (Target.Platform) { case UnrealTargetPlatform.Win64: Platform = "x64"; LibDir += "VS" + WindowsPlatform.GetVisualStudioCompilerVersionName() + "/"; break; case UnrealTargetPlatform.Win32: Platform = "Win32"; LibDir += "VS" + WindowsPlatform.GetVisualStudioCompilerVersionName() + "/"; break; case UnrealTargetPlatform.Mac: Platform = "Mac"; bDebug = false; break; default: return; } LibDir = LibDir + "/" + Platform; LibDir = LibDir + "/Static" + (bDebug ? "Debug" : "Release"); PublicLibraryPaths.Add(LibDir); if (Target.Platform == UnrealTargetPlatform.Win64 || Target.Platform == UnrealTargetPlatform.Win32) { PublicAdditionalLibraries.AddRange( new string[] { "Half.lib", "Iex.lib", "IlmImf.lib", "IlmThread.lib", "Imath.lib", } ); } else if (Target.Platform == UnrealTargetPlatform.Mac) { PublicAdditionalLibraries.AddRange( new string[] { LibDir + "/libHalf.a", LibDir + "/libIex.a", LibDir + "/libIlmImf.a", LibDir + "/libIlmThread.a", LibDir + "/libImath.a", } ); } PublicSystemIncludePaths.AddRange( new string[] { UEBuildConfiguration.UEThirdPartySourceDirectory + "openexr/Deploy/include", } ); } }
public libcurl(TargetInfo Target) { Type = ModuleType.External; Definitions.Add("WITH_LIBCURL=1"); string NewLibCurlPath = UEBuildConfiguration.UEThirdPartySourceDirectory + "libcurl/7_48_0/"; string LibCurlPath = UEBuildConfiguration.UEThirdPartySourceDirectory + "libcurl/curl-7.47.1/"; // TODO: latest recompile for consoles and mobile platforms string OldLibCurlPath = UEBuildConfiguration.UEThirdPartySourceDirectory + "libcurl/"; if (Target.Platform == UnrealTargetPlatform.Linux) { string platform = "/Linux/" + Target.Architecture; string IncludePath = NewLibCurlPath + "include" + platform; string LibraryPath = NewLibCurlPath + "lib" + platform; PublicIncludePaths.Add(IncludePath); PublicLibraryPaths.Add(LibraryPath); PublicAdditionalLibraries.Add(LibraryPath + "/libcurl.a"); PrivateDependencyModuleNames.Add("SSL"); } else if (Target.Platform == UnrealTargetPlatform.Android) { // toolchain will filter properly PublicIncludePaths.Add(OldLibCurlPath + "include/Android/ARMv7"); PublicLibraryPaths.Add(OldLibCurlPath + "lib/Android/ARMv7"); PublicIncludePaths.Add(OldLibCurlPath + "include/Android/ARM64"); PublicLibraryPaths.Add(OldLibCurlPath + "lib/Android/ARM64"); PublicIncludePaths.Add(OldLibCurlPath + "include/Android/x86"); PublicLibraryPaths.Add(OldLibCurlPath + "lib/Android/x86"); PublicIncludePaths.Add(OldLibCurlPath + "include/Android/x64"); PublicLibraryPaths.Add(OldLibCurlPath + "lib/Android/x64"); PublicAdditionalLibraries.Add("curl"); // PublicAdditionalLibraries.Add("crypto"); // PublicAdditionalLibraries.Add("ssl"); // PublicAdditionalLibraries.Add("dl"); } else if (Target.Platform == UnrealTargetPlatform.Mac) { string PlatformSubdir = "/Mac/"; PublicIncludePaths.Add(LibCurlPath + "include" + PlatformSubdir); // OSX needs full path PublicAdditionalLibraries.Add(LibCurlPath + "lib" + PlatformSubdir + "libcurl.a"); } else if (Target.Platform == UnrealTargetPlatform.Win32 || Target.Platform == UnrealTargetPlatform.Win64 || (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32")) { string PlatformSubdir = (Target.Platform == UnrealTargetPlatform.HTML5) ? "Win32" : Target.Platform.ToString(); PublicIncludePaths.Add(LibCurlPath + "/include/" + PlatformSubdir + "/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName()); PublicLibraryPaths.Add(LibCurlPath + "/lib/" + PlatformSubdir + "/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName()); PublicAdditionalLibraries.Add("libcurl_a.lib"); Definitions.Add("CURL_STATICLIB=1"); } }
public PhysX(TargetInfo Target) { Type = ModuleType.External; // Determine which kind of libraries to link against PhysXLibraryMode LibraryMode = GetPhysXLibraryMode(Target.Configuration); // Quick Mac hack if (Target.Platform == UnrealTargetPlatform.Mac && (LibraryMode == PhysXLibraryMode.Checked || LibraryMode == PhysXLibraryMode.Shipping)) { LibraryMode = PhysXLibraryMode.Profile; } string LibrarySuffix = GetPhysXLibrarySuffix(LibraryMode); Definitions.Add("WITH_PHYSX=1"); if (UEBuildConfiguration.bCompileAPEX == false) { // Since APEX is dependent on PhysX, if APEX is not being include, set the flag properly. // This will properly cover the case where PhysX is compiled but APEX is not. Definitions.Add("WITH_APEX=0"); } if (UEBuildConfiguration.bCompilePhysXVehicle == false) { // Since PhysX Vehicle is dependent on PhysX, if Vehicle is not being include, set the flag properly. // This will properly cover the case where PhysX is compiled but Vehicle is not. Definitions.Add("WITH_VEHICLE=0"); } if (LibraryMode == PhysXLibraryMode.Shipping) { Definitions.Add("WITH_PHYSX_RELEASE=1"); } else { Definitions.Add("WITH_PHYSX_RELEASE=0"); } if (LibraryMode == PhysXLibraryMode.Checked) { Definitions.Add("WITH_PHYSX_CHECKED=1"); } else { Definitions.Add("WITH_PHYSX_CHECKED=0"); } string PhysXVersion = "PhysX-3.3"; string PhysXDir = UEBuildConfiguration.UEThirdPartySourceDirectory + "PhysX/" + PhysXVersion + "/"; string PhysXLibDir = PhysXDir + "lib/"; PublicSystemIncludePaths.AddRange( new string[] { PhysXDir + "include", PhysXDir + "include/foundation", PhysXDir + "include/cooking", PhysXDir + "include/common", PhysXDir + "include/extensions", PhysXDir + "include/geometry", PhysXDir + "include/vehicle" } ); // Libraries and DLLs for windows platform if (Target.Platform == UnrealTargetPlatform.Win64) { PublicSystemIncludePaths.Add(PhysXDir + "include/foundation/windows"); PhysXLibDir += "Win64/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); PublicLibraryPaths.Add(PhysXLibDir); string[] StaticLibrariesX64 = new string[] { "PhysX3{0}_x64.lib", "PhysX3Extensions{0}.lib", "PhysX3Cooking{0}_x64.lib", "PhysX3Common{0}_x64.lib", "PhysX3Vehicle{0}.lib", "PxTask{0}.lib", "PhysXVisualDebuggerSDK{0}.lib", "PhysXProfileSDK{0}.lib" }; string[] DelayLoadDLLsX64 = new string[] { "PhysX3{0}_x64.dll", "PhysX3Cooking{0}_x64.dll", "PhysX3Common{0}_x64.dll" }; string[] RuntimeDependenciesX64 = new string[] { "PhysX3{0}_x64.dll", "PhysX3Common{0}_x64.dll", "PhysX3Cooking{0}_x64.dll", }; foreach (string Lib in StaticLibrariesX64) { PublicAdditionalLibraries.Add(String.Format(Lib, LibrarySuffix)); } foreach (string DLL in DelayLoadDLLsX64) { PublicDelayLoadDLLs.Add(String.Format(DLL, LibrarySuffix)); } PublicDelayLoadDLLs.Add("nvToolsExt64_1.dll"); string PhysXBinariesDir = String.Format("$(EngineDir)/Binaries/ThirdParty/PhysX/{0}/Win64/VS{1}/", PhysXVersion, WindowsPlatform.GetVisualStudioCompilerVersionName()); foreach (string DLL in RuntimeDependenciesX64) { string FileName = PhysXBinariesDir + String.Format(DLL, LibrarySuffix); RuntimeDependencies.Add(FileName, StagedFileType.NonUFS); RuntimeDependencies.Add(Path.ChangeExtension(FileName, ".pdb"), StagedFileType.DebugNonUFS); } RuntimeDependencies.Add(PhysXBinariesDir + "nvToolsExt64_1.dll", StagedFileType.NonUFS); } else if (Target.Platform == UnrealTargetPlatform.Win32 || (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32")) { PublicIncludePaths.Add(PhysXDir + "include/foundation/windows"); PhysXLibDir += "Win32/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); PublicLibraryPaths.Add(PhysXLibDir); string[] StaticLibrariesX86 = new string[] { "PhysX3{0}_x86.lib", "PhysX3Extensions{0}.lib", "PhysX3Cooking{0}_x86.lib", "PhysX3Common{0}_x86.lib", "PhysX3Vehicle{0}.lib", "PxTask{0}.lib", "PhysXVisualDebuggerSDK{0}.lib", "PhysXProfileSDK{0}.lib" }; string[] DelayLoadDLLsX86 = new string[] { "PhysX3{0}_x86.dll", "PhysX3Cooking{0}_x86.dll", "PhysX3Common{0}_x86.dll" }; string[] RuntimeDependenciesX86 = new string[] { "PhysX3{0}_x86.dll", "PhysX3Common{0}_x86.dll", "PhysX3Cooking{0}_x86.dll", }; foreach (string Lib in StaticLibrariesX86) { PublicAdditionalLibraries.Add(String.Format(Lib, LibrarySuffix)); } foreach (string DLL in DelayLoadDLLsX86) { PublicDelayLoadDLLs.Add(String.Format(DLL, LibrarySuffix)); } PublicDelayLoadDLLs.Add("nvToolsExt32_1.dll"); string PhysXBinariesDir = String.Format("$(EngineDir)/Binaries/ThirdParty/PhysX/{0}/Win32/VS{1}/", PhysXVersion, WindowsPlatform.GetVisualStudioCompilerVersionName()); foreach (string DLL in RuntimeDependenciesX86) { string FileName = PhysXBinariesDir + String.Format(DLL, LibrarySuffix); RuntimeDependencies.Add(FileName, StagedFileType.NonUFS); RuntimeDependencies.Add(Path.ChangeExtension(FileName, ".pdb"), StagedFileType.DebugNonUFS); } RuntimeDependencies.Add(PhysXBinariesDir + "nvToolsExt32_1.dll", StagedFileType.NonUFS); } else if (Target.Platform == UnrealTargetPlatform.Mac) { PublicSystemIncludePaths.Add(PhysXDir + "include/foundation/unix"); PhysXLibDir += "/osx64"; PublicLibraryPaths.Add(PhysXLibDir); string[] StaticLibrariesMac = new string[] { PhysXLibDir + "/libLowLevel{0}.a", PhysXLibDir + "/libLowLevelCloth{0}.a", PhysXLibDir + "/libPhysX3{0}.a", PhysXLibDir + "/libPhysX3Extensions{0}.a", PhysXLibDir + "/libPhysX3Cooking{0}.a", PhysXLibDir + "/libPhysX3Common{0}.a", PhysXLibDir + "/libPhysX3Vehicle{0}.a", PhysXLibDir + "/libPxTask{0}.a", PhysXLibDir + "/libPhysXVisualDebuggerSDK{0}.a", PhysXLibDir + "/libPhysXProfileSDK{0}.a", PhysXLibDir + "/libPvdRuntime{0}.a", PhysXLibDir + "/libSceneQuery{0}.a", PhysXLibDir + "/libSimulationController{0}.a" }; foreach (string Lib in StaticLibrariesMac) { PublicAdditionalLibraries.Add(String.Format(Lib, LibrarySuffix)); } } else if (Target.Platform == UnrealTargetPlatform.Android) { PublicSystemIncludePaths.Add(PhysXDir + "include/foundation/unix"); PublicLibraryPaths.Add(PhysXLibDir + "Android/ARMv7"); PublicLibraryPaths.Add(PhysXLibDir + "Android/x86"); PublicLibraryPaths.Add(PhysXLibDir + "Android/arm64"); PublicLibraryPaths.Add(PhysXLibDir + "Android/x64"); string[] StaticLibrariesAndroid = new string[] { "LowLevel{0}", "LowLevelCloth{0}", "PhysX3{0}", "PhysX3Extensions{0}", // "PhysX3Cooking{0}", // not needed until Apex "PhysX3Common{0}", "PhysX3Vehicle{0}", "PxTask{0}", "PhysXVisualDebuggerSDK{0}", "PhysXProfileSDK{0}", "PvdRuntime{0}", "SceneQuery{0}", "SimulationController{0}", }; // shipping libs do not need this if (LibraryMode != PhysXLibraryMode.Shipping) { // use for profiling, but crash handler won't work // PublicAdditionalLibraries.Add("nvToolsExt"); // disables profiling, crash handler will work PublicAdditionalLibraries.Add("nvToolsExtStub"); } foreach (string Lib in StaticLibrariesAndroid) { PublicAdditionalLibraries.Add(String.Format(Lib, LibrarySuffix)); } } else if (Target.Platform == UnrealTargetPlatform.Linux) { PhysXLibDir += "/Linux/" + Target.Architecture; PublicSystemIncludePaths.Add(PhysXDir + "include/foundation/unix"); PublicLibraryPaths.Add(PhysXLibDir); string[] StaticLibrariesLinux = new string[] { "rt", "LowLevel{0}", "LowLevelCloth{0}", "PhysX3{0}", "PhysX3Extensions{0}", "PhysX3Cooking{0}", "PhysX3Common{0}", "PhysX3Vehicle{0}", "PxTask{0}", "PhysXVisualDebuggerSDK{0}", "PhysXProfileSDK{0}", "PvdRuntime{0}", "SceneQuery{0}", "SimulationController{0}", }; if (LibraryMode == PhysXLibraryMode.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT) { //@TODO: Needed? PublicAdditionalLibraries.Add("m"); } foreach (string Lib in StaticLibrariesLinux) { PublicAdditionalLibraries.Add(String.Format(Lib, LibrarySuffix)); } } else if (Target.Platform == UnrealTargetPlatform.IOS || Target.Platform == UnrealTargetPlatform.TVOS) { PublicSystemIncludePaths.Add(PhysXDir + "include/foundation/unix"); PhysXLibDir = Path.Combine(PhysXLibDir, Target.Platform.ToString()); PublicLibraryPaths.Add(PhysXLibDir); string[] PhysXLibs = new string[] { "LowLevel", "LowLevelCloth", "PhysX3", "PhysX3Common", // "PhysX3Cooking", // not needed until Apex "PhysX3Extensions", "PhysX3Vehicle", "PxTask", "PhysXVisualDebuggerSDK", "PhysXProfileSDK", "PvdRuntime", "SceneQuery", "SimulationController", }; foreach (string PhysXLib in PhysXLibs) { PublicAdditionalLibraries.Add(PhysXLib + LibrarySuffix); PublicAdditionalShadowFiles.Add(Path.Combine(PhysXLibDir, "lib" + PhysXLib + LibrarySuffix + ".a")); } } else if (Target.Platform == UnrealTargetPlatform.HTML5) { PublicSystemIncludePaths.Add(PhysXDir + "include/foundation/unix"); PhysXLibDir = Path.Combine(PhysXLibDir, "HTML5/"); string[] PhysXLibs = new string[] { "LowLevel", "LowLevelCloth", "PhysX3", "PhysX3Common", "PhysX3Cooking", "PhysX3Extensions", "PxTask", "PhysXVisualDebuggerSDK", "PhysXProfileSDK", "PvdRuntime", "SceneQuery", "SimulationController", }; foreach (var lib in PhysXLibs) { if (!lib.Contains("Cooking") || Target.IsCooked == false) { PublicAdditionalLibraries.Add(PhysXLibDir + lib + (UEBuildConfiguration.bCompileForSize ? "_Oz" : "") + ".bc"); } } if (UEBuildConfiguration.bCompilePhysXVehicle) { string[] PhysXVehicleLibs = new string[] { "PhysX3Vehicle", }; foreach (var lib in PhysXVehicleLibs) { if (!lib.Contains("Cooking") || Target.IsCooked == false) { PublicAdditionalLibraries.Add(PhysXLibDir + lib + (UEBuildConfiguration.bCompileForSize ? "_Oz" : "") + ".bc"); } } } } else if (Target.Platform == UnrealTargetPlatform.PS4) { PublicSystemIncludePaths.Add(PhysXDir + "include/foundation/PS4"); PublicLibraryPaths.Add(PhysXDir + "lib/PS4"); string[] StaticLibrariesPS4 = new string[] { "PhysX3{0}", "PhysX3Extensions{0}", "PhysX3Cooking{0}", "PhysX3Common{0}", "PhysX3Vehicle{0}", "PxTask{0}", "PhysXVisualDebuggerSDK{0}", "PhysXProfileSDK{0}" }; foreach (string Lib in StaticLibrariesPS4) { PublicAdditionalLibraries.Add(String.Format(Lib, LibrarySuffix)); } } else 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); PublicSystemIncludePaths.Add("include/foundation/xboxone"); PublicLibraryPaths.Add(PhysXDir + "Lib/XboxOne/VS" + VersionName.ToString()); string[] StaticLibrariesXB1 = new string[] { "PhysX3{0}.lib", "PhysX3Extensions{0}.lib", "PhysX3Cooking{0}.lib", "PhysX3Common{0}.lib", "PhysX3Vehicle{0}.lib", "PxTask{0}.lib", "PhysXVisualDebuggerSDK{0}.lib", "PhysXProfileSDK{0}.lib" }; foreach (string Lib in StaticLibrariesXB1) { PublicAdditionalLibraries.Add(String.Format(Lib, LibrarySuffix)); } } } }
public APEX(ReadOnlyTargetRules Target) : base(Target) { Type = ModuleType.External; // Determine which kind of libraries to link against APEXLibraryMode LibraryMode = GetAPEXLibraryMode(Target.Configuration); string LibrarySuffix = GetAPEXLibrarySuffix(LibraryMode); string ApexVersion = "APEX_1.4"; string APEXDir = UEBuildConfiguration.UEThirdPartySourceDirectory + "PhysX/" + ApexVersion + "/"; string APEXLibDir = UEBuildConfiguration.UEThirdPartySourceDirectory + "PhysX/Lib"; PublicSystemIncludePaths.AddRange( new string[] { APEXDir + "include", APEXDir + "include/clothing", APEXDir + "include/destructible", APEXDir + "include/nvparameterized", APEXDir + "include/legacy", APEXDir + "include/PhysX3", APEXDir + "common/include", APEXDir + "common/include/autogen", APEXDir + "framework/include", APEXDir + "framework/include/autogen", APEXDir + "shared/general/RenderDebug/public", APEXDir + "shared/general/PairFilter/include", APEXDir + "shared/internal/include", APEXDir + "externals/CUDA_6.5.19/include", } ); // List of default library names (unused unless LibraryFormatString is non-null) List <string> ApexLibraries = new List <string>(); ApexLibraries.AddRange( new string[] { "ApexCommon{0}", "ApexFramework{0}", "ApexShared{0}", "APEX_Destructible{0}", "APEX_Clothing{0}", }); string LibraryFormatString = null; bool bIsApexStaticallyLinked = false; bool bHasApexLegacy = true; // Libraries and DLLs for windows platform if (Target.Platform == UnrealTargetPlatform.Win64) { APEXLibDir += "/Win64/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); PublicLibraryPaths.Add(APEXLibDir); PublicAdditionalLibraries.Add(String.Format("APEXFramework{0}_x64.lib", LibrarySuffix)); PublicDelayLoadDLLs.Add(String.Format("APEXFramework{0}_x64.dll", LibrarySuffix)); string[] RuntimeDependenciesX64 = { "APEX_Clothing{0}_x64.dll", "APEX_Destructible{0}_x64.dll", "APEX_Legacy{0}_x64.dll", "ApexFramework{0}_x64.dll", }; string ApexBinariesDir = String.Format("$(EngineDir)/Binaries/ThirdParty/PhysX/Win64/VS{0}/", WindowsPlatform.GetVisualStudioCompilerVersionName()); foreach (string RuntimeDependency in RuntimeDependenciesX64) { string FileName = ApexBinariesDir + String.Format(RuntimeDependency, LibrarySuffix); RuntimeDependencies.Add(FileName, StagedFileType.NonUFS); RuntimeDependencies.Add(Path.ChangeExtension(FileName, ".pdb"), StagedFileType.DebugNonUFS); } if (LibrarySuffix != "") { Definitions.Add("UE_APEX_SUFFIX=" + LibrarySuffix); } } else if (Target.Platform == UnrealTargetPlatform.Win32) { APEXLibDir += "/Win32/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); PublicLibraryPaths.Add(APEXLibDir); PublicAdditionalLibraries.Add(String.Format("APEXFramework{0}_x86.lib", LibrarySuffix)); PublicDelayLoadDLLs.Add(String.Format("APEXFramework{0}_x86.dll", LibrarySuffix)); string[] RuntimeDependenciesX86 = { "APEX_Clothing{0}_x86.dll", "APEX_Destructible{0}_x86.dll", "APEX_Legacy{0}_x86.dll", "ApexFramework{0}_x86.dll", }; string ApexBinariesDir = String.Format("$(EngineDir)/Binaries/ThirdParty/PhysX/Win32/VS{0}/", WindowsPlatform.GetVisualStudioCompilerVersionName()); foreach (string RuntimeDependency in RuntimeDependenciesX86) { string FileName = ApexBinariesDir + String.Format(RuntimeDependency, LibrarySuffix); RuntimeDependencies.Add(FileName, StagedFileType.NonUFS); RuntimeDependencies.Add(Path.ChangeExtension(FileName, ".pdb"), StagedFileType.DebugNonUFS); } if (LibrarySuffix != "") { Definitions.Add("UE_APEX_SUFFIX=" + LibrarySuffix); } } else if (Target.Platform == UnrealTargetPlatform.Mac) { APEXLibDir += "/Mac"; ApexLibraries.Clear(); ApexLibraries.AddRange( new string[] { "ApexCommon{0}", "ApexShared{0}", }); LibraryFormatString = APEXLibDir + "/lib{0}" + ".a"; string[] DynamicLibrariesMac = new string[] { "/libAPEX_Clothing{0}.dylib", "/libAPEX_Destructible{0}.dylib", "/libAPEX_Legacy{0}.dylib", "/libApexFramework{0}.dylib" }; string PhysXBinariesDir = UEBuildConfiguration.UEThirdPartyBinariesDirectory + "PhysX/Mac"; foreach (string Lib in DynamicLibrariesMac) { string LibraryPath = PhysXBinariesDir + String.Format(Lib, LibrarySuffix); PublicDelayLoadDLLs.Add(LibraryPath); RuntimeDependencies.Add(new RuntimeDependency(LibraryPath)); } if (LibrarySuffix != "") { Definitions.Add("UE_APEX_SUFFIX=" + LibrarySuffix); } } else if (Target.Platform == UnrealTargetPlatform.Linux) { if (Target.Architecture.StartsWith("x86_64")) { APEXLibDir += "/Linux/" + Target.Architecture; bIsApexStaticallyLinked = true; ApexLibraries.Add("APEX_Clothing{0}"); ApexLibraries.Add("APEX_Destructible{0}"); ApexLibraries.Add("APEX_Legacy{0}"); ApexLibraries.Add("ApexFramework{0}"); LibraryFormatString = APEXLibDir + "/lib{0}" + ".a"; } } else if (Target.Platform == UnrealTargetPlatform.PS4) { bIsApexStaticallyLinked = true; bHasApexLegacy = false; APEXLibDir += "/PS4"; PublicLibraryPaths.Add(APEXLibDir); ApexLibraries.Add("NvParameterized{0}"); ApexLibraries.Add("RenderDebug{0}"); LibraryFormatString = "{0}"; } else if (Target.Platform == UnrealTargetPlatform.XboxOne) { bIsApexStaticallyLinked = true; bHasApexLegacy = false; Definitions.Add("_XBOX_ONE=1"); // This MUST be defined for XboxOne! Definitions.Add("PX_HAS_SECURE_STRCPY=1"); APEXLibDir += "/XboxOne/VS2015"; PublicLibraryPaths.Add(APEXLibDir); ApexLibraries.Add("NvParameterized{0}"); ApexLibraries.Add("RenderDebug{0}"); LibraryFormatString = "{0}.lib"; } else if (Target.Platform == UnrealTargetPlatform.Switch) { bIsApexStaticallyLinked = true; bHasApexLegacy = false; APEXLibDir += "/Switch"; PublicLibraryPaths.Add(APEXLibDir); ApexLibraries.Add("NvParameterized{0}"); ApexLibraries.Add("RenderDebug{0}"); LibraryFormatString = "{0}"; } Definitions.Add("APEX_UE4=1"); Definitions.Add(string.Format("APEX_STATICALLY_LINKED={0}", bIsApexStaticallyLinked ? 1 : 0)); Definitions.Add(string.Format("WITH_APEX_LEGACY={0}", bHasApexLegacy ? 1 : 0)); // Add the libraries needed (used for all platforms except Windows) if (LibraryFormatString != null) { foreach (string Lib in ApexLibraries) { string ConfiguredLib = String.Format(Lib, LibrarySuffix); string FinalLib = String.Format(LibraryFormatString, ConfiguredLib); PublicAdditionalLibraries.Add(FinalLib); } } }
public PhysXVehicleLib(ReadOnlyTargetRules Target) : base(Target) { Type = ModuleType.External; // Determine which kind of libraries to link against PhysXLibraryMode LibraryMode = GetPhysXLibraryMode(Target.Configuration); string LibrarySuffix = GetPhysXLibrarySuffix(LibraryMode); string PhysXLibDir = UEBuildConfiguration.UEThirdPartySourceDirectory + "PhysX/Lib/"; // Libraries and DLLs for windows platform if (Target.Platform == UnrealTargetPlatform.Win64) { PublicLibraryPaths.Add(PhysXLibDir + "Win64/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName()); PublicAdditionalLibraries.Add(String.Format("PhysX3Vehicle{0}_x64.lib", LibrarySuffix)); } else if (Target.Platform == UnrealTargetPlatform.Win32 || (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32")) { PublicLibraryPaths.Add(PhysXLibDir + "Win32/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName()); PublicAdditionalLibraries.Add(String.Format("PhysX3Vehicle{0}_x86.lib", LibrarySuffix)); } else if (Target.Platform == UnrealTargetPlatform.Mac) { PublicLibraryPaths.Add(PhysXLibDir + "Mac"); PublicAdditionalLibraries.Add(String.Format(PhysXLibDir + "Mac/libPhysX3Vehicle{0}.a", LibrarySuffix)); } else if (Target.Platform == UnrealTargetPlatform.Android) { PublicLibraryPaths.Add(PhysXLibDir + "Android/ARMv7"); PublicLibraryPaths.Add(PhysXLibDir + "Android/x86"); PublicLibraryPaths.Add(PhysXLibDir + "Android/ARM64"); PublicLibraryPaths.Add(PhysXLibDir + "Android/x64"); PublicAdditionalLibraries.Add(String.Format("PhysX3Vehicle{0}", LibrarySuffix)); } else if (Target.Platform == UnrealTargetPlatform.Linux) { PublicLibraryPaths.Add(PhysXLibDir + "Linux/" + Target.Architecture); PublicAdditionalLibraries.Add(String.Format("PhysX3Vehicle{0}", LibrarySuffix)); } else if (Target.Platform == UnrealTargetPlatform.IOS) { PublicLibraryPaths.Add(PhysXLibDir + "IOS"); PublicAdditionalLibraries.Add("PhysX3Vehicle" + LibrarySuffix); PublicAdditionalShadowFiles.Add(Path.Combine(PhysXLibDir, "IOS", "libPhysX3Vehicle" + LibrarySuffix + ".a")); } else if (Target.Platform == UnrealTargetPlatform.TVOS) { PublicLibraryPaths.Add(PhysXLibDir + "TVOS"); PublicAdditionalLibraries.Add("PhysX3Vehicle" + LibrarySuffix); PublicAdditionalShadowFiles.Add(Path.Combine(PhysXLibDir, "TVOS", "libPhysX3Vehicle" + LibrarySuffix + ".a")); } else if (Target.Platform == UnrealTargetPlatform.HTML5) { PublicAdditionalLibraries.Add(PhysXLibDir + "HTML5/PhysX3Vehicle" + (UEBuildConfiguration.bCompileForSize ? "_Oz" : "") + ".bc"); } else if (Target.Platform == UnrealTargetPlatform.PS4) { PublicLibraryPaths.Add(PhysXLibDir + "PS4"); PublicAdditionalLibraries.Add(String.Format("PhysX3Vehicle{0}", LibrarySuffix)); } else if (Target.Platform == UnrealTargetPlatform.XboxOne) { PublicLibraryPaths.Add(Path.Combine(PhysXLibDir, "XboxOne\\VS2015")); PublicAdditionalLibraries.Add(String.Format("PhysX3Vehicle{0}.lib", LibrarySuffix)); } else if (Target.Platform == UnrealTargetPlatform.Switch) { PublicLibraryPaths.Add(PhysXLibDir + "Switch"); PublicAdditionalLibraries.Add("PhysX3Vehicle" + LibrarySuffix); } }
public OpenSSL(ReadOnlyTargetRules Target) : base(Target) { Type = ModuleType.External; string OpenSSL101Path = Path.Combine(UEBuildConfiguration.UEThirdPartySourceDirectory, "OpenSSL", "1.0.1g"); string OpenSSL102hPath = Path.Combine(UEBuildConfiguration.UEThirdPartySourceDirectory, "OpenSSL", "1_0_2h"); string OpenSSL102Path = Path.Combine(UEBuildConfiguration.UEThirdPartySourceDirectory, "OpenSSL", "1.0.2g"); string PlatformSubdir = (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32") ? "Win32" : Target.Platform.ToString(); string ConfigFolder = (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT) ? "Debug" : "Release"; if (Target.Platform == UnrealTargetPlatform.Mac) { PublicIncludePaths.Add(Path.Combine(OpenSSL102Path, "include", PlatformSubdir)); string LibPath = Path.Combine(OpenSSL102Path, "lib", PlatformSubdir, ConfigFolder); //PublicLibraryPaths.Add(LibPath); PublicAdditionalLibraries.Add(Path.Combine(LibPath, "libssl.a")); PublicAdditionalLibraries.Add(Path.Combine(LibPath, "libcrypto.a")); PublicAdditionalLibraries.Add("z"); } else if (Target.Platform == UnrealTargetPlatform.PS4) { string IncludePath = UEBuildConfiguration.UEThirdPartySourceDirectory + "OpenSSL/1.0.2g" + "/" + "include/PS4"; string LibraryPath = UEBuildConfiguration.UEThirdPartySourceDirectory + "OpenSSL/1.0.2g" + "/" + "lib/PS4/release"; PublicIncludePaths.Add(IncludePath); PublicAdditionalLibraries.Add(LibraryPath + "/" + "libssl.a"); PublicAdditionalLibraries.Add(LibraryPath + "/" + "libcrypto.a"); } else if (Target.Platform == UnrealTargetPlatform.Win64 || Target.Platform == UnrealTargetPlatform.Win32 || (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32")) { string LibPath = Path.Combine(OpenSSL102Path, "lib", PlatformSubdir, "VS" + WindowsPlatform.GetVisualStudioCompilerVersionName()); string LibPostfixAndExt = (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT) ? "d.lib" : ".lib"; PublicIncludePaths.Add(Path.Combine(OpenSSL102Path, "include", PlatformSubdir, "VS" + WindowsPlatform.GetVisualStudioCompilerVersionName())); PublicLibraryPaths.Add(LibPath); PublicAdditionalLibraries.Add(Path.Combine(LibPath, "libeay" + LibPostfixAndExt)); PublicAdditionalLibraries.Add(Path.Combine(LibPath, "ssleay" + LibPostfixAndExt)); } else if (Target.Platform == UnrealTargetPlatform.Linux) { string platform = "/Linux/" + Target.Architecture; string IncludePath = OpenSSL102hPath + "/include" + platform; string LibraryPath = OpenSSL102hPath + "/lib" + platform; PublicIncludePaths.Add(IncludePath); PublicLibraryPaths.Add(LibraryPath); PublicAdditionalLibraries.Add(LibraryPath + "/libssl.a"); PublicAdditionalLibraries.Add(LibraryPath + "/libcrypto.a"); PublicDependencyModuleNames.Add("zlib"); // PublicAdditionalLibraries.Add("z"); } else if (Target.Platform == UnrealTargetPlatform.Android) { string LibPath = Path.Combine(OpenSSL101Path, "lib", PlatformSubdir); PublicLibraryPaths.Add(LibPath); } }
public UElibPNG(TargetInfo Target) { Type = ModuleType.External; string libPNGPath = UEBuildConfiguration.UEThirdPartySourceDirectory + "libPNG/libPNG-1.5.2"; if (Target.Platform == UnrealTargetPlatform.Win64) { string LibPath = libPNGPath + "/lib/Win64/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); PublicLibraryPaths.Add(LibPath); string LibFileName = "libpng" + (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT ? "d" : "") + "_64.lib"; PublicAdditionalLibraries.Add(LibFileName); } else if (Target.Platform == UnrealTargetPlatform.Win32 || (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32") // simulator ) { libPNGPath = libPNGPath + "/lib/Win32/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); PublicLibraryPaths.Add(libPNGPath); string LibFileName = "libpng" + (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT ? "d" : "") + ".lib"; PublicAdditionalLibraries.Add(LibFileName); } else if (Target.Platform == UnrealTargetPlatform.Mac) { PublicAdditionalLibraries.Add(libPNGPath + "/lib/Mac/libpng.a"); } else if (Target.Platform == UnrealTargetPlatform.IOS) { if (Target.Architecture == "-simulator") { PublicLibraryPaths.Add(libPNGPath + "/lib/ios/Simulator"); PublicAdditionalShadowFiles.Add(UEBuildConfiguration.UEThirdPartySourceDirectory + "libPNG/libPNG-1.5.2/lib/ios/Simulator/libpng152.a"); } else { PublicLibraryPaths.Add(libPNGPath + "/lib/ios/Device"); PublicAdditionalShadowFiles.Add(UEBuildConfiguration.UEThirdPartySourceDirectory + "libPNG/libPNG-1.5.2/lib/ios/Device/libpng152.a"); } PublicAdditionalLibraries.Add("png152"); } else if (Target.Platform == UnrealTargetPlatform.TVOS) { if (Target.Architecture == "-simulator") { PublicLibraryPaths.Add(libPNGPath + "/lib/TVOS/Simulator"); PublicAdditionalShadowFiles.Add(UEBuildConfiguration.UEThirdPartySourceDirectory + "libPNG/libPNG-1.5.2/lib/TVOS/Simulator/libpng152.a"); } else { PublicLibraryPaths.Add(libPNGPath + "/lib/TVOS/Device"); PublicAdditionalShadowFiles.Add(UEBuildConfiguration.UEThirdPartySourceDirectory + "libPNG/libPNG-1.5.2/lib/TVOS/Device/libpng152.a"); } PublicAdditionalLibraries.Add("png152"); } else if (Target.Platform == UnrealTargetPlatform.Android) { libPNGPath = UEBuildConfiguration.UEThirdPartySourceDirectory + "libPNG/libPNG-1.5.27"; PublicLibraryPaths.Add(libPNGPath + "/lib/Android/ARMv7"); PublicLibraryPaths.Add(libPNGPath + "/lib/Android/ARM64"); PublicLibraryPaths.Add(libPNGPath + "/lib/Android/x86"); PublicLibraryPaths.Add(libPNGPath + "/lib/Android/x64"); PublicAdditionalLibraries.Add("png"); } else if (Target.Platform == UnrealTargetPlatform.Linux) { if (Target.Architecture.StartsWith("aarch64")) { libPNGPath = UEBuildConfiguration.UEThirdPartySourceDirectory + "libPNG/libPNG-1.5.27"; } PublicAdditionalLibraries.Add(libPNGPath + "/lib/Linux/" + Target.Architecture + "/libpng.a"); } else if (Target.Platform == UnrealTargetPlatform.HTML5) { PublicLibraryPaths.Add(libPNGPath + "/lib/HTML5"); string OpimizationSuffix = ""; if (UEBuildConfiguration.bCompileForSize) { OpimizationSuffix = "_Oz"; } else { if (Target.Configuration == UnrealTargetConfiguration.Development) { OpimizationSuffix = "_O2"; } else if (Target.Configuration == UnrealTargetConfiguration.Shipping) { OpimizationSuffix = "_O3"; } } PublicAdditionalLibraries.Add(libPNGPath + "/lib/HTML5/libpng" + OpimizationSuffix + ".bc"); } else if (Target.Platform == UnrealTargetPlatform.PS4) { PublicLibraryPaths.Add(libPNGPath + "/lib/PS4"); PublicAdditionalLibraries.Add("png152"); } else 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); PublicLibraryPaths.Add(libPNGPath + "/lib/XboxOne/VS" + VersionName.ToString()); PublicAdditionalLibraries.Add("libpng125_XboxOne.lib"); } } else if (Target.Platform == UnrealTargetPlatform.Switch) { PublicAdditionalLibraries.Add(System.IO.Path.Combine(libPNGPath, "lib/Switch/libPNG.a")); } PublicIncludePaths.Add(libPNGPath); }
public APEX(TargetInfo Target) { Type = ModuleType.External; // Determine which kind of libraries to link against APEXLibraryMode LibraryMode = GetAPEXLibraryMode(Target.Configuration); string LibrarySuffix = GetAPEXLibrarySuffix(LibraryMode); Definitions.Add("WITH_APEX=1"); string APEXDir = UEBuildConfiguration.UEThirdPartySourceDirectory + "PhysX/APEX-1.3/"; string APEXLibDir = APEXDir + "lib"; PublicSystemIncludePaths.AddRange( new string[] { APEXDir + "public", APEXDir + "framework/public", APEXDir + "framework/public/PhysX3", APEXDir + "module/destructible/public", APEXDir + "module/clothing/public", APEXDir + "module/legacy/public", // NVCHANGE_BEGIN : JCAO - Add Turbulence Module APEXDir + "module/basicfs/public", APEXDir + "module/fieldsampler/public", APEXDir + "module/turbulencefs/public", APEXDir + "module/particles/public", // NVCHANGE_END: JCAO - Add Turbulence Module APEXDir + "NxParameterized/public", } ); // List of default library names (unused unless LibraryFormatString is non-null) List <string> ApexLibraries = new List <string>(); ApexLibraries.AddRange( new string[] { "ApexCommon{0}", "ApexFramework{0}", "ApexShared{0}", "APEX_Destructible{0}", "APEX_Clothing{0}", }); string LibraryFormatString = null; // Libraries and DLLs for windows platform if (Target.Platform == UnrealTargetPlatform.Win64) { APEXLibDir += "/Win64/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); PublicLibraryPaths.Add(APEXLibDir); PublicAdditionalLibraries.Add(String.Format("APEXFramework{0}_x64.lib", LibrarySuffix)); PublicDelayLoadDLLs.Add(String.Format("APEXFramework{0}_x64.dll", LibrarySuffix)); string[] RuntimeDependenciesX64 = { "APEX_Clothing{0}_x64.dll", "APEX_Destructible{0}_x64.dll", "APEX_Legacy{0}_x64.dll", "APEX_Loader{0}_x64.dll", "APEX_Particles{0}_x64.dll", // NVCHANGE_BEGIN : JCAO - Add Turbulence Module "APEX_TurbulenceFS{0}_x64.dll", // NVCHANGE_END: JCAO - Add Turbulence Module "ApexFramework{0}_x64.dll", }; string ApexBinariesDir = String.Format("$(EngineDir)/Binaries/ThirdParty/PhysX/APEX-1.3/Win64/VS{0}/", WindowsPlatform.GetVisualStudioCompilerVersionName()); foreach (string RuntimeDependency in RuntimeDependenciesX64) { RuntimeDependencies.Add(new RuntimeDependency(ApexBinariesDir + String.Format(RuntimeDependency, LibrarySuffix))); } } else if (Target.Platform == UnrealTargetPlatform.Win32) { APEXLibDir += "/Win32/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); PublicLibraryPaths.Add(APEXLibDir); PublicAdditionalLibraries.Add(String.Format("APEXFramework{0}_x86.lib", LibrarySuffix)); PublicDelayLoadDLLs.Add(String.Format("APEXFramework{0}_x86.dll", LibrarySuffix)); string[] RuntimeDependenciesX86 = { "APEX_Clothing{0}_x86.dll", "APEX_Destructible{0}_x86.dll", "APEX_Legacy{0}_x86.dll", "APEX_Loader{0}_x86.dll", "APEX_Particles{0}_x86.dll", // NVCHANGE_BEGIN : JCAO - Add Turbulence Module "APEX_TurbulenceFS{0}_x86.dll", // NVCHANGE_END: JCAO - Add Turbulence Module "ApexFramework{0}_x86.dll", }; string ApexBinariesDir = String.Format("$(EngineDir)/Binaries/ThirdParty/PhysX/APEX-1.3/Win32/VS{0}/", WindowsPlatform.GetVisualStudioCompilerVersionName()); foreach (string RuntimeDependency in RuntimeDependenciesX86) { RuntimeDependencies.Add(new RuntimeDependency(ApexBinariesDir + String.Format(RuntimeDependency, LibrarySuffix))); } } else if (Target.Platform == UnrealTargetPlatform.Mac) { APEXLibDir += "/osx64"; Definitions.Add("APEX_STATICALLY_LINKED=1"); ApexLibraries.Add("APEX_Legacy{0}"); ApexLibraries.Add("APEX_Loader{0}"); LibraryFormatString = APEXLibDir + "/lib{0}" + ".a"; } else if (Target.Platform == UnrealTargetPlatform.Linux) { APEXLibDir += "/Linux/" + Target.Architecture; Definitions.Add("APEX_STATICALLY_LINKED=1"); ApexLibraries.Add("APEX_Legacy{0}"); ApexLibraries.Add("APEX_Loader{0}"); LibraryFormatString = APEXLibDir + "/lib{0}" + ".a"; } else if (Target.Platform == UnrealTargetPlatform.PS4) { Definitions.Add("APEX_STATICALLY_LINKED=1"); Definitions.Add("WITH_APEX_LEGACY=0"); APEXLibDir += "/PS4"; PublicLibraryPaths.Add(APEXLibDir); LibraryFormatString = "{0}"; } else if (Target.Platform == UnrealTargetPlatform.XboxOne) { Definitions.Add("APEX_STATICALLY_LINKED=1"); Definitions.Add("WITH_APEX_LEGACY=0"); // This MUST be defined for XboxOne! Definitions.Add("PX_HAS_SECURE_STRCPY=1"); APEXLibDir += "/XboxOne"; PublicLibraryPaths.Add(APEXLibDir); LibraryFormatString = "{0}.lib"; } // Add the libraries needed (used for all platforms except Windows) if (LibraryFormatString != null) { foreach (string Lib in ApexLibraries) { string ConfiguredLib = String.Format(Lib, LibrarySuffix); string FinalLib = String.Format(LibraryFormatString, ConfiguredLib); PublicAdditionalLibraries.Add(FinalLib); } } }
public glTFForUE4Ed(TargetInfo Target) { PublicIncludePaths.AddRange(new [] { "glTFForUE4Ed/Public" }); PrivateIncludePaths.AddRange(new [] { "glTFForUE4Ed/Private", }); PublicDependencyModuleNames.AddRange(new [] { "Core", }); PrivateDependencyModuleNames.AddRange(new [] { "CoreUObject", "Engine", "RHI", "InputCore", "RenderCore", "SlateCore", "Slate", "ImageWrapper", "AssetRegistry", "UnrealEd", "MainFrame", "Documentation", "PropertyEditor", "EditorStyle", "RawMesh", "MeshUtilities", "glTFForUE4", }); string ExtraPathRoot = System.IO.Path.Combine(ModuleDirectory, "..", "..", "Extras"); // libgltf { string glTFPath = System.IO.Path.Combine(ExtraPathRoot, "libgltf_ue4", "libgltf-0.1.3"); string IncludePath = System.IO.Path.Combine(glTFPath, "include"); string LibPath = ""; string LibFilePath = ""; if ((Target.Platform == UnrealTargetPlatform.Win32) || (Target.Platform == UnrealTargetPlatform.Win64)) { string PlatformName = ""; switch (Target.Platform) { case UnrealTargetPlatform.Win32: PlatformName = "win32"; break; case UnrealTargetPlatform.Win64: PlatformName = "win64"; break; } string VSName = "vs" + WindowsPlatform.GetVisualStudioCompilerVersionName(); LibPath = System.IO.Path.Combine(glTFPath, "lib", PlatformName, VSName); LibFilePath = System.IO.Path.Combine(LibPath, "libgltf.lib"); } else if (Target.Platform == UnrealTargetPlatform.Linux) { LibPath = System.IO.Path.Combine(glTFPath, "lib", "linux"); LibFilePath = System.IO.Path.Combine(LibPath, "libgltf.a"); } else if (Target.Platform == UnrealTargetPlatform.Mac) { LibPath = System.IO.Path.Combine(glTFPath, "lib", "macos"); LibFilePath = System.IO.Path.Combine(LibPath, "libgltf.a"); } else if (Target.Platform == UnrealTargetPlatform.IOS) { LibPath = System.IO.Path.Combine(glTFPath, "lib", "ios"); LibFilePath = System.IO.Path.Combine(LibPath, "libgltf.a"); } PublicIncludePaths.Add(IncludePath); PublicLibraryPaths.Add(LibPath); PublicAdditionalLibraries.Add(LibFilePath); } // libdraco { string DracoPath = System.IO.Path.Combine(ExtraPathRoot, "libdraco_ue4", "libdraco-1.2.5"); string IncludePath = System.IO.Path.Combine(DracoPath, "include"); string LibPath = ""; string LibFilePath1 = ""; string LibFilePath2 = ""; if ((Target.Platform == UnrealTargetPlatform.Win32) || (Target.Platform == UnrealTargetPlatform.Win64)) { string PlatformName = ""; switch (Target.Platform) { case UnrealTargetPlatform.Win32: PlatformName = "win32"; break; case UnrealTargetPlatform.Win64: PlatformName = "win64"; break; } string VSName = "vs" + WindowsPlatform.GetVisualStudioCompilerVersionName(); LibPath = System.IO.Path.Combine(DracoPath, "lib", PlatformName, VSName); LibFilePath1 = System.IO.Path.Combine(LibPath, "dracodec.lib"); LibFilePath2 = System.IO.Path.Combine(LibPath, "dracoenc.lib"); } else if (Target.Platform == UnrealTargetPlatform.Linux) { LibPath = System.IO.Path.Combine(DracoPath, "lib", "linux"); LibFilePath1 = System.IO.Path.Combine(LibPath, "libdracodec.a"); LibFilePath2 = System.IO.Path.Combine(LibPath, "libdracoenc.a"); } else if (Target.Platform == UnrealTargetPlatform.Mac) { LibPath = System.IO.Path.Combine(DracoPath, "lib", "macos"); LibFilePath1 = System.IO.Path.Combine(LibPath, "libdracodec.a"); LibFilePath2 = System.IO.Path.Combine(LibPath, "libdracoenc.a"); } PublicIncludePaths.Add(IncludePath); PublicLibraryPaths.Add(LibPath); PublicAdditionalLibraries.Add(LibFilePath1); PublicAdditionalLibraries.Add(LibFilePath2); } }
public FreeType2(TargetInfo Target) { Type = ModuleType.External; Definitions.Add("WITH_FREETYPE=1"); string FreeType2Path; string FreeType2LibPath; if (Target.Platform == UnrealTargetPlatform.Win32 || Target.Platform == UnrealTargetPlatform.Win64 || Target.Platform == UnrealTargetPlatform.Linux || Target.Platform == UnrealTargetPlatform.HTML5) { FreeType2Path = UEBuildConfiguration.UEThirdPartySourceDirectory + "FreeType2/FreeType2-2.6/"; } else { FreeType2Path = UEBuildConfiguration.UEThirdPartySourceDirectory + "FreeType2/FreeType2-2.4.12/"; } FreeType2LibPath = FreeType2Path + "Lib/"; PublicSystemIncludePaths.Add(FreeType2Path + "include"); if (Target.Platform == UnrealTargetPlatform.Win32 || Target.Platform == UnrealTargetPlatform.Win64 || (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32") // simulator ) { FreeType2LibPath += (Target.Platform == UnrealTargetPlatform.Win64) ? "Win64/" : "Win32/"; FreeType2LibPath += "VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); PublicSystemIncludePaths.Add(FreeType2Path + "include"); PublicLibraryPaths.Add(FreeType2LibPath); PublicAdditionalLibraries.Add("freetype26MT.lib"); } else if (Target.Platform == UnrealTargetPlatform.Mac) { PublicAdditionalLibraries.Add(FreeType2LibPath + "Mac/libfreetype2412.a"); } else if (Target.Platform == UnrealTargetPlatform.IOS) { if (Target.Architecture == "-simulator") { PublicLibraryPaths.Add(FreeType2LibPath + "ios/Simulator"); PublicAdditionalShadowFiles.Add(UEBuildConfiguration.UEThirdPartySourceDirectory + "FreeType2/FreeType2-2.4.12/Lib/ios/Simulator/libfreetype2412.a"); } else { PublicLibraryPaths.Add(FreeType2LibPath + "ios/Device"); PublicAdditionalShadowFiles.Add(UEBuildConfiguration.UEThirdPartySourceDirectory + "FreeType2/FreeType2-2.4.12/Lib/ios/Device/libfreetype2412.a"); } PublicAdditionalLibraries.Add("freetype2412"); } else if (Target.Platform == UnrealTargetPlatform.TVOS) { if (Target.Architecture == "-simulator") { PublicLibraryPaths.Add(FreeType2LibPath + "TVOS/Simulator"); PublicAdditionalShadowFiles.Add(UEBuildConfiguration.UEThirdPartySourceDirectory + "FreeType2/FreeType2-2.4.12/Lib/TVOS/Simulator/libfreetype2412.a"); } else { PublicLibraryPaths.Add(FreeType2LibPath + "TVOS/Device"); PublicAdditionalShadowFiles.Add(UEBuildConfiguration.UEThirdPartySourceDirectory + "FreeType2/FreeType2-2.4.12/Lib/TVOS/Device/libfreetype2412.a"); } PublicAdditionalLibraries.Add("freetype2412"); } else if (Target.Platform == UnrealTargetPlatform.Android) { // filtered out in the toolchain PublicLibraryPaths.Add(FreeType2LibPath + "Android/ARMv7"); PublicLibraryPaths.Add(FreeType2LibPath + "Android/ARM64"); PublicLibraryPaths.Add(FreeType2LibPath + "Android/x86"); PublicLibraryPaths.Add(FreeType2LibPath + "Android/x64"); PublicAdditionalLibraries.Add("freetype2412"); } else if (Target.Platform == UnrealTargetPlatform.Linux) { if (Target.Type == TargetRules.TargetType.Server) { string Err = string.Format("{0} dedicated server is made to depend on {1}. We want to avoid this, please correct module dependencies.", Target.Platform.ToString(), this.ToString()); System.Console.WriteLine(Err); throw new BuildException(Err); } PublicSystemIncludePaths.Add(FreeType2Path + "Include"); if (Target.IsMonolithic) { PublicAdditionalLibraries.Add(FreeType2LibPath + "Linux/" + Target.Architecture + "/libfreetype.a"); } else { PublicAdditionalLibraries.Add(FreeType2LibPath + "Linux/" + Target.Architecture + "/libfreetype_fPIC.a"); } } else if (Target.Platform == UnrealTargetPlatform.HTML5) { PublicLibraryPaths.Add(FreeType2Path + "Lib/HTML5"); string OpimizationSuffix = ""; if (UEBuildConfiguration.bCompileForSize) { OpimizationSuffix = "_Oz"; } else { if (Target.Configuration == UnrealTargetConfiguration.Development) { OpimizationSuffix = "_O2"; } else if (Target.Configuration == UnrealTargetConfiguration.Shipping) { OpimizationSuffix = "_O3"; } } PublicAdditionalLibraries.Add(FreeType2Path + "Lib/HTML5/libfreetype260" + OpimizationSuffix + ".bc"); } }
public static bool IsConsoleOutputRedirectedToFile() { return(WindowsPlatform.IsConsoleOutputRedirectedToFileImplementation()); }
public GlsLang(ReadOnlyTargetRules Target) : base(Target) { Type = ModuleType.External; PublicSystemIncludePaths.Add(UEBuildConfiguration.UEThirdPartySourceDirectory + "glslang/glslang/src/glslang_lib"); string LibPath = UEBuildConfiguration.UEThirdPartySourceDirectory + "glslang/glslang/lib/"; if ((Target.Platform == UnrealTargetPlatform.Win64) || (Target.Platform == UnrealTargetPlatform.Win32)) { LibPath = LibPath + (Target.Platform == UnrealTargetPlatform.Win32 ? "Win32/" : "Win64/"); LibPath = LibPath + "VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); PublicLibraryPaths.Add(LibPath); if (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT) { if (Target.Platform == UnrealTargetPlatform.Win64) { PublicAdditionalLibraries.Add("glslangd_64.lib"); } else if (Target.Platform == UnrealTargetPlatform.Win32) { PublicAdditionalLibraries.Add("glslangd.lib"); } } else { if (Target.Platform == UnrealTargetPlatform.Win64) { PublicAdditionalLibraries.Add("glslang_64.lib"); } else if (Target.Platform == UnrealTargetPlatform.Win32) { PublicAdditionalLibraries.Add("glslang.lib"); } } } else if (Target.Platform == UnrealTargetPlatform.Mac) { if (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT) { PublicAdditionalLibraries.Add(LibPath + "Mac/libglslangd.a"); PublicAdditionalLibraries.Add(LibPath + "Mac/libOSDependentd.a"); } else { PublicAdditionalLibraries.Add(LibPath + "Mac/libglslang.a"); PublicAdditionalLibraries.Add(LibPath + "Mac/libOSDependent.a"); } } else if (Target.Platform == UnrealTargetPlatform.Linux) { PublicAdditionalLibraries.Add(LibPath + "Linux/" + Target.Architecture + "/libglslang.a"); } else { string Err = string.Format("Attempt to build against GlsLang on unsupported platform {0}", Target.Platform); System.Console.WriteLine(Err); throw new BuildException(Err); } }
public static string GetDataRootForGVFS() { return(WindowsPlatform.GetDataRootForGVFSImplementation()); }
public PhysX(TargetInfo Target) { Type = ModuleType.External; // Determine which kind of libraries to link against PhysXLibraryMode LibraryMode = GetPhysXLibraryMode(Target.Configuration); string LibrarySuffix = GetPhysXLibrarySuffix(LibraryMode); Definitions.Add("WITH_PHYSX=1"); if (UEBuildConfiguration.bCompileAPEX == false) { // Since APEX is dependent on PhysX, if APEX is not being include, set the flag properly. // This will properly cover the case where PhysX is compiled but APEX is not. Definitions.Add("WITH_APEX=0"); } if (UEBuildConfiguration.bCompilePhysXVehicle == false) { // Since PhysX Vehicle is dependent on PhysX, if Vehicle is not being include, set the flag properly. // This will properly cover the case where PhysX is compiled but Vehicle is not. Definitions.Add("WITH_VEHICLE=0"); } if (LibraryMode == PhysXLibraryMode.Shipping) { Definitions.Add("WITH_PHYSX_RELEASE=1"); } else { Definitions.Add("WITH_PHYSX_RELEASE=0"); } string PhysXVersion = "PhysX_3.4"; string PxSharedVersion = "PxShared"; string PhysXDir = UEBuildConfiguration.UEThirdPartySourceDirectory + "PhysX/" + PhysXVersion + "/"; string PxSharedDir = UEBuildConfiguration.UEThirdPartySourceDirectory + "PhysX/" + PxSharedVersion + "/"; string PhysXLibDir = UEBuildConfiguration.UEThirdPartySourceDirectory + "PhysX/Lib/"; string PxSharedLibDir = UEBuildConfiguration.UEThirdPartySourceDirectory + "PhysX/Lib/"; string PhysXIncludeDir = PhysXDir + "Include/"; string PxSharedIncludeDir = PxSharedDir + "include/"; if (Target.Platform == UnrealTargetPlatform.WolfPlat) { // all physx includes in a WolfPlat subdir PhysXIncludeDir = PhysXIncludeDir + "WolfPlat/"; PxSharedIncludeDir = PxSharedIncludeDir + "WolfPlat/"; } PublicSystemIncludePaths.AddRange( new string[] { PxSharedIncludeDir, PxSharedIncludeDir + "cudamanager", PxSharedIncludeDir + "filebuf", PxSharedIncludeDir + "foundation", PxSharedIncludeDir + "pvd", PxSharedIncludeDir + "task", PhysXIncludeDir, PhysXIncludeDir + "foundation", PhysXIncludeDir + "cooking", PhysXIncludeDir + "common", PhysXIncludeDir + "extensions", PhysXIncludeDir + "geometry", PhysXIncludeDir + "vehicle" } ); // Libraries and DLLs for windows platform if (Target.Platform == UnrealTargetPlatform.Win64) { PhysXLibDir += "Win64/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); PxSharedLibDir += "Win64/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); PublicLibraryPaths.Add(PhysXLibDir); PublicLibraryPaths.Add(PxSharedLibDir); string[] StaticLibrariesX64 = new string[] { "PhysX3{0}_x64.lib", "PhysX3Extensions{0}_x64.lib", "PhysX3Cooking{0}_x64.lib", "PhysX3Common{0}_x64.lib", "PhysX3Vehicle{0}_x64.lib", "PsFastXml{0}_x64.lib", "PxFoundation{0}_x64.lib", "PxPvdSDK{0}_x64.lib", "PxTask{0}_x64.lib", }; string[] DelayLoadDLLsX64 = new string[] { "PxFoundation{0}_x64.dll", "PxPvdSDK{0}_x64.dll", "PhysX3{0}_x64.dll", "PhysX3Cooking{0}_x64.dll", "PhysX3Common{0}_x64.dll", }; string[] PxSharedRuntimeDependenciesX64 = new string[] { "PxFoundation{0}_x64.dll", "PxPvdSDK{0}_x64.dll", }; foreach (string Lib in StaticLibrariesX64) { PublicAdditionalLibraries.Add(String.Format(Lib, LibrarySuffix)); } foreach (string DLL in DelayLoadDLLsX64) { PublicDelayLoadDLLs.Add(String.Format(DLL, LibrarySuffix)); } string PhysXBinariesDir = String.Format("$(EngineDir)/Binaries/ThirdParty/PhysX/Win64/VS{0}/", WindowsPlatform.GetVisualStudioCompilerVersionName()); foreach (string DLL in DelayLoadDLLsX64) { string FileName = PhysXBinariesDir + String.Format(DLL, LibrarySuffix); RuntimeDependencies.Add(FileName, StagedFileType.NonUFS); RuntimeDependencies.Add(Path.ChangeExtension(FileName, ".pdb"), StagedFileType.DebugNonUFS); } if (LibrarySuffix != "") { Definitions.Add("UE_PHYSX_SUFFIX=" + LibrarySuffix); } string PxSharedBinariesDir = String.Format("$(EngineDir)/Binaries/ThirdParty/PhysX/Win64/VS{0}/", WindowsPlatform.GetVisualStudioCompilerVersionName()); foreach (string DLL in PxSharedRuntimeDependenciesX64) { RuntimeDependencies.Add(new RuntimeDependency(PxSharedBinariesDir + String.Format(DLL, LibrarySuffix))); } } else if (Target.Platform == UnrealTargetPlatform.Win32 || (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32")) { PhysXLibDir += "Win32/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); PxSharedLibDir += "Win32/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); PublicLibraryPaths.Add(PhysXLibDir); PublicLibraryPaths.Add(PxSharedLibDir); string[] StaticLibrariesX86 = new string[] { "PhysX3{0}_x86.lib", "PhysX3Extensions{0}_x86.lib", "PhysX3Cooking{0}_x86.lib", "PhysX3Common{0}_x86.lib", "PhysX3Vehicle{0}_x86.lib", "PsFastXml{0}_x86.lib", "PxFoundation{0}_x86.lib", "PxPvdSDK{0}_x86.lib", "PxTask{0}_x86.lib", }; string[] DelayLoadDLLsX86 = new string[] { "PxFoundation{0}_x86.dll", "PxPvdSDK{0}_x86.dll", "PhysX3{0}_x86.dll", "PhysX3Cooking{0}_x86.dll", "PhysX3Common{0}_x86.dll" }; foreach (string Lib in StaticLibrariesX86) { PublicAdditionalLibraries.Add(String.Format(Lib, LibrarySuffix)); } foreach (string DLL in DelayLoadDLLsX86) { PublicDelayLoadDLLs.Add(String.Format(DLL, LibrarySuffix)); } string PhysXBinariesDir = String.Format("$(EngineDir)/Binaries/ThirdParty/PhysX/Win32/VS{0}/", WindowsPlatform.GetVisualStudioCompilerVersionName()); foreach (string DLL in DelayLoadDLLsX86) { string FileName = PhysXBinariesDir + String.Format(DLL, LibrarySuffix); RuntimeDependencies.Add(FileName, StagedFileType.NonUFS); RuntimeDependencies.Add(Path.ChangeExtension(FileName, ".pdb"), StagedFileType.DebugNonUFS); } if (LibrarySuffix != "") { Definitions.Add("UE_PHYSX_SUFFIX=" + LibrarySuffix); } } else if (Target.Platform == UnrealTargetPlatform.Mac) { PhysXLibDir += "Mac"; PxSharedLibDir += "Mac"; PublicLibraryPaths.Add(PhysXLibDir); PublicLibraryPaths.Add(PxSharedLibDir); string[] StaticLibrariesMac = new string[] { PhysXLibDir + "/libLowLevel{0}.a", PhysXLibDir + "/libLowLevelCloth{0}.a", PhysXLibDir + "/libPhysX3Extensions{0}.a", PhysXLibDir + "/libPhysX3Vehicle{0}.a", PhysXLibDir + "/libSceneQuery{0}.a", PhysXLibDir + "/libSimulationController{0}.a", PxSharedLibDir + "/libPxTask{0}.a", PxSharedLibDir + "/libPsFastXml{0}.a" }; foreach (string Lib in StaticLibrariesMac) { PublicAdditionalLibraries.Add(String.Format(Lib, LibrarySuffix)); } string[] DynamicLibrariesMac = new string[] { "/libPhysX3{0}.dylib", "/libPhysX3Cooking{0}.dylib", "/libPhysX3Common{0}.dylib", "/libPxFoundation{0}.dylib", "/libPxPvdSDK{0}.dylib", }; string PhysXBinariesDir = UEBuildConfiguration.UEThirdPartyBinariesDirectory + "PhysX/Mac"; foreach (string Lib in DynamicLibrariesMac) { string LibraryPath = PhysXBinariesDir + String.Format(Lib, LibrarySuffix); PublicDelayLoadDLLs.Add(LibraryPath); RuntimeDependencies.Add(new RuntimeDependency(LibraryPath)); } if (LibrarySuffix != "") { Definitions.Add("UE_PHYSX_SUFFIX=" + LibrarySuffix); } } else if (Target.Platform == UnrealTargetPlatform.Android) { PublicLibraryPaths.Add(PhysXLibDir + "Android/ARMv7"); PublicLibraryPaths.Add(PhysXLibDir + "Android/x86"); PublicLibraryPaths.Add(PhysXLibDir + "Android/ARM64"); PublicLibraryPaths.Add(PhysXLibDir + "Android/x64"); PublicLibraryPaths.Add(PxSharedLibDir + "Android/ARMv7"); PublicLibraryPaths.Add(PxSharedLibDir + "Android/x86"); PublicLibraryPaths.Add(PxSharedLibDir + "Android/arm64"); PublicLibraryPaths.Add(PxSharedLibDir + "Android/x64"); string[] StaticLibrariesAndroid = new string[] { "LowLevel{0}", "LowLevelAABB{0}", "LowLevelCloth{0}", "LowLevelDynamics{0}", "LowLevelParticles{0}", "PhysX3{0}", "PhysX3Extensions{0}", // "PhysX3Cooking{0}", // not needed until Apex "PhysX3Common{0}", "PhysX3Vehicle{0}", //"PhysXVisualDebuggerSDK{0}", "SceneQuery{0}", "SimulationController{0}", "PxFoundation{0}", "PxTask{0}", "PxPvdSDK{0}", "PsFastXml{0}" }; //if you are shipping, and you actually want the shipping libs, you do not need this lib if (!(LibraryMode == PhysXLibraryMode.Shipping && BuildConfiguration.bUseShippingPhysXLibraries)) { // PublicAdditionalLibraries.Add("nvToolsExt"); } foreach (string Lib in StaticLibrariesAndroid) { PublicAdditionalLibraries.Add(String.Format(Lib, LibrarySuffix)); } } else if (Target.Platform == UnrealTargetPlatform.Linux) { PhysXLibDir += "/Linux/" + Target.Architecture; PxSharedLibDir += "/Linux/" + Target.Architecture; PublicLibraryPaths.Add(PhysXLibDir); PublicLibraryPaths.Add(PxSharedLibDir); string[] StaticLibrariesLinux = new string[] { "rt", "LowLevel{0}", "LowLevelAABB{0}", "LowLevelCloth{0}", "LowLevelDynamics{0}", "LowLevelParticles{0}", "NvParameterized{0}", "PhysX3{0}", "PhysX3Extensions{0}", "PhysX3Cooking{0}", "PhysX3Common{0}", "PhysX3Vehicle{0}", "SceneQuery{0}", "SimulationController{0}", "PxFoundation{0}", "PxTask{0}", "PxPvdSDK{0}", "PsFastXml{0}", "RenderDebug{0}" }; foreach (string Lib in StaticLibrariesLinux) { PublicAdditionalLibraries.Add(String.Format(Lib, LibrarySuffix)); } } else if (Target.Platform == UnrealTargetPlatform.IOS) { PhysXLibDir = Path.Combine(PhysXLibDir, "IOS/"); PxSharedLibDir = Path.Combine(PxSharedLibDir, "IOS/"); PublicLibraryPaths.Add(PhysXLibDir); PublicLibraryPaths.Add(PxSharedLibDir); string[] PhysXLibs = new string[] { "LowLevel", "LowLevelAABB", "LowLevelCloth", "LowLevelDynamics", "LowLevelParticles", "PhysX3", "PhysX3Common", // "PhysX3Cooking", // not needed until Apex "PhysX3Extensions", "PhysX3Vehicle", "SceneQuery", "SimulationController", "PxFoundation", "PxTask", "PxPvdSDK", "PsFastXml" }; foreach (string PhysXLib in PhysXLibs) { PublicAdditionalLibraries.Add(PhysXLib + LibrarySuffix); PublicAdditionalShadowFiles.Add(Path.Combine(PhysXLibDir, "lib" + PhysXLib + LibrarySuffix + ".a")); } } else if (Target.Platform == UnrealTargetPlatform.TVOS) { PhysXLibDir = Path.Combine(PhysXLibDir, "TVOS/"); PxSharedLibDir = Path.Combine(PxSharedLibDir, "TVOS/"); PublicLibraryPaths.Add(PhysXLibDir); PublicLibraryPaths.Add(PxSharedLibDir); string[] PhysXLibs = new string[] { "LowLevel", "LowLevelAABB", "LowLevelCloth", "LowLevelDynamics", "LowLevelParticles", "PhysX3", "PhysX3Common", // "PhysX3Cooking", // not needed until Apex "PhysX3Extensions", "PhysX3Vehicle", "SceneQuery", "SimulationController", "PxFoundation", "PxTask", "PxPvdSDK", "PsFastXml" }; foreach (string PhysXLib in PhysXLibs) { PublicAdditionalLibraries.Add(PhysXLib + LibrarySuffix); PublicAdditionalShadowFiles.Add(Path.Combine(PhysXLibDir, "lib" + PhysXLib + LibrarySuffix + ".a")); } } else if (Target.Platform == UnrealTargetPlatform.HTML5) { PhysXLibDir = Path.Combine(PhysXLibDir, "HTML5/"); PxSharedLibDir = Path.Combine(PxSharedLibDir, "HTML5/"); string[] PhysXLibs = new string[] { "LowLevel", "LowLevelAABB", "LowLevelCloth", "LowLevelDynamics", "LowLevelParticles", "PhysX3", "PhysX3CharacterKinematic", "PhysX3Common", "PhysX3Cooking", "PhysX3Extensions", "PhysX3Vehicle", //"PhysXVisualDebuggerSDK", "SceneQuery", "SimulationController", "PxFoundation", "PxTask", "PxPvdSDK", "PsFastXml" }; foreach (var lib in PhysXLibs) { if (!lib.Contains("Cooking") || Target.IsCooked == false) { PublicAdditionalLibraries.Add(PhysXLibDir + lib + (UEBuildConfiguration.bCompileForSize ? "_Oz" : "") + ".bc"); } } if (UEBuildConfiguration.bCompilePhysXVehicle) { string[] PhysXVehicleLibs = new string[] { "PhysX3Vehicle", }; foreach (var lib in PhysXVehicleLibs) { if (!lib.Contains("Cooking") || Target.IsCooked == false) { PublicAdditionalLibraries.Add(PhysXLibDir + lib + (UEBuildConfiguration.bCompileForSize ? "_Oz" : "") + ".bc"); } } } } else if (Target.Platform == UnrealTargetPlatform.PS4) { PublicLibraryPaths.Add(PhysXLibDir + "PS4"); string[] StaticLibrariesPS4 = new string[] { "PhysX3{0}", "PhysX3Extensions{0}", "PhysX3Cooking{0}", "PhysX3Common{0}", "PhysX3Vehicle{0}", "LowLevel{0}", "LowLevelAABB{0}", "LowLevelCloth{0}", "LowLevelDynamics{0}", "LowLevelParticles{0}", "SceneQuery{0}", "SimulationController{0}", "PxFoundation{0}", "PxTask{0}", "PxPvdSDK{0}", "PsFastXml{0}" }; foreach (string Lib in StaticLibrariesPS4) { PublicAdditionalLibraries.Add(String.Format(Lib, LibrarySuffix)); } } else if (Target.Platform == UnrealTargetPlatform.XboxOne) { Definitions.Add("PX_PHYSX_STATIC_LIB=1"); Definitions.Add("_XBOX_ONE=1"); PublicLibraryPaths.Add(Path.Combine(PhysXLibDir, "XboxOne\\VS" + WindowsPlatform.GetVisualStudioCompilerVersionName())); string[] StaticLibrariesXB1 = new string[] { "PhysX3{0}.lib", "PhysX3Extensions{0}.lib", "PhysX3Cooking{0}.lib", "PhysX3Common{0}.lib", "PhysX3Vehicle{0}.lib", "LowLevel{0}.lib", "LowLevelAABB{0}.lib", "LowLevelCloth{0}.lib", "LowLevelDynamics{0}.lib", "LowLevelParticles{0}.lib", "SceneQuery{0}.lib", "SimulationController{0}.lib", "PxFoundation{0}.lib", "PxTask{0}.lib", "PxPvdSDK{0}.lib", "PsFastXml{0}.lib" }; foreach (string Lib in StaticLibrariesXB1) { PublicAdditionalLibraries.Add(String.Format(Lib, LibrarySuffix)); } } else if (Target.Platform == UnrealTargetPlatform.WolfPlat) { PublicLibraryPaths.Add(PhysXLibDir + "WolfPlat"); PublicLibraryPaths.Add(PxSharedLibDir + "WolfPlat"); string[] StaticLibrariesWolf = new string[] { "LowLevel", "LowLevelAABB", "LowLevelCloth", "LowLevelDynamics", "LowLevelParticles", "PhysX3", "PhysX3Common", // "PhysX3Cooking", // not needed until Apex "PhysX3Extensions", "PhysX3Vehicle", "SceneQuery", "SimulationController", "PxFoundation", "PxTask", "PxPvdSDK", "PsFastXml" }; foreach (string Lib in StaticLibrariesWolf) { PublicAdditionalLibraries.Add(Lib + LibrarySuffix); } } }
public static string GetUpgradeReminderNotification() { return(WindowsPlatform.GetUpgradeReminderNotificationImplementation()); }
public Vorbis(ReadOnlyTargetRules Target) : base(Target) { Type = ModuleType.External; string VorbisPath = UEBuildConfiguration.UEThirdPartySourceDirectory + "Vorbis/libvorbis-1.3.2/"; PublicIncludePaths.Add(VorbisPath + "include"); Definitions.Add("WITH_OGGVORBIS=1"); if (Target.Platform == UnrealTargetPlatform.Win64) { string VorbisLibPath = VorbisPath + "Lib/win64/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName() + "/"; PublicLibraryPaths.Add(VorbisLibPath); PublicAdditionalLibraries.Add("libvorbis_64.lib"); PublicDelayLoadDLLs.Add("libvorbis_64.dll"); RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/ThirdParty/Vorbis/Win64/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName() + "/libvorbis_64.dll")); } else if (Target.Platform == UnrealTargetPlatform.Win32) { string VorbisLibPath = VorbisPath + "Lib/win32/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName() + "/"; PublicLibraryPaths.Add(VorbisLibPath); PublicAdditionalLibraries.Add("libvorbis.lib"); PublicDelayLoadDLLs.Add("libvorbis.dll"); RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/ThirdParty/Vorbis/Win32/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName() + "/libvorbis.dll")); } else if (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32") // simulator { string VorbisLibPath = VorbisPath + "Lib/HTML5Win32/"; PublicLibraryPaths.Add(VorbisLibPath); PublicAdditionalLibraries.Add("libvorbis.lib"); } else if (Target.Platform == UnrealTargetPlatform.Mac) { PublicAdditionalLibraries.AddRange( new string[] { VorbisPath + "macosx/libvorbis.dylib", } ); } else if (Target.Platform == UnrealTargetPlatform.HTML5) { string VorbisLibPath = VorbisPath + "lib/HTML5/"; PublicLibraryPaths.Add(VorbisLibPath); string OpimizationSuffix = ""; if (UEBuildConfiguration.bCompileForSize) { OpimizationSuffix = "_Oz"; } else { if (Target.Configuration == UnrealTargetConfiguration.Development) { OpimizationSuffix = "_O2"; } else if (Target.Configuration == UnrealTargetConfiguration.Shipping) { OpimizationSuffix = "_O3"; } } PublicAdditionalLibraries.Add(VorbisLibPath + "libvorbis" + OpimizationSuffix + ".bc"); } else if (Target.Platform == UnrealTargetPlatform.Android) { // toolchain will filter PublicLibraryPaths.Add(VorbisPath + "lib/Android/ARMv7"); PublicLibraryPaths.Add(VorbisPath + "lib/Android/ARM64"); PublicLibraryPaths.Add(VorbisPath + "lib/Android/x86"); PublicLibraryPaths.Add(VorbisPath + "lib/Android/x64"); PublicAdditionalLibraries.Add("vorbis"); } else if (Target.Platform == UnrealTargetPlatform.Linux) { PublicAdditionalLibraries.Add(VorbisPath + "lib/Linux/" + Target.Architecture + "/libvorbis.a"); } else 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); PublicLibraryPaths.Add(VorbisPath + "lib/XboxOne/VS" + VersionName.ToString()); PublicAdditionalLibraries.Add("libvorbis_static.lib"); } } }
public HarfBuzz(ReadOnlyTargetRules Target) : base(Target) { Type = ModuleType.External; // Can't be used without our dependencies if (!UEBuildConfiguration.bCompileFreeType || !UEBuildConfiguration.bCompileICU) { Definitions.Add("WITH_HARFBUZZ=0"); return; } string HarfBuzzVersion = "harfbuzz-1.2.4"; string HarfBuzzRootPath = UEBuildConfiguration.UEThirdPartySourceDirectory + "HarfBuzz/" + HarfBuzzVersion + "/"; // Includes PublicSystemIncludePaths.Add(HarfBuzzRootPath + "src" + "/"); string PlatformFolderName = Target.Platform.ToString(); string HarfBuzzLibPath = HarfBuzzRootPath + PlatformFolderName + "/"; if (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32") { HarfBuzzLibPath = HarfBuzzRootPath + "Win32/"; } if ((Target.Platform == UnrealTargetPlatform.Win64) || (Target.Platform == UnrealTargetPlatform.Win32) || (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32")) { Definitions.Add("WITH_HARFBUZZ=1"); string VSVersionFolderName = "VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); HarfBuzzLibPath += VSVersionFolderName + "/"; string BuildTypeFolderName = (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT) ? "Debug" : "RelWithDebInfo"; HarfBuzzLibPath += BuildTypeFolderName + "/"; PublicLibraryPaths.Add(HarfBuzzLibPath); PublicAdditionalLibraries.Add("harfbuzz.lib"); } else if (Target.Platform == UnrealTargetPlatform.HTML5) { Definitions.Add("WITH_HARFBUZZ=1"); string OpimizationSuffix = "_Oz"; // i.e. bCompileForSize if (!UEBuildConfiguration.bCompileForSize) { switch (Target.Configuration) { case UnrealTargetConfiguration.Development: OpimizationSuffix = "_O2"; break; case UnrealTargetConfiguration.Shipping: OpimizationSuffix = "_O3"; break; default: OpimizationSuffix = ""; break; } } PublicAdditionalLibraries.Add(HarfBuzzRootPath + "HTML5/libharfbuzz" + OpimizationSuffix + ".bc"); } else if (Target.Platform == UnrealTargetPlatform.Mac || Target.Platform == UnrealTargetPlatform.IOS) { Definitions.Add("WITH_HARFBUZZ=1"); PublicAdditionalLibraries.Add(HarfBuzzLibPath + "libharfbuzz.a"); } else if (Target.Platform == UnrealTargetPlatform.PS4) { Definitions.Add("WITH_HARFBUZZ=1"); string BuildTypeFolderName = (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT) ? "Debug" : "Release"; HarfBuzzLibPath += BuildTypeFolderName + "/"; PublicLibraryPaths.Add(HarfBuzzLibPath); PublicAdditionalLibraries.Add("harfbuzz"); // Automatically transforms to libharfbuzz.a } else if (Target.Platform == UnrealTargetPlatform.XboxOne) { Definitions.Add("WITH_HARFBUZZ=1"); string BuildTypeFolderName = (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT) ? "Debug" : "Release"; HarfBuzzLibPath += "VS2015/" + BuildTypeFolderName + "/"; PublicLibraryPaths.Add(HarfBuzzLibPath); PublicAdditionalLibraries.Add("harfbuzz.lib"); } else if (Target.Platform == UnrealTargetPlatform.Android) { Definitions.Add("WITH_HARFBUZZ=1"); string BuildTypeFolderName = (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT) ? "Debug/" : "Release/"; PublicLibraryPaths.Add(HarfBuzzRootPath + "Android/ARMv7/" + BuildTypeFolderName); PublicLibraryPaths.Add(HarfBuzzRootPath + "Android/ARM64/" + BuildTypeFolderName); PublicLibraryPaths.Add(HarfBuzzRootPath + "Android/x86/" + BuildTypeFolderName); PublicLibraryPaths.Add(HarfBuzzRootPath + "Android/x64/" + BuildTypeFolderName); PublicAdditionalLibraries.Add("harfbuzz"); } else { Definitions.Add("WITH_HARFBUZZ=0"); } }
public ICU(TargetInfo Target) { Type = ModuleType.External; string ICUVersion = "icu4c-53_1"; string ICURootPath = UEBuildConfiguration.UEThirdPartySourceDirectory + "ICU/" + ICUVersion + "/"; // Includes PublicSystemIncludePaths.Add(ICURootPath + "include" + "/"); string PlatformFolderName = Target.Platform.ToString(); string TargetSpecificPath = ICURootPath + PlatformFolderName + "/"; if (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32") { TargetSpecificPath = ICURootPath + "Win32/"; } if ((Target.Platform == UnrealTargetPlatform.Win64) || (Target.Platform == UnrealTargetPlatform.Win32) || (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32")) { string VSVersionFolderName = "VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); TargetSpecificPath += VSVersionFolderName + "/"; string[] LibraryNameStems = { "dt", // Data "uc", // Unicode Common "in", // Internationalization "le", // Layout Engine "lx", // Layout Extensions "io" // Input/Output }; string LibraryNamePostfix = (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT) ? "d" : string.Empty; // Library Paths PublicLibraryPaths.Add(TargetSpecificPath + "lib" + "/"); EICULinkType ICULinkType = Target.IsMonolithic ? EICULinkType.Static : EICULinkType.Dynamic; switch (ICULinkType) { case EICULinkType.Static: foreach (string Stem in LibraryNameStems) { string LibraryName = "sicu" + Stem + LibraryNamePostfix + "." + "lib"; PublicAdditionalLibraries.Add(LibraryName); } break; case EICULinkType.Dynamic: foreach (string Stem in LibraryNameStems) { string LibraryName = "icu" + Stem + LibraryNamePostfix + "." + "lib"; PublicAdditionalLibraries.Add(LibraryName); } foreach (string Stem in LibraryNameStems) { string LibraryName = "icu" + Stem + LibraryNamePostfix + "53" + "." + "dll"; PublicDelayLoadDLLs.Add(LibraryName); } if (Target.Platform == UnrealTargetPlatform.Win64 || Target.Platform == UnrealTargetPlatform.Win32) { string BinariesDir = String.Format("$(EngineDir)/Binaries/ThirdParty/ICU/{0}/{1}/VS{2}/", ICUVersion, Target.Platform.ToString(), WindowsPlatform.GetVisualStudioCompilerVersionName()); foreach (string Stem in LibraryNameStems) { string LibraryName = BinariesDir + String.Format("icu{0}{1}53.dll", Stem, LibraryNamePostfix); RuntimeDependencies.Add(new RuntimeDependency(LibraryName)); } } break; } } else if (Target.Platform == UnrealTargetPlatform.Linux || Target.Platform == UnrealTargetPlatform.Android) { string StaticLibraryExtension = "a"; switch (Target.Platform) { case UnrealTargetPlatform.Linux: TargetSpecificPath += Target.Architecture + "/"; break; case UnrealTargetPlatform.Android: PublicLibraryPaths.Add(TargetSpecificPath + "ARMv7/lib"); PublicLibraryPaths.Add(TargetSpecificPath + "ARM64/lib"); PublicLibraryPaths.Add(TargetSpecificPath + "x86/lib"); PublicLibraryPaths.Add(TargetSpecificPath + "x64/lib"); break; } string[] LibraryNameStems = { "data", // Data "uc", // Unicode Common "i18n", // Internationalization "le", // Layout Engine "lx", // Layout Extensions "io" // Input/Output }; string LibraryNamePostfix = (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT) ? "d" : string.Empty; // Library Paths EICULinkType ICULinkType = (Target.Platform == UnrealTargetPlatform.Android || Target.IsMonolithic) ? EICULinkType.Static : EICULinkType.Dynamic; switch (ICULinkType) { case EICULinkType.Static: foreach (string Stem in LibraryNameStems) { string LibraryName = "icu" + Stem + LibraryNamePostfix; if (Target.Platform == UnrealTargetPlatform.Android) { // we will filter out in the toolchain PublicAdditionalLibraries.Add(LibraryName); // Android requires only the filename. } else { PublicAdditionalLibraries.Add(TargetSpecificPath + "lib/" + "lib" + LibraryName + "." + StaticLibraryExtension); // Linux seems to need the path, not just the filename. } } break; case EICULinkType.Dynamic: foreach (string Stem in LibraryNameStems) { if (Target.Platform == UnrealTargetPlatform.Linux) { string LibraryName = "icu" + Stem + LibraryNamePostfix; string LibraryPath = UEBuildConfiguration.UEThirdPartyBinariesDirectory + "ICU/icu4c-53_1/Linux/" + Target.Architecture + "/"; PublicLibraryPaths.Add(LibraryPath); PublicAdditionalLibraries.Add(LibraryName); } } break; } } else if (Target.Platform == UnrealTargetPlatform.Mac || Target.Platform == UnrealTargetPlatform.IOS) { string StaticLibraryExtension = "a"; string DynamicLibraryExtension = "dylib"; string[] LibraryNameStems = { "data", // Data "uc", // Unicode Common "i18n", // Internationalization "le", // Layout Engine "lx", // Layout Extensions "io" // Input/Output }; string LibraryNamePostfix = (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT) ? "d" : string.Empty; EICULinkType ICULinkType = (Target.Platform == UnrealTargetPlatform.IOS || Target.IsMonolithic) ? EICULinkType.Static : EICULinkType.Dynamic; // Library Paths switch (ICULinkType) { case EICULinkType.Static: foreach (string Stem in LibraryNameStems) { string LibraryName = "libicu" + Stem + LibraryNamePostfix + "." + StaticLibraryExtension; PublicAdditionalLibraries.Add(TargetSpecificPath + "lib/" + LibraryName); if (Target.Platform == UnrealTargetPlatform.IOS) { PublicAdditionalShadowFiles.Add(TargetSpecificPath + "lib/" + LibraryName); } } break; case EICULinkType.Dynamic: foreach (string Stem in LibraryNameStems) { if (Target.Platform == UnrealTargetPlatform.Mac) { string LibraryName = "libicu" + Stem + ".53.1" + LibraryNamePostfix + "." + DynamicLibraryExtension; string LibraryPath = UEBuildConfiguration.UEThirdPartyBinariesDirectory + "ICU/icu4c-53_1/Mac/" + LibraryName; PublicDelayLoadDLLs.Add(LibraryPath); PublicAdditionalShadowFiles.Add(LibraryPath); } else if (Target.Platform == UnrealTargetPlatform.Linux) { string LibraryName = "icu" + Stem + LibraryNamePostfix; string LibraryPath = UEBuildConfiguration.UEThirdPartyBinariesDirectory + "ICU/icu4c-53_1/Linux/" + Target.Architecture + "/"; PublicLibraryPaths.Add(LibraryPath); PublicAdditionalLibraries.Add(LibraryName); } } break; } } else if (Target.Platform == UnrealTargetPlatform.HTML5) { // we don't bother with debug libraries on HTML5. Mainly because debugging isn't viable on html5 currently string StaticLibraryExtension = "bc"; string[] LibraryNameStems = { "data", // Data "uc", // Unicode Common "i18n", // Internationalization "le", // Layout Engine "lx", // Layout Extensions "io" // Input/Output }; foreach (string Stem in LibraryNameStems) { string LibraryName = "libicu" + Stem + "." + StaticLibraryExtension; PublicAdditionalLibraries.Add(TargetSpecificPath + LibraryName); } } else if (Target.Platform == UnrealTargetPlatform.PS4) { string LibraryNamePrefix = "sicu"; string[] LibraryNameStems = { "dt", // Data "uc", // Unicode Common "in", // Internationalization "le", // Layout Engine "lx", // Layout Extensions "io" // Input/Output }; string LibraryNamePostfix = (Target.Configuration == UnrealTargetConfiguration.Debug) ? "d" : string.Empty; string LibraryExtension = "lib"; foreach (string Stem in LibraryNameStems) { string LibraryName = ICURootPath + "PS4/lib/" + LibraryNamePrefix + Stem + LibraryNamePostfix + "." + LibraryExtension; PublicAdditionalLibraries.Add(LibraryName); } } else if (Target.Platform == UnrealTargetPlatform.XboxOne) { string LibraryNamePrefix = "sicu"; string[] LibraryNameStems = { "dt", // Data "uc", // Unicode Common "in", // Internationalization "le", // Layout Engine "lx", // Layout Extensions "io" // Input/Output }; string LibraryNamePostfix = (Target.Configuration == UnrealTargetConfiguration.Debug && BuildConfiguration.bDebugBuildsActuallyUseDebugCRT) ? "d" : string.Empty; string LibraryExtension = "lib"; foreach (string Stem in LibraryNameStems) { string LibraryName = ICURootPath + "XboxOne/lib/" + LibraryNamePrefix + Stem + LibraryNamePostfix + "." + LibraryExtension; PublicAdditionalLibraries.Add(LibraryName); } } // common defines if ((Target.Platform == UnrealTargetPlatform.Win64) || (Target.Platform == UnrealTargetPlatform.Win32) || (Target.Platform == UnrealTargetPlatform.Linux) || (Target.Platform == UnrealTargetPlatform.Android) || (Target.Platform == UnrealTargetPlatform.Mac) || (Target.Platform == UnrealTargetPlatform.IOS) || (Target.Platform == UnrealTargetPlatform.PS4) || (Target.Platform == UnrealTargetPlatform.XboxOne) || (Target.Platform == UnrealTargetPlatform.HTML5)) { // Definitions Definitions.Add("U_USING_ICU_NAMESPACE=0"); // Disables a using declaration for namespace "icu". Definitions.Add("U_STATIC_IMPLEMENTATION"); // Necessary for linking to ICU statically. Definitions.Add("U_NO_DEFAULT_INCLUDE_UTF_HEADERS=1"); // Disables unnecessary inclusion of headers - inclusions are for ease of use. Definitions.Add("UNISTR_FROM_CHAR_EXPLICIT=explicit"); // Makes UnicodeString constructors for ICU character types explicit. Definitions.Add("UNISTR_FROM_STRING_EXPLICIT=explicit"); // Makes UnicodeString constructors for "char"/ICU string types explicit. Definitions.Add("UCONFIG_NO_TRANSLITERATION=1"); // Disables declarations and compilation of unused ICU transliteration functionality. } if (Target.Platform == UnrealTargetPlatform.PS4) { // Definitions Definitions.Add("ICU_NO_USER_DATA_OVERRIDE=1"); Definitions.Add("U_PLATFORM=U_PF_ORBIS"); } if (Target.Platform == UnrealTargetPlatform.XboxOne) { // Definitions Definitions.Add("ICU_NO_USER_DATA_OVERRIDE=1"); Definitions.Add("U_PLATFORM=U_PF_DURANGO"); } }
public llvm(TargetInfo Target) { Type = ModuleType.External; if (Target.Platform != UnrealTargetPlatform.Win32) { // Currently we support only Win32 llvm builds. return; } var LLVMVersion = @"3.5.0"; // VS2015 uses a newer version of the libs if (WindowsPlatform.Compiler == WindowsCompiler.VisualStudio2015) { LLVMVersion = @"3.6.2"; } var VSVersion = @"vs" + WindowsPlatform.GetVisualStudioCompilerVersionName(); var TargetArch = @"x86"; var RootDirectory = Path.Combine(UEBuildConfiguration.UEThirdPartySourceDirectory, @"llvm", LLVMVersion); PublicIncludePaths.AddRange( new string[] { Path.Combine(RootDirectory, "include"), }); PublicLibraryPaths.AddRange( new string[] { Path.Combine(RootDirectory, @"lib", VSVersion, TargetArch, @"release"), }); PublicAdditionalLibraries.AddRange( new string[] { "clangAnalysis.lib", "clangAST.lib", "clangBasic.lib", "clangDriver.lib", "clangEdit.lib", "clangFrontend.lib", "clangLex.lib", "clangParse.lib", "clangSema.lib", "clangSerialization.lib", "clangTooling.lib", "LLVMAnalysis.lib", "LLVMBitReader.lib", "LLVMCodegen.lib", "LLVMCore.lib", "LLVMMC.lib", "LLVMMCDisassembler.lib", "LLVMMCParser.lib", "LLVMObject.lib", "LLVMOption.lib", "LLVMSupport.lib", "LLVMTarget.lib", "LLVMX86AsmParser.lib", "LLVMX86AsmPrinter.lib", "LLVMX86CodeGen.lib", "LLVMX86Desc.lib", "LLVMX86Info.lib", "LLVMX86Utils.lib", }); // The 3.6.2 version we use for VS2015 has moved some functionality around. if (WindowsPlatform.Compiler == WindowsCompiler.VisualStudio2015) { PublicAdditionalLibraries.AddRange( new string[] { "LLVMTransformUtils.lib", }); } }
public Vorbis(TargetInfo Target) { Type = ModuleType.External; string VorbisPath = UEBuildConfiguration.UEThirdPartySourceDirectory + "Vorbis/libvorbis-1.3.2/"; PublicIncludePaths.Add(VorbisPath + "include"); Definitions.Add("WITH_OGGVORBIS=1"); if (Target.Platform == UnrealTargetPlatform.Win64) { string VorbisLibPath = VorbisPath + "Lib/win64/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName() + "/"; PublicLibraryPaths.Add(VorbisLibPath); PublicAdditionalLibraries.Add("libvorbis_64.lib"); PublicDelayLoadDLLs.Add("libvorbis_64.dll"); RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/ThirdParty/Vorbis/Win64/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName() + "/libvorbis_64.dll")); } else if (Target.Platform == UnrealTargetPlatform.Win32) { string VorbisLibPath = VorbisPath + "Lib/win32/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName() + "/"; PublicLibraryPaths.Add(VorbisLibPath); PublicAdditionalLibraries.Add("libvorbis.lib"); PublicDelayLoadDLLs.Add("libvorbis.dll"); RuntimeDependencies.Add(new RuntimeDependency("$(EngineDir)/Binaries/ThirdParty/Vorbis/Win32/VS" + WindowsPlatform.GetVisualStudioCompilerVersionName() + "/libvorbis.dll")); } else if (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32") // simulator { string VorbisLibPath = VorbisPath + "Lib/HTML5Win32/"; PublicLibraryPaths.Add(VorbisLibPath); PublicAdditionalLibraries.Add("libvorbis.lib"); } else if (Target.Platform == UnrealTargetPlatform.Mac) { PublicAdditionalLibraries.AddRange( new string[] { VorbisPath + "macosx/libvorbis.dylib", } ); } else if (Target.Platform == UnrealTargetPlatform.HTML5) { string VorbisLibPath = VorbisPath + "lib/HTML5/"; PublicLibraryPaths.Add(VorbisLibPath); string OpimizationSuffix = ""; if (UEBuildConfiguration.bCompileForSize) { OpimizationSuffix = "_Oz"; } else { if (Target.Configuration == UnrealTargetConfiguration.Development) { OpimizationSuffix = "_O2"; } else if (Target.Configuration == UnrealTargetConfiguration.Shipping) { OpimizationSuffix = "_O3"; } } PublicAdditionalLibraries.Add(VorbisLibPath + "libvorbis" + OpimizationSuffix + ".bc"); } else if (Target.Platform == UnrealTargetPlatform.Android) { // toolchain will filter PublicLibraryPaths.Add(VorbisPath + "Lib/Android/ARMv7"); PublicLibraryPaths.Add(VorbisPath + "Lib/Android/ARM64"); PublicLibraryPaths.Add(VorbisPath + "Lib/Android/x86"); PublicLibraryPaths.Add(VorbisPath + "Lib/Android/x64"); PublicAdditionalLibraries.Add("vorbis"); } else if (Target.Platform == UnrealTargetPlatform.Linux) { PublicAdditionalLibraries.Add(VorbisPath + "lib/Linux/" + Target.Architecture + "/libvorbis.a"); } }
public PhysXCookingLib(ReadOnlyTargetRules Target) : base(Target) { Type = ModuleType.External; // Determine which kind of libraries to link against PhysXLibraryMode LibraryMode = GetPhysXLibraryMode(Target.Configuration); string LibrarySuffix = GetPhysXLibrarySuffix(LibraryMode); string PhysXLibDir = UEBuildConfiguration.UEThirdPartySourceDirectory + "PhysX/Lib/"; // Libraries and DLLs for windows platform if (Target.Platform == UnrealTargetPlatform.Win64) { PublicAdditionalLibraries.Add(String.Format("PhysX3Cooking{0}_x64.lib", LibrarySuffix)); PublicDelayLoadDLLs.Add(String.Format("PhysX3Cooking{0}_x64.dll", LibrarySuffix)); string PhysXBinariesDir = String.Format("$(EngineDir)/Binaries/ThirdParty/PhysX/Win64/VS{0}/", WindowsPlatform.GetVisualStudioCompilerVersionName()); string FileName = PhysXBinariesDir + String.Format("PhysX3Cooking{0}_x64.dll", LibrarySuffix); RuntimeDependencies.Add(FileName, StagedFileType.NonUFS); RuntimeDependencies.Add(Path.ChangeExtension(FileName, ".pdb"), StagedFileType.DebugNonUFS); } else if (Target.Platform == UnrealTargetPlatform.Win32 || (Target.Platform == UnrealTargetPlatform.HTML5 && Target.Architecture == "-win32")) { PublicAdditionalLibraries.Add(String.Format("PhysX3Cooking{0}_x86.lib", LibrarySuffix)); PublicDelayLoadDLLs.Add(String.Format("PhysX3Cooking{0}_x86.dll", LibrarySuffix)); string PhysXBinariesDir = String.Format("$(EngineDir)/Binaries/ThirdParty/PhysX/Win32/VS{0}/", WindowsPlatform.GetVisualStudioCompilerVersionName()); string FileName = PhysXBinariesDir + String.Format("PhysX3Cooking{0}_x86.dll", LibrarySuffix); RuntimeDependencies.Add(FileName, StagedFileType.NonUFS); RuntimeDependencies.Add(Path.ChangeExtension(FileName, ".pdb"), StagedFileType.DebugNonUFS); } else if (Target.Platform == UnrealTargetPlatform.Mac) { string PhysXBinariesDir = UEBuildConfiguration.UEThirdPartyBinariesDirectory + "PhysX/Mac/"; string LibraryPath = PhysXBinariesDir + String.Format("libPhysX3Cooking{0}.dylib", LibrarySuffix); PublicDelayLoadDLLs.Add(LibraryPath); RuntimeDependencies.Add(new RuntimeDependency(LibraryPath)); } else if (Target.Platform == UnrealTargetPlatform.Android) { PublicAdditionalLibraries.Add(String.Format("PhysX3Cooking{0}", LibrarySuffix)); } else if (Target.Platform == UnrealTargetPlatform.Linux) { PublicAdditionalLibraries.Add(String.Format("PhysX3Cooking{0}", LibrarySuffix)); } else if (Target.Platform == UnrealTargetPlatform.IOS) { PhysXLibDir = Path.Combine(PhysXLibDir, "IOS/"); PublicAdditionalLibraries.Add("PhysX3Cooking" + LibrarySuffix); PublicAdditionalShadowFiles.Add(Path.Combine(PhysXLibDir, "libPhysX3Cooking" + LibrarySuffix + ".a")); } else if (Target.Platform == UnrealTargetPlatform.TVOS) { PhysXLibDir = Path.Combine(PhysXLibDir, "TVOS/"); PublicAdditionalLibraries.Add("PhysX3Cooking" + LibrarySuffix); PublicAdditionalShadowFiles.Add(Path.Combine(PhysXLibDir, "libPhysX3Cooking" + LibrarySuffix + ".a")); } else if (Target.Platform == UnrealTargetPlatform.HTML5) { PhysXLibDir = Path.Combine(PhysXLibDir, "HTML5/"); string OpimizationSuffix = ""; if (UEBuildConfiguration.bCompileForSize) { OpimizationSuffix = "_Oz"; } else { if (Target.Configuration == UnrealTargetConfiguration.Development) { OpimizationSuffix = "_O2"; } else if (Target.Configuration == UnrealTargetConfiguration.Shipping) { OpimizationSuffix = "_O3"; } } PublicAdditionalLibraries.Add(PhysXLibDir + "PhysX3Cooking" + OpimizationSuffix + ".bc"); } else if (Target.Platform == UnrealTargetPlatform.PS4) { PublicAdditionalLibraries.Add(String.Format("PhysX3Cooking{0}", LibrarySuffix)); } else if (Target.Platform == UnrealTargetPlatform.XboxOne) { PublicAdditionalLibraries.Add(String.Format("PhysX3Cooking{0}.lib", LibrarySuffix)); } else if (Target.Platform == UnrealTargetPlatform.Switch) { PublicAdditionalLibraries.Add("PhysX3Cooking" + LibrarySuffix); } }
public override void GetFilesToDeployOrStage(ProjectParams Params, DeploymentContext SC) { // Engine non-ufs (binaries) if (SC.bStageCrashReporter) { StageExecutable("exe", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries", SC.PlatformDir), "CrashReportClient."); } //todo we need to support shipping and test executables //todo this should all be partially based on UBT manifests and not hard coded //monolithic assumption StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries/ThirdParty/Ogg", SC.PlatformDir), "*.", true); StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries/ThirdParty/Vorbis", SC.PlatformDir), "*.", true); string PhysXVer = "VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); string ApexVer = "VS" + WindowsPlatform.GetVisualStudioCompilerVersionName(); string PhysXMaskForDebugConfiguration = Params.bDebugBuildsActuallyUseDebugCRT ? "*DEBUG*.*" : "*PROFILE*.*"; if (SC.StageTargetConfigurations.Contains(UnrealTargetConfiguration.Debug) && !Params.Rocket) { StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries/ThirdParty/PhysX/APEX-1.3", SC.PlatformDir, ApexVer), PhysXMaskForDebugConfiguration, true); StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries/ThirdParty/PhysX/PhysX-3.3", SC.PlatformDir, PhysXVer), PhysXMaskForDebugConfiguration, true); StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries/ThirdParty/PhysX/PhysX-3.3", SC.PlatformDir, PhysXVer), "nvToolsExt*.", true); } if (SC.StageTargetConfigurations.Any(x => x != UnrealTargetConfiguration.Debug) || Params.Rocket) { StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries/ThirdParty/PhysX/APEX-1.3", SC.PlatformDir, ApexVer), "*.", true, new string[] { "*DEBUG*.*", "*CHECKED*.*" }); StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries/ThirdParty/PhysX/PhysX-3.3", SC.PlatformDir, PhysXVer), "*.", true, new string[] { "*DEBUG*.*", "*CHECKED*.*" }); } if (Params.bUsesSteam) { string SteamVersion = "Steamv130"; // Check that the TPS directory exists. We don't distribute binaries for Steam in Rocket. if (Directory.Exists(CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries/ThirdParty/Steamworks/" + SteamVersion))) { if (SC.StageTargetPlatform.PlatformType == UnrealTargetPlatform.Win32) { StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries/ThirdParty/Steamworks/" + SteamVersion, SC.PlatformDir), "steam_api."); if (SC.DedicatedServer) { StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries/ThirdParty/Steamworks/" + SteamVersion, SC.PlatformDir), "steamclient."); StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries/ThirdParty/Steamworks/" + SteamVersion, SC.PlatformDir), "tier0_s."); StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries/ThirdParty/Steamworks/" + SteamVersion, SC.PlatformDir), "vstdlib_s."); } } else { StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries/ThirdParty/Steamworks/" + SteamVersion, SC.PlatformDir), "steam_api64."); if (SC.DedicatedServer) { StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries/ThirdParty/Steamworks/" + SteamVersion, SC.PlatformDir), "steamclient64."); StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries/ThirdParty/Steamworks/" + SteamVersion, SC.PlatformDir), "tier0_s64."); StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries/ThirdParty/Steamworks/" + SteamVersion, SC.PlatformDir), "vstdlib_s64."); } } } } // Copy the splash screen, windows specific SC.StageFiles(StagedFileType.NonUFS, CombinePaths(SC.ProjectRoot, "Content/Splash"), "Splash.bmp", false, null, null, true); if (Params.StageNonMonolithic) { if (SC.DedicatedServer) { StageExecutable("exe", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries", SC.PlatformDir), "UE4Server."); StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries", SC.PlatformDir), "UE4Server-*."); StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Plugins"), "UE4Server-*.", true); StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.ProjectRoot, "Binaries", SC.PlatformDir), "UE4Server-*."); StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.ProjectRoot, "Plugins"), "UE4Server-*.", true); StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries/ThirdParty/ICU/icu4c-53_1", SC.PlatformDir, "VS2013"), "*."); } else { StageExecutable("exe", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries", SC.PlatformDir), "UE4."); StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Binaries", SC.PlatformDir), "UE4-*."); StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.LocalRoot, "Engine/Plugins"), "UE4-*.", true); StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.ProjectRoot, "Binaries", SC.PlatformDir), "UE4-*."); StageExecutable("dll", SC, CommandUtils.CombinePaths(SC.ProjectRoot, "Plugins"), "UE4-*.", true); } } else { List <string> Exes = GetExecutableNames(SC); // the first exe is the "main" one, the rest are marked as debug files StagedFileType WorkingFileType = StagedFileType.NonUFS; foreach (var Exe in Exes) { if (Exe.StartsWith(CombinePaths(SC.RuntimeProjectRootDir, "Binaries", SC.PlatformDir))) { // remap the project root. string SourceFile = CombinePaths(SC.ProjectRoot, "Binaries", SC.PlatformDir, Path.GetFileName(Exe)); StageExecutable("exe", SC, Path.GetDirectoryName(SourceFile), Path.GetFileNameWithoutExtension(SourceFile) + ".", true, null, CommandUtils.CombinePaths(SC.RelativeProjectRootForStage, "Binaries", SC.PlatformDir), false, WorkingFileType); if (Exe == Exes[0] && !Params.NoBootstrapExe) { StageBootstrapExecutable(SC, SourceFile, CombinePaths(SC.RelativeProjectRootForStage, "Binaries", SC.PlatformDir, Path.GetFileName(Exe)), ""); } } else if (Exe.StartsWith(CombinePaths(SC.RuntimeRootDir, "Engine/Binaries", SC.PlatformDir))) { // keep it in the engine directory. string SourceFile = CombinePaths(SC.LocalRoot, "Engine", "Binaries", SC.PlatformDir, Path.GetFileName(Exe)); StageExecutable("exe", SC, CombinePaths(SC.LocalRoot, "Engine/Binaries", SC.PlatformDir), Path.GetFileNameWithoutExtension(SourceFile) + ".", true, null, null, false, WorkingFileType); if (Exe == Exes[0] && !Params.NoBootstrapExe) { StageBootstrapExecutable(SC, SourceFile, CombinePaths("Engine", "Binaries", SC.PlatformDir, Path.GetFileName(Exe)), String.Format("..\\..\\..\\{0}\\{0}.uproject", SC.ShortProjectName)); } } else { throw new AutomationException("Can't stage the exe {0} because it doesn't start with {1} or {2}", Exe, CombinePaths(SC.RuntimeProjectRootDir, "Binaries", SC.PlatformDir), CombinePaths(SC.RuntimeRootDir, "Engine/Binaries", SC.PlatformDir)); } // the first exe is the "main" one, the rest are marked as debug files WorkingFileType = StagedFileType.DebugNonUFS; } } }