Program.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using SharpGLTF.CodeGen;
  2. using SharpGLTF.SchemaReflection;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Reflection;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace SharpGLTF
  10. {
  11. partial class Program
  12. {
  13. #region MAIN
  14. static void Main(string[] args)
  15. {
  16. SchemaDownload.Syncronize(Constants.RemoteSchemaRepo, Constants.LocalRepoDirectory);
  17. var processors = new List<SchemaProcessor>();
  18. // ---------------------------------------------- Add Main Schema
  19. processors.Add(new MainSchemaProcessor());
  20. // ---------------------------------------------- Add Khronos Extensions
  21. processors.AddRange(KhronosExtensions.GetExtensionsProcessors());
  22. // ---------------------------------------------- Add third party extensions
  23. processors.AddRange(AgiExtensions.GetExtensionsProcessors());
  24. processors.AddRange(CesiumExtensions.GetExtensionsProcessors());
  25. // ---------------------------------------------- process all files
  26. foreach (var processor in processors)
  27. {
  28. foreach (var (targetFileName, schema) in processor.ReadSchema())
  29. {
  30. System.Console.Out.WriteLine($"Emitting {targetFileName}...");
  31. SchemaProcessing.EmitCodeFromSchema(processor.GetTargetProject(), targetFileName, schema, processors);
  32. }
  33. }
  34. }
  35. #endregion
  36. }
  37. }