From 24f162f9ee489a8b6557348f9c2a5abb6d232b86 Mon Sep 17 00:00:00 2001 From: khanhduytran0 Date: Tue, 2 Feb 2021 19:15:49 +0700 Subject: [PATCH] Use minimal awt_xawt stub --- app_pojavlauncher/src/main/jni/Android.mk | 13 ++- .../src/main/jni/awt_xawt/xawt_fake.c | 101 ++++++++++++++---- .../{awt_xawt => awt_xawt_full}/XToolkit.c | 0 .../{awt_xawt => awt_xawt_full}/XlibWrapper.c | 0 .../awt_AWTEvent.c | 0 .../{awt_xawt => awt_xawt_full}/awt_Desktop.c | 0 .../{awt_xawt => awt_xawt_full}/awt_Event.c | 0 .../awt_GraphicsEnv.c | 0 .../awt_InputMethod.c | 0 .../{awt_xawt => awt_xawt_full}/awt_Insets.c | 0 .../{awt_xawt => awt_xawt_full}/awt_Robot.c | 0 .../{awt_xawt => awt_xawt_full}/awt_Taskbar.c | 0 .../awt_UNIXToolkit.c | 0 .../{awt_xawt => awt_xawt_full}/awt_global.h | 0 .../src/main/jni/awt_xawt_full/libawt_xawt.so | Bin 0 -> 59976 bytes .../{awt_xawt => awt_xawt_full}/sizecalc.h | 0 .../src/main/jni/awt_xawt_full/xawt_fake.c | 30 ++++++ 17 files changed, 120 insertions(+), 24 deletions(-) rename app_pojavlauncher/src/main/jni/{awt_xawt => awt_xawt_full}/XToolkit.c (100%) rename app_pojavlauncher/src/main/jni/{awt_xawt => awt_xawt_full}/XlibWrapper.c (100%) rename app_pojavlauncher/src/main/jni/{awt_xawt => awt_xawt_full}/awt_AWTEvent.c (100%) rename app_pojavlauncher/src/main/jni/{awt_xawt => awt_xawt_full}/awt_Desktop.c (100%) rename app_pojavlauncher/src/main/jni/{awt_xawt => awt_xawt_full}/awt_Event.c (100%) rename app_pojavlauncher/src/main/jni/{awt_xawt => awt_xawt_full}/awt_GraphicsEnv.c (100%) rename app_pojavlauncher/src/main/jni/{awt_xawt => awt_xawt_full}/awt_InputMethod.c (100%) rename app_pojavlauncher/src/main/jni/{awt_xawt => awt_xawt_full}/awt_Insets.c (100%) rename app_pojavlauncher/src/main/jni/{awt_xawt => awt_xawt_full}/awt_Robot.c (100%) rename app_pojavlauncher/src/main/jni/{awt_xawt => awt_xawt_full}/awt_Taskbar.c (100%) rename app_pojavlauncher/src/main/jni/{awt_xawt => awt_xawt_full}/awt_UNIXToolkit.c (100%) rename app_pojavlauncher/src/main/jni/{awt_xawt => awt_xawt_full}/awt_global.h (100%) create mode 100644 app_pojavlauncher/src/main/jni/awt_xawt_full/libawt_xawt.so rename app_pojavlauncher/src/main/jni/{awt_xawt => awt_xawt_full}/sizecalc.h (100%) create mode 100644 app_pojavlauncher/src/main/jni/awt_xawt_full/xawt_fake.c diff --git a/app_pojavlauncher/src/main/jni/Android.mk b/app_pojavlauncher/src/main/jni/Android.mk index 49b18a822..aea053cb9 100644 --- a/app_pojavlauncher/src/main/jni/Android.mk +++ b/app_pojavlauncher/src/main/jni/Android.mk @@ -32,13 +32,21 @@ include $(BUILD_SHARED_LIBRARY) # LOCAL_SRC_FILES := thread_helper.cpp # include $(BUILD_SHARED_LIBRARY) +# fake lib for linker +include $(CLEAR_VARS) +LOCAL_MODULE := awt_headless +include $(BUILD_SHARED_LIBRARY) + # libawt_xawt without X11, used to get Caciocavallo working LOCAL_PATH := $(HERE_PATH)/awt_xawt include $(CLEAR_VARS) LOCAL_MODULE := awt_xawt # LOCAL_CFLAGS += -DHEADLESS LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) -LOCAL_SRC_FILES := \ +LOCAL_SHARED_LIBRARIES := awt_headless +LOCAL_SRC_FILES := xawt_fake.c +# commented out +LOCAL_SRC_FILES_ALL := \ xawt_fake.c \ awt_AWTEvent.c \ awt_Event.c \ @@ -53,3 +61,6 @@ LOCAL_SRC_FILES := \ XToolkit.c include $(BUILD_SHARED_LIBRARY) +# delete fake libs after linked +$(info $(shell (rm $(HERE_PATH)/../jniLibs/*/libawt_headless.so))) + diff --git a/app_pojavlauncher/src/main/jni/awt_xawt/xawt_fake.c b/app_pojavlauncher/src/main/jni/awt_xawt/xawt_fake.c index 69a2526e5..4089268a1 100644 --- a/app_pojavlauncher/src/main/jni/awt_xawt/xawt_fake.c +++ b/app_pojavlauncher/src/main/jni/awt_xawt/xawt_fake.c @@ -1,30 +1,85 @@ -#include -#include +#include "jni.h" -#include "awt_global.h" - -jint JNI_OnLoad(JavaVM* vm, void* reserved) { - GLOBAL_WIDTH = atoi(getenv("AWTSTUB_WIDTH")); - GLOBAL_HEIGHT = atoi(getenv("AWTSTUB_HEIGHT")); +JNIEXPORT void JNICALL +Java_java_awt_Component_initIDs + (JNIEnv *env, jclass cls) +{ - return JNI_VERSION_1_4; } -JNIEXPORT void JNICALL Java_java_awt_Font_initIDs(JNIEnv *env, jclass cls) {} -JNIEXPORT void JNICALL Java_sun_awt_X11_XWindow_initIDs(JNIEnv *env, jclass cls) {} -JNIEXPORT void JNICALL Java_sun_font_SunFontManager_initIDs(JNIEnv *env, jclass cls) {} +JNIEXPORT void JNICALL +Java_java_awt_Container_initIDs + (JNIEnv *env, jclass cls) +{ + +} -JNIEXPORT void JNICALL Java_sun_java2d_x11_X11SurfaceData_initIDs(JNIEnv *env, jclass cls) {} -JNIEXPORT void JNICALL Java_sun_java2d_x11_X11SurfaceData_initSurface(JNIEnv *env, jclass cls, jint depth, jint width, jint height, jlong drawable) { - // Any ideas to implement? +JNIEXPORT void JNICALL +Java_java_awt_Window_initIDs + (JNIEnv *env, jclass cls) +{ + } -JNIEXPORT jboolean JNICALL Java_sun_java2d_x11_X11SurfaceData_isDgaAvailable(JNIEnv *env, jclass cls) { - return JNI_FALSE; -} -JNIEXPORT jboolean JNICALL Java_sun_java2d_x11_X11SurfaceData_isShmPMAvailable(JNIEnv *env, jclass cls) { - return JNI_FALSE; -} -JNIEXPORT void JNICALL Java_sun_java2d_x11_X11SurfaceData_XSetCopyMode(JNIEnv *env, jclass cls, jlong xgc) {} -JNIEXPORT void JNICALL Java_sun_java2d_x11_X11SurfaceData_XSetXorMode(JNIEnv *env, jclass cls, jlong xgv) {} -JNIEXPORT void JNICALL Java_sun_java2d_x11_X11SurfaceData_XSetForeground(JNIEnv *env, jclass cls, jlong xgc, jint pixel) {} +JNIEXPORT void JNICALL +Java_java_awt_Frame_initIDs + (JNIEnv *env, jclass cls) +{ + +} + +JNIEXPORT void JNICALL +Java_java_awt_Insets_initIDs + (JNIEnv *env, jclass cls) +{ + +} + +JNIEXPORT void JNICALL +Java_java_awt_KeyboardFocusManager_initIDs + (JNIEnv *env, jclass cls) +{ + +} + +JNIEXPORT void JNICALL +Java_java_awt_AWTEvent_initIDs + (JNIEnv *env, jclass cls) +{ + +} + +JNIEXPORT void JNICALL +Java_java_awt_Cursor_initIDs + (JNIEnv *env, jclass cls) +{ + +} + +JNIEXPORT void JNICALL +Java_java_awt_Dialog_initIDs + (JNIEnv *env, jclass cls) +{ + +} + +JNIEXPORT void JNICALL +Java_java_awt_event_InputEvent_initIDs + (JNIEnv *env, jclass cls) +{ + +} + +JNIEXPORT void JNICALL +Java_java_awt_event_KeyEvent_initIDs + (JNIEnv *env, jclass cls) +{ + +} + +JNIEXPORT void JNICALL +Java_sun_awt_SunToolkit_closeSplashScreen + (JNIEnv *env, jclass cls) +{ + +} diff --git a/app_pojavlauncher/src/main/jni/awt_xawt/XToolkit.c b/app_pojavlauncher/src/main/jni/awt_xawt_full/XToolkit.c similarity index 100% rename from app_pojavlauncher/src/main/jni/awt_xawt/XToolkit.c rename to app_pojavlauncher/src/main/jni/awt_xawt_full/XToolkit.c diff --git a/app_pojavlauncher/src/main/jni/awt_xawt/XlibWrapper.c b/app_pojavlauncher/src/main/jni/awt_xawt_full/XlibWrapper.c similarity index 100% rename from app_pojavlauncher/src/main/jni/awt_xawt/XlibWrapper.c rename to app_pojavlauncher/src/main/jni/awt_xawt_full/XlibWrapper.c diff --git a/app_pojavlauncher/src/main/jni/awt_xawt/awt_AWTEvent.c b/app_pojavlauncher/src/main/jni/awt_xawt_full/awt_AWTEvent.c similarity index 100% rename from app_pojavlauncher/src/main/jni/awt_xawt/awt_AWTEvent.c rename to app_pojavlauncher/src/main/jni/awt_xawt_full/awt_AWTEvent.c diff --git a/app_pojavlauncher/src/main/jni/awt_xawt/awt_Desktop.c b/app_pojavlauncher/src/main/jni/awt_xawt_full/awt_Desktop.c similarity index 100% rename from app_pojavlauncher/src/main/jni/awt_xawt/awt_Desktop.c rename to app_pojavlauncher/src/main/jni/awt_xawt_full/awt_Desktop.c diff --git a/app_pojavlauncher/src/main/jni/awt_xawt/awt_Event.c b/app_pojavlauncher/src/main/jni/awt_xawt_full/awt_Event.c similarity index 100% rename from app_pojavlauncher/src/main/jni/awt_xawt/awt_Event.c rename to app_pojavlauncher/src/main/jni/awt_xawt_full/awt_Event.c diff --git a/app_pojavlauncher/src/main/jni/awt_xawt/awt_GraphicsEnv.c b/app_pojavlauncher/src/main/jni/awt_xawt_full/awt_GraphicsEnv.c similarity index 100% rename from app_pojavlauncher/src/main/jni/awt_xawt/awt_GraphicsEnv.c rename to app_pojavlauncher/src/main/jni/awt_xawt_full/awt_GraphicsEnv.c diff --git a/app_pojavlauncher/src/main/jni/awt_xawt/awt_InputMethod.c b/app_pojavlauncher/src/main/jni/awt_xawt_full/awt_InputMethod.c similarity index 100% rename from app_pojavlauncher/src/main/jni/awt_xawt/awt_InputMethod.c rename to app_pojavlauncher/src/main/jni/awt_xawt_full/awt_InputMethod.c diff --git a/app_pojavlauncher/src/main/jni/awt_xawt/awt_Insets.c b/app_pojavlauncher/src/main/jni/awt_xawt_full/awt_Insets.c similarity index 100% rename from app_pojavlauncher/src/main/jni/awt_xawt/awt_Insets.c rename to app_pojavlauncher/src/main/jni/awt_xawt_full/awt_Insets.c diff --git a/app_pojavlauncher/src/main/jni/awt_xawt/awt_Robot.c b/app_pojavlauncher/src/main/jni/awt_xawt_full/awt_Robot.c similarity index 100% rename from app_pojavlauncher/src/main/jni/awt_xawt/awt_Robot.c rename to app_pojavlauncher/src/main/jni/awt_xawt_full/awt_Robot.c diff --git a/app_pojavlauncher/src/main/jni/awt_xawt/awt_Taskbar.c b/app_pojavlauncher/src/main/jni/awt_xawt_full/awt_Taskbar.c similarity index 100% rename from app_pojavlauncher/src/main/jni/awt_xawt/awt_Taskbar.c rename to app_pojavlauncher/src/main/jni/awt_xawt_full/awt_Taskbar.c diff --git a/app_pojavlauncher/src/main/jni/awt_xawt/awt_UNIXToolkit.c b/app_pojavlauncher/src/main/jni/awt_xawt_full/awt_UNIXToolkit.c similarity index 100% rename from app_pojavlauncher/src/main/jni/awt_xawt/awt_UNIXToolkit.c rename to app_pojavlauncher/src/main/jni/awt_xawt_full/awt_UNIXToolkit.c diff --git a/app_pojavlauncher/src/main/jni/awt_xawt/awt_global.h b/app_pojavlauncher/src/main/jni/awt_xawt_full/awt_global.h similarity index 100% rename from app_pojavlauncher/src/main/jni/awt_xawt/awt_global.h rename to app_pojavlauncher/src/main/jni/awt_xawt_full/awt_global.h diff --git a/app_pojavlauncher/src/main/jni/awt_xawt_full/libawt_xawt.so b/app_pojavlauncher/src/main/jni/awt_xawt_full/libawt_xawt.so new file mode 100644 index 0000000000000000000000000000000000000000..fdbfd507ee0ecf54573c9fa1049a12630a76d9e6 GIT binary patch literal 59976 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 literal 0 HcmV?d00001 diff --git a/app_pojavlauncher/src/main/jni/awt_xawt/sizecalc.h b/app_pojavlauncher/src/main/jni/awt_xawt_full/sizecalc.h similarity index 100% rename from app_pojavlauncher/src/main/jni/awt_xawt/sizecalc.h rename to app_pojavlauncher/src/main/jni/awt_xawt_full/sizecalc.h diff --git a/app_pojavlauncher/src/main/jni/awt_xawt_full/xawt_fake.c b/app_pojavlauncher/src/main/jni/awt_xawt_full/xawt_fake.c new file mode 100644 index 000000000..69a2526e5 --- /dev/null +++ b/app_pojavlauncher/src/main/jni/awt_xawt_full/xawt_fake.c @@ -0,0 +1,30 @@ +#include +#include + +#include "awt_global.h" + +jint JNI_OnLoad(JavaVM* vm, void* reserved) { + GLOBAL_WIDTH = atoi(getenv("AWTSTUB_WIDTH")); + GLOBAL_HEIGHT = atoi(getenv("AWTSTUB_HEIGHT")); + + return JNI_VERSION_1_4; +} + +JNIEXPORT void JNICALL Java_java_awt_Font_initIDs(JNIEnv *env, jclass cls) {} +JNIEXPORT void JNICALL Java_sun_awt_X11_XWindow_initIDs(JNIEnv *env, jclass cls) {} +JNIEXPORT void JNICALL Java_sun_font_SunFontManager_initIDs(JNIEnv *env, jclass cls) {} + +JNIEXPORT void JNICALL Java_sun_java2d_x11_X11SurfaceData_initIDs(JNIEnv *env, jclass cls) {} +JNIEXPORT void JNICALL Java_sun_java2d_x11_X11SurfaceData_initSurface(JNIEnv *env, jclass cls, jint depth, jint width, jint height, jlong drawable) { + // Any ideas to implement? +} +JNIEXPORT jboolean JNICALL Java_sun_java2d_x11_X11SurfaceData_isDgaAvailable(JNIEnv *env, jclass cls) { + return JNI_FALSE; +} +JNIEXPORT jboolean JNICALL Java_sun_java2d_x11_X11SurfaceData_isShmPMAvailable(JNIEnv *env, jclass cls) { + return JNI_FALSE; +} +JNIEXPORT void JNICALL Java_sun_java2d_x11_X11SurfaceData_XSetCopyMode(JNIEnv *env, jclass cls, jlong xgc) {} +JNIEXPORT void JNICALL Java_sun_java2d_x11_X11SurfaceData_XSetXorMode(JNIEnv *env, jclass cls, jlong xgv) {} +JNIEXPORT void JNICALL Java_sun_java2d_x11_X11SurfaceData_XSetForeground(JNIEnv *env, jclass cls, jlong xgc, jint pixel) {} +