예제 #1
0
        public override void BuildTargetLib(TargetLib TargetLib, string TargetConfiguration)
        {
            DirectoryReference Directory = GetProjectsDirectory(TargetLib, TargetConfiguration);

            string ProjectFile = FileReference.Combine(Directory, TargetLib.ToString() + ".xcodeproj").FullName;

            if (!DirectoryExists(ProjectFile))
            {
                throw new AutomationException("Unabled to build project {0}. Project file not found.", ProjectFile);
            }

            RunAndLog(CmdEnv, "/usr/bin/xcodebuild", string.Format("-project \"{0}\" -target=\"ALL_BUILD\" -configuration {1} -quiet", ProjectFile, TargetConfiguration));
        }
예제 #2
0
        public virtual void SetupTargetLib(TargetLib TargetLib, string TargetConfiguration)
        {
            LogInformation("Building {0} for {1} ({2})...", TargetLib.Name, TargetBuildPlatform, TargetConfiguration);

            if (BuildHostPlatform.Current.Platform.IsInGroup(UnrealPlatformGroup.Unix))
            {
                Environment.SetEnvironmentVariable("CMAKE_ROOT", DirectoryReference.Combine(CMakeRootDirectory, "share").FullName);
                LogInformation("set {0}={1}", "CMAKE_ROOT", Environment.GetEnvironmentVariable("CMAKE_ROOT"));
            }

            DirectoryReference CMakeTargetDirectory = GetProjectsDirectory(TargetLib, TargetConfiguration);

            MakeFreshDirectoryIfRequired(CMakeTargetDirectory);

            LogInformation("Generating projects for lib " + TargetLib.Name + ", " + FriendlyName);

            ProcessStartInfo StartInfo = new ProcessStartInfo();

            StartInfo.FileName         = CMakeCommand;
            StartInfo.WorkingDirectory = CMakeTargetDirectory.FullName;
            StartInfo.Arguments        = GetCMakeArguments(TargetLib, TargetConfiguration);

            if (Utils.RunLocalProcessAndLogOutput(StartInfo) != 0)
            {
                throw new AutomationException("Unable to generate projects for {0}.", TargetLib.ToString() + ", " + FriendlyName);
            }
        }