public BuiltItem[] EvaluateTargets(string[] names) { int[] ids = new int[names.Length]; for (int i = 0; i < names.Length; i++) { ids[i] = graph.GetTargetId(names[i]); } return(manager.EvaluateTargets(ids)); }
public bool Finalize(IBuildManager manager, IWarningLogger log) { if (DefaultTo != null && Values.Count < 1) { if (DefaultTo is Result) { AddResult((Result)DefaultTo, null, -1); } else { BuiltItem[] bi = manager.EvaluateTargets(new int[1] { (int)DefaultTo }); if (bi == null || bi[0].Result == null) { return(true); } AddResult(bi[0].Result, bi[0].ResultPrint, -1); } } if ((Flags & ArgFlags.Optional) == 0 && Values.Count < 1) { log.Error(3015, String.Format("Argument \"{0}\" is not optional but has no values", this), null); return(true); } if ((Flags & ArgFlags.Multi) == 0 && Values.Count > 1) { log.Error(3016, String.Format("Argument \"{0}\" is not multiple-valued but has multiple values", this), null); return(true); } return(false); }
public bool Finalize (IBuildManager manager, IWarningLogger log) { if (DefaultTo != null && Values.Count < 1) { if (DefaultTo is Result) AddResult ((Result) DefaultTo, null, -1); else { BuiltItem[] bi = manager.EvaluateTargets (new int[1] { (int) DefaultTo }); if (bi == null || bi[0].Result == null) return true; AddResult (bi[0].Result, bi[0].ResultPrint, -1); } } if ((Flags & ArgFlags.Optional) == 0 && Values.Count < 1) { log.Error (3015, String.Format ("Argument \"{0}\" is not optional but has no values", this), null); return true; } if ((Flags & ArgFlags.Multi) == 0 && Values.Count > 1) { log.Error (3016, String.Format ("Argument \"{0}\" is not multiple-valued but has multiple values", this), null); return true; } return false; }
// evaluation public bool FinalizeArgs (IBuildManager manager, IWarningLogger logger) { int i; // evaluate deferred args int[] ids = new int[deferred.Count]; for (i = 0; i < deferred.Count; i++) ids[i] = deferred[i].target; BuiltItem[] bis = manager.EvaluateTargets (ids); if (bis == null) return true; for (i = 0; i < deferred.Count; i++) { int aid = deferred[i].aid; if (aid < 0) { if (Add (bis[i].Result, bis[i].ResultPrint, logger)) return true; } else { if (AddNamed (aid, bis[i].Result, bis[i].ResultPrint, deferred[i].index_into_values, logger)) return true; } } deferred.Clear (); // check counts and types, apply defaults if needed for (i = 0; i < args.Length; i++) { if (args[i].Finalize (manager, logger)) return true; } // Check target if (need_target_name && target_name == null) { logger.Error (3015, "Rule needs target name but it has not been set", null); return true; } // all done args_finalized = true; return false; }
// evaluation public bool FinalizeArgs(IBuildManager manager, IWarningLogger logger) { int i; // evaluate deferred args int[] ids = new int[deferred.Count]; for (i = 0; i < deferred.Count; i++) { ids[i] = deferred[i].target; } BuiltItem[] bis = manager.EvaluateTargets(ids); if (bis == null) { return(true); } for (i = 0; i < deferred.Count; i++) { int aid = deferred[i].aid; if (aid < 0) { if (Add(bis[i].Result, bis[i].ResultPrint, logger)) { return(true); } } else { if (AddNamed(aid, bis[i].Result, bis[i].ResultPrint, deferred[i].index_into_values, logger)) { return(true); } } } deferred.Clear(); // check counts and types, apply defaults if needed for (i = 0; i < args.Length; i++) { if (args[i].Finalize(manager, logger)) { return(true); } } // Check target if (need_target_name && target_name == null) { logger.Error(3015, "Rule needs target name but it has not been set", null); return(true); } // all done args_finalized = true; return(false); }