static void WrapperToDirectory(string outputDir, WrapperOptions options, IEnumerable <MyFileInfo> inputFiles) { if (Directory.Exists(outputDir)) { if (options.HasFlag(WrapperOptions.ClearOutputDir)) { Directory.Delete(outputDir, true); } Directory.CreateDirectory(outputDir); } foreach (var myFileInfo in inputFiles) { string newOutDir = Path.Combine(outputDir, myFileInfo.SubPath); if (!Directory.Exists(newOutDir)) { Directory.CreateDirectory(newOutDir); } string newOutputFile = Path.Combine(newOutDir, myFileInfo.Info.Name.Replace('.', '_') + ".cpp"); // newOutputFile = Path.ChangeExtension(newOutputFile, ".cpp"); WrapperToFile(newOutputFile, options, new List <MyFileInfo>() { myFileInfo }); } }
static void WrapperToFile(string outputFile, WrapperOptions options, IEnumerable<MyFileInfo> inputFiles) { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); if (options.HasFlag(WrapperOptions.Append)) { if (File.Exists(outputFile)) { string temp = File.ReadAllText(outputFile); sw.Write(temp); } } else { string version = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).FileVersion; sw.WriteLine("//This file was created by FileWrapper {0}", version); sw.WriteLine("//DO NOT EDIT"); sw.WriteLine("#include \"MedusaPreCompiled.h\""); sw.WriteLine("#include \"Core/IO/MemoryFileAutoRegister.h\""); } foreach (var inputFile in inputFiles) { if (options.HasFlag(WrapperOptions.Binary)) { WrapperBinary(sw, inputFile.Info.FullName, options.HasFlag(WrapperOptions.Manually)); } else { WrapperString(sw, inputFile.Info.FullName, options.HasFlag(WrapperOptions.Manually)); } } sw.Close(); String result = sb.ToString(); if (options.HasFlag(WrapperOptions.Append)) { System.IO.File.WriteAllText(outputFile, result); } else { if (File.Exists(outputFile)) { string temp = File.ReadAllText(outputFile); if (temp != result) { System.IO.File.WriteAllText(outputFile, result); } } else { System.IO.File.WriteAllText(outputFile, result); } } }
static void WrapperToDirectory(string outputDir, WrapperOptions options, IEnumerable<MyFileInfo> inputFiles) { if (Directory.Exists(outputDir)) { if (options.HasFlag(WrapperOptions.ClearOutputDir)) { Directory.Delete(outputDir, true); } Directory.CreateDirectory(outputDir); } foreach (var myFileInfo in inputFiles) { string newOutDir = Path.Combine(outputDir, myFileInfo.SubPath); if (!Directory.Exists(newOutDir)) { Directory.CreateDirectory(newOutDir); } string newOutputFile = Path.Combine(newOutDir, myFileInfo.Info.Name.Replace('.', '_') + ".cpp"); // newOutputFile = Path.ChangeExtension(newOutputFile, ".cpp"); WrapperToFile(newOutputFile, options, new List<MyFileInfo>() { myFileInfo }); } }
static void WrapperToFile(string outputFile, WrapperOptions options, IEnumerable <MyFileInfo> inputFiles) { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); if (options.HasFlag(WrapperOptions.Append)) { if (File.Exists(outputFile)) { string temp = File.ReadAllText(outputFile); sw.Write(temp); } } else { string version = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).FileVersion; sw.WriteLine("//This file was created by FileWrapper {0}", version); sw.WriteLine("//DO NOT EDIT"); sw.WriteLine("#include \"MedusaPreCompiled.h\""); sw.WriteLine("#include \"Core/IO/MemoryFileAutoRegister.h\""); } foreach (var inputFile in inputFiles) { if (options.HasFlag(WrapperOptions.Binary)) { WrapperBinary(sw, inputFile.Info.FullName, options.HasFlag(WrapperOptions.Manually)); } else { WrapperString(sw, inputFile.Info.FullName, options.HasFlag(WrapperOptions.Manually)); } } sw.Close(); String result = sb.ToString(); if (options.HasFlag(WrapperOptions.Append)) { System.IO.File.WriteAllText(outputFile, result); } else { if (File.Exists(outputFile)) { string temp = File.ReadAllText(outputFile); if (temp != result) { System.IO.File.WriteAllText(outputFile, result); } } else { System.IO.File.WriteAllText(outputFile, result); } } }