Exemplo n.º 1
0
    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());
    }
Exemplo n.º 2
0
    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);
        }
    }