Example #1
0
        /// <summary>检查指定目录下是否有同名静态库</summary>
        /// <param name="di"></param>
        /// <param name="root"></param>
        /// <returns></returns>
        private Boolean CheckPartial(DirectoryInfo di, String root)
        {
            var fi = di.GetAllFiles("*.lib;*.a").FirstOrDefault();

            if (fi != null && fi.Exists)
            {
                if (!Libs.Contains(fi.FullName))
                {
                    var lib = new LibFile(fi.FullName);
                    WriteLog("发现静态库:{0, -12} {1}".F(lib.Name, fi.FullName));
                    Libs.Add(fi.FullName);
                }
                return(true);
            }

            var p = di.Parent;

            if (p == null || p == di)
            {
                return(false);
            }
            // 截止到当前目录
            if (p.FullName.EnsureEnd("\\").EqualIgnoreCase(root.GetFullPath().EnsureEnd("\\")))
            {
                return(false);
            }

            return(CheckPartial(p, root));
        }
Example #2
0
        /// <summary>添加库文件</summary>
        /// <param name="path"></param>
        /// <param name="filter"></param>
        /// <param name="allSub"></param>
        public void AddLibs(String path, String filter = null, Boolean allSub = false)
        {
            path = path.GetFullPath();
            if (!Directory.Exists(path))
            {
                return;
            }

            if (filter.IsNullOrEmpty())
            {
                filter = "*.lib;*.a";
            }
            //var opt = allSub ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly;
            foreach (var item in path.AsDirectory().GetAllFiles(filter, allSub))
            {
                // 不包含,直接增加
                if (!Libs.Contains(item.FullName))
                {
                    var lib = new LibFile(item.FullName);
                    WriteLog("发现静态库:{0, -12} {1}".F(lib.Name, item.FullName));
                    Libs.Add(item.FullName);
                }
            }
        }