예제 #1
0
        internal ProcessStartInfo MakeInfo(IBuildContext ctxt)
        {
            ArchKindResult.AssertCanExecute(Architecture);

            string args   = GetOtherArgs(ctxt);
            string forced = ForcedArgs;

            if (forced != null)
            {
                if (args.Length > 0)
                {
                    args += " " + forced;
                }
                else
                {
                    args = forced;
                }
            }

            ProcessStartInfo si = new ProcessStartInfo(GetProgram(ctxt), args);

            foreach (string k in EnvironmentKeys)
            {
                si.EnvironmentVariables[k] = GetEnvironment(k);
            }

            return(si);
        }
예제 #2
0
        protected override void CopyItems(Result[] r)
        {
            int t = base.TotalItems;

            base.CopyItems(r);
            r[t]     = new MBString(ForcedArgs);
            r[t + 1] = environment;
            r[t + 2] = new ArchKindResult(Architecture);
        }
예제 #3
0
 public static void AssertCanExecute(ArchKindResult akr)
 {
     AssertCanExecute(akr.Value);
 }