BuildManager.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. using System;
  2. using System.Runtime.CompilerServices;
  3. using BansheeEngine;
  4. namespace BansheeEditor
  5. {
  6. // Note: Must match C++ enum PlatformType
  7. public enum PlatformType
  8. {
  9. Windows,
  10. Count // Keep at end
  11. }
  12. public abstract class PlatformInfo : ScriptObject
  13. {
  14. protected PlatformInfo()
  15. { }
  16. public PlatformType Type
  17. {
  18. get { return Internal_GetType(mCachedPtr); }
  19. }
  20. public string Defines
  21. {
  22. get { return Internal_GetDefines(mCachedPtr); }
  23. set { Internal_SetDefines(mCachedPtr, value); }
  24. }
  25. [MethodImpl(MethodImplOptions.InternalCall)]
  26. private static extern PlatformType Internal_GetType(IntPtr thisPtr);
  27. [MethodImpl(MethodImplOptions.InternalCall)]
  28. private static extern string Internal_GetDefines(IntPtr thisPtr);
  29. [MethodImpl(MethodImplOptions.InternalCall)]
  30. private static extern void Internal_SetDefines(IntPtr thisPtr, string value);
  31. }
  32. public class WinPlatformInfo : PlatformInfo
  33. {
  34. public bool Is32Bit
  35. {
  36. get { return Internal_GetIs32Bit(mCachedPtr); }
  37. set { Internal_SetIs32Bit(mCachedPtr, value); }
  38. }
  39. [MethodImpl(MethodImplOptions.InternalCall)]
  40. private static extern bool Internal_GetIs32Bit(IntPtr thisPtr);
  41. [MethodImpl(MethodImplOptions.InternalCall)]
  42. private static extern void Internal_SetIs32Bit(IntPtr thisPtr, bool value);
  43. }
  44. public static class BuildManager
  45. {
  46. public static PlatformType[] AvailablePlatforms
  47. {
  48. get { return Internal_GetAvailablePlatforms(); }
  49. }
  50. public static PlatformType ActivePlatform
  51. {
  52. get { return Internal_GetActivePlatform(); }
  53. set { Internal_SetActivePlatform(value); }
  54. }
  55. public static PlatformInfo ActivePlatformInfo
  56. {
  57. get { return Internal_GetActivePlatformInfo(); }
  58. }
  59. public static void Build()
  60. {
  61. // TODO
  62. }
  63. internal static string[] GetFrameworkAssemblies(PlatformType type)
  64. {
  65. return Internal_GetFrameworkAssemblies(type);
  66. }
  67. internal static string GetMainExecutable(PlatformType type)
  68. {
  69. return Internal_GetMainExecutable(type);
  70. }
  71. internal static string GetDefines(PlatformType type)
  72. {
  73. return Internal_GetDefines(type);
  74. }
  75. internal static PlatformInfo GetPlatformInfo(PlatformType type)
  76. {
  77. return Internal_GetPlatformInfo(type);
  78. }
  79. [MethodImpl(MethodImplOptions.InternalCall)]
  80. private static extern PlatformType[] Internal_GetAvailablePlatforms();
  81. [MethodImpl(MethodImplOptions.InternalCall)]
  82. private static extern PlatformType Internal_GetActivePlatform();
  83. [MethodImpl(MethodImplOptions.InternalCall)]
  84. private static extern void Internal_SetActivePlatform(PlatformType value);
  85. [MethodImpl(MethodImplOptions.InternalCall)]
  86. private static extern PlatformInfo Internal_GetActivePlatformInfo();
  87. [MethodImpl(MethodImplOptions.InternalCall)]
  88. private static extern PlatformInfo Internal_GetPlatformInfo(PlatformType type);
  89. [MethodImpl(MethodImplOptions.InternalCall)]
  90. private static extern string[] Internal_GetFrameworkAssemblies(PlatformType type);
  91. [MethodImpl(MethodImplOptions.InternalCall)]
  92. private static extern string Internal_GetMainExecutable(PlatformType type);
  93. [MethodImpl(MethodImplOptions.InternalCall)]
  94. private static extern string Internal_GetDefines(PlatformType type);
  95. }
  96. }