diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 18cdaa725c6fe..35437edff7194 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -143,8 +143,8 @@ if(WIN32) else() # Unix probably if(BUILD_CLIENT) - find_package(X11 REQUIRED) - find_package(OpenGL REQUIRED) + #find_package(X11 REQUIRED) + #find_package(OpenGL REQUIRED) find_package(JPEG REQUIRED) find_package(BZip2 REQUIRED) find_package(PNG REQUIRED) @@ -161,11 +161,11 @@ else() endif(APPLE) endif(BUILD_CLIENT) find_package(ZLIB REQUIRED) - set(PLATFORM_LIBS -lpthread -lrt ${CMAKE_DL_LIBS}) + set(PLATFORM_LIBS -landroid -llog -lEGL -lGLESv1_CM ${CMAKE_DL_LIBS}) #set(CLIENT_PLATFORM_LIBS -lXxf86vm) # This way Xxf86vm is found on OpenBSD too - find_library(XXF86VM_LIBRARY Xxf86vm) - mark_as_advanced(XXF86VM_LIBRARY) + #find_library(XXF86VM_LIBRARY Xxf86vm) + #mark_as_advanced(XXF86VM_LIBRARY) set(CLIENT_PLATFORM_LIBS ${CLIENT_PLATFORM_LIBS} ${XXF86VM_LIBRARY}) endif() @@ -381,7 +381,8 @@ endif(USE_CURL) set(EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin") if(BUILD_CLIENT) - add_executable(${PROJECT_NAME} ${minetest_SRCS}) + #add_executable(${PROJECT_NAME} ${minetest_SRCS}) + add_library(${PROJECT_NAME} SHARED ${minetest_SRCS}) target_link_libraries( ${PROJECT_NAME} ${ZLIB_LIBRARIES} diff --git a/src/config.h b/src/config.h index 37dc6e0ef345e..1197de7b87f7e 100644 --- a/src/config.h +++ b/src/config.h @@ -32,8 +32,13 @@ #define USE_CURL CMAKE_USE_CURL #undef USE_FREETYPE #define USE_FREETYPE CMAKE_USE_FREETYPE - #undef STATIC_SHAREDIR - #define STATIC_SHAREDIR CMAKE_STATIC_SHAREDIR + #ifdef __ANDROID__ + #undef STATIC_SHAREDIR + #define STATIC_SHAREDIR "/sdcard/minetest" + #else + #undef STATIC_SHAREDIR + #define STATIC_SHAREDIR CMAKE_STATIC_SHAREDIR + #endif #undef BUILD_INFO #define BUILD_INFO CMAKE_BUILD_INFO #endif diff --git a/src/jthread/pthread/jthread.cpp b/src/jthread/pthread/jthread.cpp index 4a5c736eb896f..921dd94728379 100644 --- a/src/jthread/pthread/jthread.cpp +++ b/src/jthread/pthread/jthread.cpp @@ -119,7 +119,7 @@ int JThread::Kill() runningmutex.Unlock(); return ERR_JTHREAD_NOTRUNNING; } - pthread_cancel(threadid); + pthread_kill(threadid, SIGKILL); running = false; runningmutex.Unlock(); return 0; diff --git a/src/main.cpp b/src/main.cpp index 940580b7a067d..066c6dcb12c88 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -77,6 +77,10 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "quicktune.h" #include "serverlist.h" #include "guiEngine.h" +#ifdef __ANDROID__ +#include +#include +#endif /* Settings. @@ -731,6 +735,26 @@ static void print_worldspecs(const std::vector &worldspecs, } } +#ifdef __ANDROID__ + +android_app *g_app; + +int main(int argc, char *argv[]); + +extern "C" void android_main(struct android_app* app) +{ + g_app = app; + mkdir("/sdcard/minetest", 0666); + fclose(fopen("/sdcard/minetest/minetest.conf", "wb")); + const char *av[] = {"minetest", + "--verbose", + "--logfile", "/sdcard/minetest/debug.txt", + "--config", "/sdcard/minetest/minetest.conf"}; + int ac = 6; + main(ac, (char**) av); +} +#endif + int main(int argc, char *argv[]) { int retval = 0; @@ -1288,6 +1312,9 @@ int main(int argc, char *argv[]) params.Stencilbuffer = false; params.Vsync = vsync; params.EventReceiver = &receiver; +#ifdef __ANDROID__ + params.PrivateData = g_app; +#endif params.HighPrecisionFPU = g_settings->getBool("high_precision_fpu"); nulldevice = createDeviceEx(params); @@ -1341,6 +1368,9 @@ int main(int argc, char *argv[]) params.Stencilbuffer = false; params.Vsync = vsync; params.EventReceiver = &receiver; +#ifdef __ANDROID__ + params.PrivateData = g_app; +#endif params.HighPrecisionFPU = g_settings->getBool("high_precision_fpu"); device = createDeviceEx(params); diff --git a/src/porting.cpp b/src/porting.cpp index 84df15b3093d1..700dc426df3f5 100644 --- a/src/porting.cpp +++ b/src/porting.cpp @@ -180,8 +180,8 @@ bool threadBindToProcessor(threadid_t tid, int pnumber) { CloseHandle(hThread); return success; -#elif (defined(__FreeBSD__) && (__FreeBSD_version >= 702106)) \ - || defined(__linux) || defined(linux) +#elif ((defined(__FreeBSD__) && (__FreeBSD_version >= 702106)) \ + || defined(__linux) || defined(linux)) && !defined(__ANDROID__) cpu_set_t cpuset;