public static void ReplaceWord(string newword, string word) { var files = ContentBuilder.GetFiles(SourcePath_CPlusPlus, true); foreach (var file in files) { var ext = Path.GetExtension(file); if (ext == ".cpp" || ext == ".h") { var text = File.ReadAllText(file); if (text.Contains(word)) { text = text.Replace(word, newword); File.WriteAllText(file, text); } } } }
public static void Main(string[] args) { bool debug = false; int optimizationLevel = 3; var targetPaths = new List <string>(); for (int i = 0; i < args.Length; ++i) { //The argument should be either a compilation flag or a project path if (args[i].Length > 0 && args[i][0] == '-') { switch (args[i]) { case "-debug": debug = true; break; case "-O0": optimizationLevel = 0; break; case "-O1": optimizationLevel = 1; break; case "-O2": optimizationLevel = 2; break; case "-O3": optimizationLevel = 3; break; } } else { if (File.Exists(args[i])) { targetPaths.Add(args[i]); } else { Console.WriteLine($"No file exists for argument \"{args[i]}\"."); } } } foreach (var targetPath in targetPaths) { CollectContentPaths(targetPath, out var workingPath, out var shaderPaths, out var contentPaths); var cachePathStart = Path.Combine(workingPath, Path.GetFileNameWithoutExtension(targetPath)); //Shaders are stored a little differently than the rest of content. This is partially for legacy reasons. //You could make the argument for bundling them together, but shaders do have some unique macro and dependency management that other kinds of content lack. ShaderCompiler.Compile(workingPath, cachePathStart + ".shaderbuildcache", cachePathStart + ".shaderarchive", shaderPaths.ToArray(), out var shaderWarnings, out var shaderErrors, debug: debug, optimizationLevel: optimizationLevel); foreach (var error in shaderErrors) { Console.WriteLine($"{error.File} ({error.LineNumber},{error.ColumnNumber}): error {error.Code}: {error.Message}"); } foreach (var warning in shaderWarnings) { Console.WriteLine($"{warning.File} ({warning.LineNumber},{warning.ColumnNumber}): warning {warning.Code}: {warning.Message}"); } ContentBuilder.BuildContent(workingPath, cachePathStart + ".contentbuildcache", cachePathStart + ".contentarchive", contentPaths, out var contentWarnings, out var contentErrors); foreach (var error in contentErrors) { Console.WriteLine($"{error.File}: error: {error.Message}"); } foreach (var warning in contentWarnings) { Console.WriteLine($"{warning.File}: warning: {warning.Message}"); } } }