Skip to content

Commit

Permalink
Hacky attempt at porting minetest to android
Browse files Browse the repository at this point in the history
  • Loading branch information
sfan5 committed Oct 21, 2013
1 parent 82e1ab7 commit 3849334
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 11 deletions.
13 changes: 7 additions & 6 deletions src/CMakeLists.txt
Expand Up @@ -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)
Expand All @@ -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()

Expand Down Expand Up @@ -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}
Expand Down
9 changes: 7 additions & 2 deletions src/config.h
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion src/jthread/pthread/jthread.cpp
Expand Up @@ -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;
Expand Down
30 changes: 30 additions & 0 deletions src/main.cpp
Expand Up @@ -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 <android_native_app_glue.h>
#include <sys/stat.h>
#endif

/*
Settings.
Expand Down Expand Up @@ -731,6 +735,26 @@ static void print_worldspecs(const std::vector<WorldSpec> &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;
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down
4 changes: 2 additions & 2 deletions src/porting.cpp
Expand Up @@ -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;

Expand Down

0 comments on commit 3849334

Please sign in to comment.