No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Unity.Sysroot.cs 2.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using System;
  2. using System.IO;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. using NiceIO.Sysroot;
  6. using UnityEditor.Il2Cpp;
  7. namespace UnityEditor.Il2Cpp
  8. {
  9. /// <summary>
  10. /// Sysroot package for Linux x86_64 targets
  11. /// </summary>
  12. public class SysrootLinuxX86_64: SysrootPackage
  13. {
  14. private string _packageName => "com.unity.sysroot.linux-x86_64";
  15. /// <summary>
  16. /// Name of package
  17. /// </summary>
  18. public override string Name => _packageName;
  19. /// <summary>
  20. /// Name of target platform
  21. /// </summary>
  22. public override string TargetPlatform => "linux";
  23. /// <summary>
  24. /// Name of target architecture
  25. /// </summary>
  26. public override string TargetArch => "x86_64";
  27. private string _payloadVersion => "9.1.0-2.17-v0_608efc24a3b402ec57809211b16a6d32d519f891d4038e1fc8509fe300c395b2-1";
  28. private string _payloadDir;
  29. private string _target => "x86_64-glibc2.17-linux-gnu";
  30. private NPath _sysrootInstallDir;
  31. /// <summary>
  32. /// Initialize sysroot
  33. /// </summary>
  34. public SysrootLinuxX86_64()
  35. {
  36. _payloadDir = $"linux-x86/{_payloadVersion}";
  37. RegisterPayload(_packageName, _payloadDir);
  38. _sysrootInstallDir = PayloadInstallDirectory(_payloadDir);
  39. }
  40. /// <summary>
  41. /// Get sysroot install directory
  42. /// </summary>
  43. /// <returns>Directory where sysroot is installed</returns>
  44. public string SysrootInstallDirectory()
  45. {
  46. return _sysrootInstallDir.InQuotes(SlashMode.Native);
  47. }
  48. /// <summary>
  49. /// Arguments supplied to il2cpp.exe
  50. /// </summary>
  51. /// <returns>Next argument to il2cpp.exe</returns>
  52. public override IEnumerable<string> GetIl2CppArguments()
  53. {
  54. var sysroot = PayloadInstallDirectory(_payloadDir);
  55. yield return $"--sysroot-path={sysroot}";
  56. yield return $"--compiler-flags=\"-target {_target}\"";
  57. yield return $"--linker-flags=\"-target {_target}\"";
  58. }
  59. #if !IL2CPP_LEGACY_API_PRESENT
  60. public override string GetSysrootPath()
  61. {
  62. return PayloadInstallDirectory(_payloadDir).ToString();
  63. }
  64. public override string GetToolchainPath()
  65. {
  66. return null;
  67. }
  68. public override string GetIl2CppCompilerFlags()
  69. {
  70. return $"-target {_target}";
  71. }
  72. public override string GetIl2CppLinkerFlags()
  73. {
  74. return $"-target {_target}";
  75. }
  76. #endif
  77. }
  78. }