From adabf4c6ef7fe0c56c328ea9a4e364edc98235a4 Mon Sep 17 00:00:00 2001 From: mcc Date: Mon, 26 Nov 2018 02:12:21 -0500 Subject: [PATCH] Fix broken android lua module The LOVR_ENABLE_ANDROID flag wasn't getting passed to C, and the getApplicationId code had bugs --- CMakeLists.txt | 7 ++++++- src/api/android.c | 6 ++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fbdb4bb3..2f4bef2f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -571,7 +571,12 @@ elseif(EMSCRIPTEN) target_sources(lovr PRIVATE src/platform/web.c) elseif(ANDROID) target_link_libraries(lovr log EGL GLESv3) - target_sources(lovr PRIVATE src/platform/android.c src/api/android.c) + target_sources(lovr PRIVATE src/platform/android.c) + + if (LOVR_ENABLE_ANDROID) + add_definitions(-DLOVR_ENABLE_ANDROID) + target_sources(lovr PRIVATE src/api/android.c) + endif() elseif(UNIX) target_sources(lovr PRIVATE src/platform/linux.c) endif() diff --git a/src/api/android.c b/src/api/android.c index 4cd81b34..60cae6f9 100644 --- a/src/api/android.c +++ b/src/api/android.c @@ -1,19 +1,21 @@ #include "api.h" #include "lib/sds/sds.h" #include +#include "platform.h" static int l_lovrGetApplicationId(lua_State *L) { pid_t pid = getpid(); - sds procPath = sdscatfmt(sdsempty(), "/proc/%d/cmdline", (int)pid); + sds procPath = sdscatfmt(sdsempty(), "/proc/%i/cmdline", (int)pid); FILE *procFile = fopen(procPath, "r"); sdsfree(procPath); if (procFile) { sds procData = sdsempty(); char data[64]; int read; - while ((read = fread(data, sizeof(data), 1, procFile))) { + while ((read = fread(data, 1, sizeof(data), procFile))) { procData = sdscatlen(procData, data, read); } + lua_pushstring(L, procData); sdsfree(procData); } else { lua_pushnil(L);