/// <summary>
        /// Register the platform with the UEBuildPlatform class
        /// </summary>
        protected override void RegisterBuildPlatforms()
        {
            LinuxPlatformSDK SDK = new LinuxPlatformSDK();

            SDK.ManageAndValidateSDK();

            if ((ProjectFileGenerator.bGenerateProjectFiles == true) || (SDK.HasRequiredSDKsInstalled() == SDKStatus.Valid))
            {
                bool bRegisterBuildPlatform = true;

                string EngineSourcePath        = Path.Combine(ProjectFileGenerator.RootRelativePath, "Engine", "Source");
                string LinuxTargetPlatformFile = Path.Combine(EngineSourcePath, "Developer", "Linux", "LinuxTargetPlatform", "LinuxTargetPlatform.Build.cs");

                if (File.Exists(LinuxTargetPlatformFile) == false)
                {
                    bRegisterBuildPlatform = false;
                }

                if (bRegisterBuildPlatform == true)
                {
                    // Register this build platform for Linux
                    if (BuildConfiguration.bPrintDebugInfo)
                    {
                        Console.WriteLine("        Registering for {0}", UnrealTargetPlatform.Linux.ToString());
                    }
                    UEBuildPlatform.RegisterBuildPlatform(new LinuxPlatform(SDK));
                    UEBuildPlatform.RegisterPlatformWithGroup(UnrealTargetPlatform.Linux, UnrealPlatformGroup.Unix);
                }
            }
        }
        /// <summary>
        /// Register the platform with the UEBuildPlatform class
        /// </summary>
        public override void RegisterBuildPlatforms()
        {
            LinuxPlatformSDK SDK = new LinuxPlatformSDK();

            SDK.ManageAndValidateSDK();

            // Register this build platform for Linux x86-64 and AArch64
            UEBuildPlatform.RegisterBuildPlatform(new LinuxPlatform(UnrealTargetPlatform.Linux, SDK));
            UEBuildPlatform.RegisterPlatformWithGroup(UnrealTargetPlatform.Linux, UnrealPlatformGroup.Linux);
            UEBuildPlatform.RegisterPlatformWithGroup(UnrealTargetPlatform.Linux, UnrealPlatformGroup.Unix);
            UEBuildPlatform.RegisterPlatformWithGroup(UnrealTargetPlatform.Linux, UnrealPlatformGroup.Desktop);

            UEBuildPlatform.RegisterBuildPlatform(new LinuxPlatform(UnrealTargetPlatform.LinuxAArch64, SDK));
            UEBuildPlatform.RegisterPlatformWithGroup(UnrealTargetPlatform.LinuxAArch64, UnrealPlatformGroup.Linux);
            UEBuildPlatform.RegisterPlatformWithGroup(UnrealTargetPlatform.LinuxAArch64, UnrealPlatformGroup.Unix);
        }
        /// <summary>
        /// Register the platform with the UEBuildPlatform class
        /// </summary>
        protected override void RegisterBuildPlatforms(SDKOutputLevel OutputLevel)
        {
            LinuxPlatformSDK SDK = new LinuxPlatformSDK();

            SDK.ManageAndValidateSDK(OutputLevel);

            if ((ProjectFileGenerator.bGenerateProjectFiles == true) || (SDK.HasRequiredSDKsInstalled() == SDKStatus.Valid))
            {
                FileReference LinuxTargetPlatformFile = FileReference.Combine(UnrealBuildTool.EngineSourceDirectory, "Developer", "Linux", "LinuxTargetPlatform", "LinuxTargetPlatform.Build.cs");
                if (FileReference.Exists(LinuxTargetPlatformFile))
                {
                    // Register this build platform for Linux
                    Log.TraceVerbose("        Registering for {0}", UnrealTargetPlatform.Linux.ToString());
                    UEBuildPlatform.RegisterBuildPlatform(new LinuxPlatform(SDK));
                    UEBuildPlatform.RegisterPlatformWithGroup(UnrealTargetPlatform.Linux, UnrealPlatformGroup.Unix);
                }
            }
        }
        /// <summary>
        /// Returns a path to the internal SDK
        /// </summary>
        /// <returns>Valid path to the internal SDK, null otherwise</returns>
        static public string GetInternalSDKPath()
        {
            string SDKRoot = Environment.GetEnvironmentVariable(SDKRootEnvVar);

            if (!String.IsNullOrEmpty(SDKRoot))
            {
                string AutoSDKPath = Path.Combine(SDKRoot, "Host" + BuildHostPlatform.Current.Platform, TargetPlatformName, ExpectedSDKVersion, LinuxPlatform.DefaultHostArchitecture);
                if (DirectoryReference.Exists(new DirectoryReference(AutoSDKPath)))
                {
                    return(AutoSDKPath);
                }
            }

            string InTreeSDKPath = Path.Combine(LinuxPlatformSDK.GetInTreeSDKRoot().FullName, ExpectedSDKVersion, LinuxPlatform.DefaultHostArchitecture);

            if (DirectoryReference.Exists(new DirectoryReference(InTreeSDKPath)))
            {
                return(InTreeSDKPath);
            }

            return(null);
        }
        public static string WhichClang()
        {
            string InternalSDKPath = LinuxPlatformSDK.GetInternalSDKPath();

            if (!String.IsNullOrEmpty(InternalSDKPath))
            {
                return(Path.Combine(InternalSDKPath, "bin", "clang++"));
            }

            string[] ClangNames = { "clang++", "clang++-7.0", "clang++-6.0" };
            string   ClangPath;

            foreach (string ClangName in ClangNames)
            {
                ClangPath = Which(ClangName);
                if (!String.IsNullOrEmpty(ClangPath))
                {
                    return(ClangPath);
                }
            }

            return(null);
        }
 public LinuxPlatform(UnrealTargetPlatform UnrealTarget, CppPlatform InCppPlatform, LinuxPlatformSDK InSDK)
     : base(UnrealTarget, InCppPlatform)
 {
     SDK = InSDK;
 }
 /// <summary>
 /// Constructor
 /// </summary>
 public LinuxPlatform(LinuxPlatformSDK InSDK)
     : this(UnrealTargetPlatform.Linux, CppPlatform.Linux, InSDK)
 {
     SDK = InSDK;
 }
