Newer
Older
dub_jkp / source / dub / platform.d
  1. /**
  2. Determines the strings to identify the current build platform.
  3.  
  4. Copyright: © 2012 rejectedsoftware e.K.
  5. License: Subject to the terms of the MIT license, as written in the included LICENSE.txt file.
  6. Authors: Sönke Ludwig
  7. */
  8. module dub.platform;
  9.  
  10. import std.array;
  11.  
  12. string[] determinePlatform()
  13. {
  14. auto ret = appender!(string[])();
  15. version(Windows) ret.put("windows");
  16. version(linux) ret.put("linux");
  17. version(Posix) ret.put("posix");
  18. version(OSX) ret.put("osx");
  19. version(FreeBSD) ret.put("freebsd");
  20. version(OpenBSD) ret.put("openbsd");
  21. version(NetBSD) ret.put("netbsd");
  22. version(DragonFlyBSD) ret.put("dragonflybsd");
  23. version(BSD) ret.put("bsd");
  24. version(Solaris) ret.put("solaris");
  25. version(AIX) ret.put("aix");
  26. version(Haiku) ret.put("haiku");
  27. version(SkyOS) ret.put("skyos");
  28. version(SysV3) ret.put("sysv3");
  29. version(SysV4) ret.put("sysv4");
  30. version(Hurd) ret.put("hurd");
  31. version(Android) ret.put("android");
  32. version(Cygwin) ret.put("cygwin");
  33. version(MinGW) ret.put("mingw");
  34. return ret.data;
  35. }
  36.  
  37. string[] determineArchitecture()
  38. {
  39. auto ret = appender!(string[])();
  40. version(X86) ret.put("x86");
  41. version(X86_64) ret.put("x86_64");
  42. version(ARM) ret.put("arm");
  43. version(ARM_Thumb) ret.put("arm_thumb");
  44. version(ARM_Soft) ret.put("arm_soft");
  45. version(ARM_SoftFP) ret.put("arm_softfp");
  46. version(ARM_HardFP) ret.put("arm_hardfp");
  47. version(ARM64) ret.put("arm64");
  48. version(PPC) ret.put("ppc");
  49. version(PPC_SoftFP) ret.put("ppc_softfp");
  50. version(PPC_HardFP) ret.put("ppc_hardfp");
  51. version(PPC64) ret.put("ppc64");
  52. version(IA64) ret.put("ia64");
  53. version(MIPS) ret.put("mips");
  54. version(MIPS32) ret.put("mips32");
  55. version(MIPS64) ret.put("mips64");
  56. version(MIPS_O32) ret.put("mips_o32");
  57. version(MIPS_N32) ret.put("mips_n32");
  58. version(MIPS_O64) ret.put("mips_o64");
  59. version(MIPS_N64) ret.put("mips_n64");
  60. version(MIPS_EABI) ret.put("mips_eabi");
  61. version(MIPS_NoFloat) ret.put("mips_nofloat");
  62. version(MIPS_SoftFloat) ret.put("mips_softfloat");
  63. version(MIPS_HardFloat) ret.put("mips_hardfloat");
  64. version(SPARC) ret.put("sparc");
  65. version(SPARC_V8Plus) ret.put("sparc_v8plus");
  66. version(SPARC_SoftFP) ret.put("sparc_softfp");
  67. version(SPARC_HardFP) ret.put("sparc_hardfp");
  68. version(SPARC64) ret.put("sparc64");
  69. version(S390) ret.put("s390");
  70. version(S390X) ret.put("s390x");
  71. version(HPPA) ret.put("hppa");
  72. version(HPPA64) ret.put("hppa64");
  73. version(SH) ret.put("sh");
  74. version(SH64) ret.put("sh64");
  75. version(Alpha) ret.put("alpha");
  76. version(Alpha_SoftFP) ret.put("alpha_softfp");
  77. version(Alpha_HardFP) ret.put("alpha_hardfp");
  78. return ret.data;
  79. }
  80.  
  81. string determineCompiler()
  82. {
  83. version(DigitalMars) return "dmd";
  84. else version(GNU) return "gdc";
  85. else version(LDC) return "ldc";
  86. else version(SDC) return "sdc";
  87. else return null;
  88. }