Пример #1
0
        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);
            }
        }
Пример #2
0
        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));
        }
Пример #3
0
        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;
        }
Пример #4
0
        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);
            }
        }
Пример #5
0
 public IncludeItem(string value, IncludeItemType type = IncludeItemType.Glob)
     : this(Source.Unknown, type, value)
 {
 }