public static ProcessStartInfo CreateMtouchSimStartInfo (IPhoneExecutionCommand cmd, bool logSimOutput, IPhoneSimulatorTarget forceTarget) { string mtouchPath = cmd.Runtime.GetToolPath (cmd.Framework, "mtouch"); if (string.IsNullOrEmpty (mtouchPath)) throw new InvalidOperationException ("Cannot execute iPhone application. mtouch tool is missing."); var outLog = cmd.OutputLogPath; var errLog = cmd.ErrorLogPath; try { if (File.Exists (errLog)) File.Delete (errLog); if (File.Exists (outLog)) File.Delete (outLog); } catch (IOException) {} var sb = new StringBuilder (); sb.AppendFormat ("-launchsim='{0}'", cmd.AppPath); if (logSimOutput) sb.AppendFormat (" -stderr='{0}' -stdout='{1}'", errLog, outLog); if (forceTarget != null) { sb.AppendFormat (" -sdk='{0}'", forceTarget.Version.ToString ()); if (forceTarget.Device == TargetDevice.IPad) sb.AppendFormat (" -device=2"); } var psi = new ProcessStartInfo (mtouchPath, sb.ToString ()) { WorkingDirectory = cmd.LogDirectory, UseShellExecute = false }; return psi; }
public IPhoneExecutionCommand (TargetRuntime runtime, TargetFramework framework, FilePath appPath, FilePath logDirectory, bool debugMode, IPhoneSimulatorTarget target, IPhoneSdkVersion minimumOSVersion, TargetDevice supportedDevices) { this.AppPath = appPath; this.LogDirectory = logDirectory; this.Framework = framework; this.Runtime = runtime; this.DebugMode = debugMode; this.SimulatorTarget = target; this.MinimumOSVersion = minimumOSVersion; this.SupportedDevices = supportedDevices; }
public static ProcessStartInfo CreateMtouchSimStartInfo (IPhoneExecutionCommand cmd, bool logSimOutput, IPhoneSimulatorTarget forceTarget) { string mtouchPath = cmd.Runtime.GetToolPath (cmd.Framework, "mtouch"); if (string.IsNullOrEmpty (mtouchPath)) throw new InvalidOperationException ("Cannot execute iPhone application. mtouch tool is missing."); var outLog = cmd.OutputLogPath; var errLog = cmd.ErrorLogPath; try { if (File.Exists (errLog)) File.Delete (errLog); if (File.Exists (outLog)) File.Delete (outLog); } catch (IOException) {} var cb = new ProcessArgumentBuilder (); cb.AddQuotedFormat ("-launchsim={0}", cmd.AppPath); if (logSimOutput) { cb.AddQuotedFormat ("-stderr={0}", errLog); cb.AddQuotedFormat ("-stdout={0}", outLog); } if (forceTarget != null) { var version = forceTarget.Version; if (!version.IsUseDefault && !IPhoneFramework.SdkIsInstalled (version, true)) { version = IPhoneFramework.GetClosestInstalledSdk (version, true); LoggingService.LogWarning ("iOS SDK '{0}' not installed, falling back to simulator '{1}'", forceTarget.Version, version); } if (!version.IsUseDefault) cb.AddQuotedFormat ("-sdk={0}", forceTarget.Version); if (forceTarget.Device == TargetDevice.IPad) cb.Add ("-device=2"); } var psi = new ProcessStartInfo (mtouchPath, cb.ToString ()) { WorkingDirectory = cmd.LogDirectory, UseShellExecute = false }; return psi; }
protected override ExecutionCommand CreateExecutionCommand (ConfigurationSelector configSel, DotNetProjectConfiguration configuration) { var conf = (IPhoneProjectConfiguration) configuration; IPhoneSimulatorTarget simTarget = null; var minOS = string.IsNullOrEmpty (conf.MtouchMinimumOSVersion)? IPhoneSdkVersion.GetDefault () : IPhoneSdkVersion.Parse (conf.MtouchMinimumOSVersion); if (conf.Platform != PLAT_IPHONE) { simTarget = GetSimulatorTarget (conf); if (simTarget == null) { var defaultDevice = ((IPhoneProject)conf.ParentItem).SupportedDevices == TargetDevice.IPad? TargetDevice.IPad : TargetDevice.IPhone; simTarget = new IPhoneSimulatorTarget (defaultDevice, conf.MtouchSdkVersion.ResolveIfDefault ()); } } return new IPhoneExecutionCommand (TargetRuntime, TargetFramework, conf.AppDirectory, conf.OutputDirectory, conf.DebugMode && conf.MtouchDebug, simTarget, minOS, SupportedDevices) { UserAssemblyPaths = GetUserAssemblyPaths (configSel) }; }
public void SetSimulatorTarget (IPhoneProjectConfiguration conf, IPhoneSimulatorTarget value) { UserProperties.SetValue<IPhoneSimulatorTarget> (GetSimulatorTargetKey (conf), value); }
public IPhoneExecutionHandler (IPhoneSimulatorTarget target) { this.SimulatorTarget = target; }
public IPhoneExecutionMode (IPhoneSimulatorTarget target) { this.Target = target; }