void Add(string fullName, IncludeItemType type, Source src, string cond) { var name = fullName.ToRelativePath(_root, true).NativeToUnix(); if (type == IncludeItemType.Glob) { type = GetIncludeItemType(name); } _log.Event(IOEvent.Include, name, "type: " + type); var item = new IncludeItem(src, type, name, cond); _result.Add(item); // Ignore added files to avoid duplicates if (item.Type != IncludeItemType.Folder) { SkipFile(fullName); } // Ignore unpacked stuff directories if (type == IncludeItemType.Stuff && File.Exists(fullName)) { SkipStuff(fullName); } }
bool MatchFile(string fullName, out Source result, out IncludeItemType type, out string cond) { switch (Path.GetExtension(fullName).ToUpperInvariant()) { case ".UNOCONFIG": case ".UNOPROJ": case ".UNOSLN": return(Fail(out result, out type, out cond)); } if (IsSkipped(fullName)) { return(Fail(out result, out type, out cond)); } var unixName = fullName.NativeToUnix(); foreach (var e in _excludePatterns) { if (e.Item1.IsMatch(unixName)) { return(Fail(out result, out type, out cond)); } } foreach (var e in _includePatterns) { if (e.Item1.IsMatch(unixName)) { return(Success(e.Item2, e.Item3, e.Item4, out result, out type, out cond)); } } return(Fail(out result, out type, out cond)); }
public IncludeItem(Source src, IncludeItemType type, string value = null, string condition = null) { // Deperated item type if ((int)type >= 100) { type -= 100; } Source = src; Type = type; Value = value; Condition = condition; }
public static bool IsForeignIncludeType(IncludeItemType type) { switch (type) { case IncludeItemType.Java: case IncludeItemType.JavaFile: case IncludeItemType.CHeader: case IncludeItemType.CHeaderFile: case IncludeItemType.CSource: case IncludeItemType.CSourceFile: case IncludeItemType.ObjCHeader: case IncludeItemType.ObjCSource: case IncludeItemType.Swift: return(true); default: return(false); } }
public IncludeItem(string value, IncludeItemType type = IncludeItemType.Glob) : this(Source.Unknown, type, value) { }