Constants.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace SharpGLTF
  5. {
  6. static class Constants
  7. {
  8. #region root paths
  9. public static string RemoteSchemaRepo = "https://github.com/KhronosGroup/glTF.git";
  10. /// <summary>
  11. /// Program directory
  12. /// </summary>
  13. public static string ProgramDirectory => System.IO.Path.GetDirectoryName(typeof(Program).Assembly.Location);
  14. /// <summary>
  15. /// Directory where the schema is downloaded and used as source
  16. /// </summary>
  17. public static string LocalRepoDirectory => System.IO.Path.Combine(ProgramDirectory, "glTF");
  18. #endregion
  19. #region main schema paths
  20. /// <summary>
  21. /// Directory of the main schema within the download repo directory
  22. /// </summary>
  23. public static string MainSchemaDir => System.IO.Path.Combine(LocalRepoDirectory, "specification", "2.0", "schema");
  24. /// <summary>
  25. /// schema source code file path
  26. /// </summary>
  27. public static string MainSchemaFile => System.IO.Path.Combine(MainSchemaDir, "glTF.schema.json");
  28. #endregion
  29. #region extension paths
  30. private static string ArchivedSchemaDir => System.IO.Path.Combine(LocalRepoDirectory, "extensions", "2.0", "Archived");
  31. private static string KhronosSchemaDir => System.IO.Path.Combine(LocalRepoDirectory, "extensions", "2.0", "Khronos");
  32. private static string VendorSchemaDir => System.IO.Path.Combine(LocalRepoDirectory, "extensions", "2.0", "Vendor");
  33. internal static string ArchivedExtensionPath(string ext, string json)
  34. {
  35. return System.IO.Path.Combine(ArchivedSchemaDir, ext, "schema", json);
  36. }
  37. internal static string KhronosExtensionPath(string ext, string json)
  38. {
  39. return System.IO.Path.Combine(KhronosSchemaDir, ext, "schema", json);
  40. }
  41. internal static string VendorExtensionPath(string ext, string json)
  42. {
  43. return System.IO.Path.Combine(VendorSchemaDir, ext, "schema", json);
  44. }
  45. internal static string CustomExtensionsPath(string ext, string json)
  46. {
  47. return System.IO.Path.Combine(ProgramDirectory, "Schemas", ext, "schema", json);
  48. }
  49. #endregion
  50. #region code generation output paths
  51. /// <summary>
  52. /// directory within the solution where the generated code is emitted
  53. /// </summary>
  54. public static string TargetProjectDirectory => "src\\SharpGLTF.Core\\Schema2\\Generated";
  55. public static string CesiumProjectDirectory => "src\\SharpGLTF.Cesium\\Schema2\\Generated";
  56. /// <summary>
  57. /// namespace of the emitted generated code
  58. /// </summary>
  59. public static string OutputNamespace => "SharpGLTF.Schema2";
  60. #endregion
  61. }
  62. }