Add support for building Android app on Linux or Mac

This commit is contained in:
Wojtek Figat
2023-02-28 15:49:34 +01:00
parent 9b74effe22
commit 12b330e4ec
5 changed files with 33 additions and 1 deletions

View File

@@ -2755,6 +2755,30 @@ Window* LinuxPlatform::CreateWindow(const CreateWindowSettings& settings)
return New<LinuxWindow>(settings);
}
extern char **environ;
void LinuxPlatform::GetEnvironmentVariables(Dictionary<String, String, HeapAllocation>& result)
{
char **s = environ;
for (; *s; s++)
{
char* var = *s;
int32 split = -1;
for (int32 i = 0; var[i]; i++)
{
if (var[i] == '=')
{
split = i;
break;
}
}
if (split == -1)
result[String(var)] = String::Empty;
else
result[String(var, split)] = String(var + split + 1);
}
}
bool LinuxPlatform::GetEnvironmentVariable(const String& name, String& value)
{
char* env = getenv(StringAsANSI<>(*name).Get());

View File

@@ -131,6 +131,7 @@ public:
static String GetWorkingDirectory();
static bool SetWorkingDirectory(const String& path);
static Window* CreateWindow(const CreateWindowSettings& settings);
static void GetEnvironmentVariables(Dictionary<String, String, HeapAllocation>& result);
static bool GetEnvironmentVariable(const String& name, String& value);
static bool SetEnvironmentVariable(const String& name, const String& value);
static int32 StartProcess(const StringView& filename, const StringView& args, const StringView& workingDir, bool hiddenWindow = false, bool waitForEnd = false);