暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "il2cpp-config.h"
  2. #include "os/Path.h"
  3. #include "os/Environment.h"
  4. #include "utils/Runtime.h"
  5. #include "utils/PathUtils.h"
  6. #include "utils/StringUtils.h"
  7. #include "utils/Environment.h"
  8. #ifndef IL2CPP_DEFAULT_DATA_DIR_PATH
  9. #define IL2CPP_DEFAULT_DATA_DIR_PATH Data
  10. #endif
  11. #define IL2CPP_DEFAULT_DATA_DIR_PATH_STR MAKE_STRING(STRINGIZE, IL2CPP_DEFAULT_DATA_DIR_PATH)
  12. namespace il2cpp
  13. {
  14. namespace utils
  15. {
  16. NORETURN void Runtime::Abort()
  17. {
  18. os::Environment::Abort();
  19. }
  20. static std::string s_DataDirFallback;
  21. static std::string s_DataDir;
  22. void Runtime::SetDataDir(const char *path)
  23. {
  24. s_DataDir = path;
  25. }
  26. std::string Runtime::GetDataDir()
  27. {
  28. // use explicit value if set
  29. if (s_DataDir.size() > 0)
  30. return s_DataDir;
  31. std::string applicationFolder = os::Path::GetApplicationFolder();
  32. if (!applicationFolder.empty())
  33. return PathUtils::Combine(applicationFolder, StringView<char>(IL2CPP_DEFAULT_DATA_DIR_PATH_STR));
  34. if (s_DataDirFallback.size() == 0 && Environment::GetNumMainArgs() > 0)
  35. {
  36. std::string main = StringUtils::Utf16ToUtf8(Environment::GetMainArgs()[0]);
  37. s_DataDirFallback = PathUtils::DirectoryName(main);
  38. }
  39. return s_DataDirFallback;
  40. }
  41. } // utils
  42. } // il2cpp