From 16df7ae9d38cda3befa5d31b2aaae56f83b168af Mon Sep 17 00:00:00 2001
From: BogDan Vatra <bogdan@kde.org>
Date: Tue, 13 Jan 2015 18:48:34 +0200
Subject: [PATCH 4/5] Update main method
Allow JAVA to set env vars.
---
source/main.cpp | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/source/main.cpp b/source/main.cpp
index 4d90e76..0428e69 100644
a
|
b
|
static void RunGameOrAtlas(int argc, const char* argv[])
|
525 | 525 | } |
526 | 526 | |
527 | 527 | #if OS_ANDROID |
528 | | // In Android we compile the engine as a shared library, not an executable, |
529 | | // so rename main() to a different symbol that the wrapper library can load |
530 | | #undef main |
531 | | #define main pyrogenesis_main |
532 | | extern "C" __attribute__((visibility ("default"))) int main(int argc, char* argv[]); |
533 | | #endif |
| 528 | #include <jni.h> |
| 529 | extern"C" JNIEXPORT jint JNICALL Java_com_play0ad_Native_setenv |
| 530 | (JNIEnv* env, jclass /*clazz*/, jstring key, jstring value, jboolean overwrite) |
| 531 | { |
| 532 | const char *k = env->GetStringUTFChars(key, NULL); |
| 533 | const char *v = env->GetStringUTFChars(value, NULL); |
| 534 | int err = setenv(k, v, overwrite); |
| 535 | env->ReleaseStringUTFChars(key, k); |
| 536 | env->ReleaseStringUTFChars(value, v); |
| 537 | return err; |
| 538 | } |
534 | 539 | |
| 540 | extern "C" __attribute__((visibility ("default"))) int SDL_main(int argc, char* argv[]) |
| 541 | #else |
535 | 542 | extern "C" int main(int argc, char* argv[]) |
| 543 | #endif |
536 | 544 | { |
537 | 545 | #if OS_UNIX |
538 | 546 | // Don't allow people to run the game with root permissions, |