private void BuildAmalgamation(GeneratedFileManager fileManager) { var b = new CodeBuilder(); var files = fileManager.GetNewFiles(); foreach (var f in files) { b.AppendLine("#include \"{0}\"", System.IO.Path.GetFileName(f)); } b.AppendLine(); fileManager.WriteFileIfContentChanged("cfx_amalgamation.c", b.ToString()); }
public void Run() { var fileManager = new GeneratedFileManager(System.IO.Path.Combine("libcfx", "Generated")); BuildLibCfx(fileManager); BuildAmalgamation(fileManager); BuildHeaders(fileManager); BuildFunctionPointers(fileManager); fileManager.DeleteObsoleteFiles(); generatedCSFiles = new List <string>(); fileManager = new GeneratedFileManager(System.IO.Path.Combine("ChromiumFX", "Generated")); BuildPInvokeApi(fileManager); BuildEnums(fileManager); BuildCfxRuntime(fileManager); BuildApiClasses(fileManager, StructCategory.Library); BuildApiClasses(fileManager, StructCategory.Client); BuildApiClasses(fileManager, StructCategory.Values); fileManager.DeleteObsoleteFiles(); generatedCSFiles.AddRange(fileManager.GetNewFiles()); fileManager = new GeneratedFileManager(System.IO.Path.Combine("ChromiumFX", "Generated", "Remote")); BuildRemoteCalls(fileManager); BuildCfrRuntime(fileManager); BuildRemoteClasses(fileManager); fileManager.DeleteObsoleteFiles(); generatedCSFiles.AddRange(fileManager.GetNewFiles()); generatedCSFiles.Sort(); var projectFile = Path.Combine("ChromiumFX", "ChromiumFX.csproj"); var project = File.ReadAllText(projectFile); var ex = new Regex("(?:\\s*<Compile Include=\"Generated(?:\\\\\\w+)*?\\\\\\w+.cs\" />)+"); var p1 = ex.Replace(project, ProjectMatch); if (!project.Equals(p1)) { File.WriteAllText(projectFile, p1); } }