Beispiel #8
0
 /// <summary>
 /// Constructor
 /// </summary>
 public LinuxPlatform(LinuxPlatformSDK InSDK) : base(UnrealTargetPlatform.Linux, CppPlatform.Linux)
 {
     SDK = InSDK;
 }
 public LinuxPlatform(UnrealTargetPlatform UnrealTarget, LinuxPlatformSDK InSDK)
     : base(UnrealTarget)
 {
     SDK = InSDK;
 }
		/// <summary>
		/// Register the platform with the UEBuildPlatform class
		/// </summary>
		protected override void RegisterBuildPlatforms()
		{
			LinuxPlatformSDK SDK = new LinuxPlatformSDK();
			SDK.ManageAndValidateSDK();

			if ((ProjectFileGenerator.bGenerateProjectFiles == true) || (SDK.HasRequiredSDKsInstalled() == SDKStatus.Valid))
			{
				bool bRegisterBuildPlatform = true;

				string EngineSourcePath = Path.Combine(ProjectFileGenerator.RootRelativePath, "Engine", "Source");
				string LinuxTargetPlatformFile = Path.Combine(EngineSourcePath, "Developer", "Linux", "LinuxTargetPlatform", "LinuxTargetPlatform.Build.cs");

				if (File.Exists(LinuxTargetPlatformFile) == false)
				{
					bRegisterBuildPlatform = false;
				}

				if (bRegisterBuildPlatform == true)
				{
					// Register this build platform for Linux
					if (BuildConfiguration.bPrintDebugInfo)
					{
						Console.WriteLine("        Registering for {0}", UnrealTargetPlatform.Linux.ToString());
					}
					UEBuildPlatform.RegisterBuildPlatform(new LinuxPlatform(SDK));
					UEBuildPlatform.RegisterPlatformWithGroup(UnrealTargetPlatform.Linux, UnrealPlatformGroup.Unix);
				}
			}
		}
		/// <summary>
		/// Constructor
		/// </summary>
		public LinuxPlatform(LinuxPlatformSDK InSDK) : base(UnrealTargetPlatform.Linux, CPPTargetPlatform.Linux)
		{
			SDK = InSDK;
		}