public static void BuildHamcoreEx(string srcDirNameBasic, string win32DestFileName, string unixDestFileName)
        {
            HamCoreBuilder b = new HamCoreBuilder();

            b.AddDir(srcDirNameBasic);
            Con.WriteLine("* Building hamcore ...");

            DeleteSVNFilesFromHamCoreBuilder(b);
            DeleteNodeModulesFilesFromHamCoreBuilder(b);

            try
            {
                File.Delete(win32DestFileName);
            }
            catch
            {
            }
            b.Build(win32DestFileName);

            // unix
            List <string> removeFiles = new List <string>();

            foreach (HamCoreBuilderFileEntry f in b.FileList)
            {
                if (IsFileForOnlyWin32(f.Name))
                {
                    removeFiles.Add(f.Name);
                }
            }
            foreach (string removeFile in removeFiles)
            {
                b.DeleteFile(removeFile);
            }

            DeleteSVNFilesFromHamCoreBuilder(b);
            DeleteNodeModulesFilesFromHamCoreBuilder(b);

            try
            {
                File.Delete(unixDestFileName);
            }
            catch
            {
            }
            b.Build(unixDestFileName);
        }
        // Delete node_modules file
        public static void DeleteNodeModulesFilesFromHamCoreBuilder(HamCoreBuilder b)
        {
            List <string> removeFiles = new List <string>();

            foreach (HamCoreBuilderFileEntry f in b.FileList)
            {
                string name = f.Name;
                if (name.IndexOf(@"\node_modules\", StringComparison.InvariantCultureIgnoreCase) != -1)
                {
                    removeFiles.Add(name);
                }
            }
            foreach (string file in removeFiles)
            {
                b.DeleteFile(file);
            }
        }
 // Delete svn file
 public static void DeleteSVNFilesFromHamCoreBuilder(HamCoreBuilder b)
 {
     List<string> removeFiles = new List<string>();
     foreach (HamCoreBuilderFileEntry f in b.FileList)
     {
         string name = f.Name;
         if (name.StartsWith(".svn", StringComparison.InvariantCultureIgnoreCase) ||
             name.IndexOf(@"\.svn", StringComparison.InvariantCultureIgnoreCase) != -1)
         {
             removeFiles.Add(name);
         }
     }
     foreach (string file in removeFiles)
     {
         b.DeleteFile(file);
     }
 }
        public static void BuildHamcoreEx(string srcDirNameBasic, string win32DestFileName, string unixDestFileName)
        {
            HamCoreBuilder b = new HamCoreBuilder();
            b.AddDir(srcDirNameBasic);
            Con.WriteLine("* Building hamcore ...");

            DeleteSVNFilesFromHamCoreBuilder(b);

            try
            {
                File.Delete(win32DestFileName);
            }
            catch
            {
            }
            b.Build(win32DestFileName);

            // unix
            List<string> removeFiles = new List<string>();
            foreach (HamCoreBuilderFileEntry f in b.FileList)
            {
                if (IsFileForOnlyWin32(f.Name))
                {
                    removeFiles.Add(f.Name);
                }
            }
            foreach (string removeFile in removeFiles)
            {
                b.DeleteFile(removeFile);
            }

            DeleteSVNFilesFromHamCoreBuilder(b);

            try
            {
                File.Delete(unixDestFileName);
            }
            catch
            {
            }
            b.Build(unixDestFileName);
        }