internal static CefApiNode Parse() { var apiNode = new CefApiNode(); Parser p = new CefCApiParser(); p.SetFile(Path.Combine("cef", "include", "cef_version.h")); p.Parse(apiNode); var files = Directory.GetFiles(Path.Combine("cef", "include", "capi")); foreach (var f in files) { if (Path.GetFileName(f) == "cef_base_capi.h") { continue; } p.SetFile(f); p.Parse(apiNode); } p = new CefInternalsParser(); p.SetFile(Path.Combine("cef", "include", "internal", "cef_types.h")); p.Parse(apiNode); CefApiNode tmpApi = new CefApiNode(); p.SetFile(Path.Combine("cef", "include", "internal", "cef_time.h")); p.Parse(tmpApi); apiNode.CefValueStructs.AddRange(tmpApi.CefValueStructs); tmpApi = new CefApiNode(); p.SetFile(Path.Combine("cef", "include", "internal", "cef_string_list.h")); p.Parse(tmpApi); p.SetFile(Path.Combine("cef", "include", "internal", "cef_string_map.h")); p.Parse(tmpApi); p.SetFile(Path.Combine("cef", "include", "internal", "cef_string_multimap.h")); p.Parse(tmpApi); apiNode.CefStringCollectionFunctions = tmpApi.CefFunctions.ToArray(); tmpApi = new CefApiNode(); p.SetFile(Path.Combine("cef", "include", "internal", "cef_types_win.h")); p.Parse(tmpApi); apiNode.CefFunctionsWindows = tmpApi.CefFunctions; apiNode.CefStructsWindows = tmpApi.CefValueStructs; tmpApi = new CefApiNode(); p.SetFile(Path.Combine("cef", "include", "internal", "cef_types_linux.h")); p.Parse(tmpApi); apiNode.CefFunctionsLinux = tmpApi.CefFunctions; apiNode.CefStructsLinux = tmpApi.CefValueStructs; p = new CefClassesParser(); files = Directory.GetFiles(System.IO.Path.Combine("cef", "include")); foreach (var f in files) { if (Path.GetFileName(f) == "cef_base.h") { continue; } if (Path.GetFileName(f) == "cef_pack_resources.h") { continue; } if (Path.GetFileName(f) == "cef_pack_strings.h") { continue; } if (Path.GetFileName(f) == "cef_sandbox_win.h") { continue; } if (Path.GetFileName(f) == "cef_version.h") { continue; } p.SetFile(f); p.Parse(apiNode); } return(apiNode); }
internal static CefApiNode Parse() { var apiNode = new CefApiNode(); Parser p = new CefCApiParser(); p.SetFile(Path.Combine("cef", "include", "cef_version.h")); p.Parse(apiNode); p.SetFile(Path.Combine("cef", "include", "cef_api_hash.h")); p.Parse(apiNode); var files = Directory.GetFiles(Path.Combine("cef", "include", "capi")); foreach (var f in files) { if (Path.GetFileName(f) == "cef_base_capi.h") { continue; } p.SetFile(f); p.Parse(apiNode); } p = new CefInternalsParser(); p.SetFile(Path.Combine("cef", "include", "internal", "cef_types.h")); p.Parse(apiNode); var errorCodeEnum = apiNode.CefEnums.Find(e => e.Name == "cef_errorcode"); if (errorCodeEnum != null) { // CEF now uses preprocessor directives to pull enum values from include/base/internal/cef_net_error_list.h // This is a hack to pull the values manually if (errorCodeEnum.Members.Count == 1) { var fn = Path.Combine("cef", "include", "base", "internal", "cef_net_error_list.h"); if (!File.Exists(fn)) { Debug.Print("error list file not found - please check."); Debugger.Break(); } p.SetFile(fn); (p as CefInternalsParser).ParseNetErrorValues(errorCodeEnum.Members); } else { Debug.Print("enum cef_errorcode_t unexpected member count - please check."); Debugger.Break(); } } else { Debug.Print("enum cef_errorcode_t is missing - please check."); Debugger.Break(); } CefApiNode tmpApi = new CefApiNode(); p.SetFile(Path.Combine("cef", "include", "internal", "cef_time.h")); p.Parse(tmpApi); apiNode.CefValueStructs.AddRange(tmpApi.CefValueStructs); tmpApi = new CefApiNode(); p.SetFile(Path.Combine("cef", "include", "internal", "cef_string_list.h")); p.Parse(tmpApi); p.SetFile(Path.Combine("cef", "include", "internal", "cef_string_map.h")); p.Parse(tmpApi); p.SetFile(Path.Combine("cef", "include", "internal", "cef_string_multimap.h")); p.Parse(tmpApi); apiNode.CefStringCollectionFunctions = tmpApi.CefFunctions.ToArray(); tmpApi = new CefApiNode(); p.SetFile(Path.Combine("cef", "include", "internal", "cef_types_win.h")); p.Parse(tmpApi); apiNode.CefFunctionsWindows = tmpApi.CefFunctions; apiNode.CefStructsWindows = tmpApi.CefValueStructs; tmpApi = new CefApiNode(); p.SetFile(Path.Combine("cef", "include", "internal", "cef_types_linux.h")); p.Parse(tmpApi); apiNode.CefFunctionsLinux = tmpApi.CefFunctions; apiNode.CefStructsLinux = tmpApi.CefValueStructs; p = new CefClassesParser(); files = Directory.GetFiles(System.IO.Path.Combine("cef", "include")); foreach (var f in files) { if (Path.GetFileName(f) == "cef_base.h") { continue; } if (Path.GetFileName(f) == "cef_pack_resources.h") { continue; } if (Path.GetFileName(f) == "cef_pack_strings.h") { continue; } if (Path.GetFileName(f) == "cef_sandbox_win.h") { continue; } if (Path.GetFileName(f) == "cef_version.h") { continue; } if (Path.GetFileName(f) == "cef_api_hash.h") { continue; } p.SetFile(f); p.Parse(apiNode); } return(apiNode); }