Example #1
0
        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));
        }
Example #2
0
            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);
            }
Example #3
0
	    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;
	    }
Example #4
0
	// 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;
	}
Example #5
0
        // 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);
        }