Skip to content

Commit

Permalink
[ANDROID] Fix GLib and GObject Library Names (#1247)
Browse files Browse the repository at this point in the history
* [ANDROID] Fix GLib and GObject Library Names

* [ANDROID] Fix gdk3, gdkpixbuf2, gio2, gmodule2, gtkx112, gdkx112, pangocairo Library Names
  • Loading branch information
KreitinnSoftware authored Feb 6, 2024
1 parent 399478d commit 1642327
Show file tree
Hide file tree
Showing 12 changed files with 173 additions and 11 deletions.
10 changes: 10 additions & 0 deletions src/library_list.h
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,16 @@ GO("libogg.so", libogg)
GO("libFLAC.so", flac)
GO("libz.so", libz)
GO("libandroid-shmem.so", androidshmem)
GO("libgobject-2.0.so", gobject2)
GO("libglib-2.0.so", glib2)
GO("libgtk-3.so", gtk3)
GO("libgdk-3.so", gdk3)
GO("libgdk_pixbuf-2.0.so", gdkpixbuf2)
GO("libgio-2.0.so", gio2)
GO("libgmodule-2.0.so", gmodule2)
GO("libgtk-x11-2.0.so", gtkx112)
GO("libgdk-x11-2.0.so", gdkx112)
GO("libpangocairo-1.0.so", pangocairo)
#else
GO("libc.so.6", libc)
GO("libm.so.6", libm)
Expand Down
17 changes: 16 additions & 1 deletion src/wrapped/wrappedgdk3.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,11 @@
#include "emu/x64emu_private.h"
#include "gtkclass.h"

const char* gdk3Name = "libgdk-3.so.0";
#ifdef ANDROID
const char* gdk3Name = "libgdk-3.so";
#else
const char* gdk3Name = "libgdk-3.so.0";
#endif
#define LIBNAME gdk3

static char* libname = NULL;
Expand Down Expand Up @@ -186,6 +190,16 @@ EXPORT uint32_t my3_gdk_threads_add_timeout_full(x64emu_t* emu, int priotity, ui
if(box64_nogtk) \
return -1;

#ifdef ANDROID
#define CUSTOM_INIT \
libname = lib->name; \
SETALT(my3_); \
getMy(lib); \
setNeededLibs(lib, 3, \
"libgobject-2.0.so", \
"libgio-2.0.so", \
"libgdk_pixbuf-2.0.so");
#else
#define CUSTOM_INIT \
libname = lib->name; \
SETALT(my3_); \
Expand All @@ -194,6 +208,7 @@ EXPORT uint32_t my3_gdk_threads_add_timeout_full(x64emu_t* emu, int priotity, ui
"libgobject-2.0.so.0", \
"libgio-2.0.so.0", \
"libgdk_pixbuf-2.0.so.0");
#endif

#define CUSTOM_FINI \
freeMy();
Expand Down
6 changes: 5 additions & 1 deletion src/wrapped/wrappedgdkpixbuf2.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,11 @@
#include "box64context.h"
#include "emu/x64emu_private.h"

const char* gdkpixbuf2Name = "libgdk_pixbuf-2.0.so.0";
#ifdef ANDROID
const char* gdkpixbuf2Name = "libgdk_pixbuf-2.0.so";
#else
const char* gdkpixbuf2Name = "libgdk_pixbuf-2.0.so.0";
#endif
#define LIBNAME gdkpixbuf2

#include "generated/wrappedgdkpixbuf2types.h"
Expand Down
13 changes: 12 additions & 1 deletion src/wrapped/wrappedgdkx112.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,11 @@
#include "emu/x64emu_private.h"
#include "gtkclass.h"

const char* gdkx112Name = "libgdk-x11-2.0.so.0";
#ifdef ANDROID
const char* gdkx112Name = "libgdk-x11-2.0.so";
#else
const char* gdkx112Name = "libgdk-x11-2.0.so.0";
#endif
#define LIBNAME gdkx112

static char* libname = NULL;
Expand Down Expand Up @@ -174,10 +178,17 @@ EXPORT uint32_t my_gdk_threads_add_timeout_full(x64emu_t* emu, int priotity, uin
if(box64_nogtk) \
return -1;

#ifdef ANDROID
#define CUSTOM_INIT \
libname = lib->name; \
getMy(lib); \
setNeededLibs(lib, 3, "libgobject-2.0.so", "libgio-2.0.so", "libgdk_pixbuf-2.0.so");
#else
#define CUSTOM_INIT \
libname = lib->name; \
getMy(lib); \
setNeededLibs(lib, 3, "libgobject-2.0.so.0", "libgio-2.0.so.0", "libgdk_pixbuf-2.0.so.0");
#endif

#define CUSTOM_FINI \
freeMy(); \
Expand Down
14 changes: 13 additions & 1 deletion src/wrapped/wrappedgio2.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@
#include "myalign.h"
#include "gtkclass.h"

const char* gio2Name = "libgio-2.0.so.0";
#ifdef ANDROID
const char* gio2Name = "libgio-2.0.so";
#else
const char* gio2Name = "libgio-2.0.so.0";
#endif
#define LIBNAME gio2

typedef size_t(*LFv_t)(void);
Expand Down Expand Up @@ -625,11 +629,19 @@ EXPORT void my_g_input_stream_read_async(x64emu_t* emu, void* stream, void* buff
if(box64_nogtk) \
return -1;

#ifdef ANDROID
#define CUSTOM_INIT \
getMy(lib); \
SetGApplicationID(my->g_application_get_type()); \
SetGDBusProxyID(my->g_dbus_proxy_get_type()); \
setNeededLibs(lib, 1, "libgmodule-2.0.so");
#else
#define CUSTOM_INIT \
getMy(lib); \
SetGApplicationID(my->g_application_get_type()); \
SetGDBusProxyID(my->g_dbus_proxy_get_type()); \
setNeededLibs(lib, 1, "libgmodule-2.0.so.0");
#endif

#define CUSTOM_FINI \
freeMy();
Expand Down
6 changes: 5 additions & 1 deletion src/wrapped/wrappedglib2.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@
#include "gtkclass.h"
#include "threads.h"

const char* glib2Name = "libglib-2.0.so.0";
#ifdef ANDROID
const char* glib2Name = "libglib-2.0.so";
#else
const char* glib2Name = "libglib-2.0.so.0";
#endif
#define LIBNAME glib2

typedef void (*vFppip_t)(void*, void*, int, void*);
Expand Down
11 changes: 10 additions & 1 deletion src/wrapped/wrappedgmodule2.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,23 @@
#include "librarian/library_private.h"
#include "x64emu.h"

const char* gmodule2Name = "libgmodule-2.0.so.0";
#ifdef ANDROID
const char* gmodule2Name = "libgmodule-2.0.so";
#else
const char* gmodule2Name = "libgmodule-2.0.so.0";
#endif
#define LIBNAME gmodule2

#define PRE_INIT \
if(box64_nogtk) \
return -1;

#ifdef ANDROID
#define CUSTOM_INIT \
setNeededLibs(lib, 1, "libglib-2.0.so");
#else
#define CUSTOM_INIT \
setNeededLibs(lib, 1, "libglib-2.0.so.0");
#endif

#include "wrappedlib_init.h"
18 changes: 17 additions & 1 deletion src/wrapped/wrappedgobject2.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,11 @@
#include "gtkclass.h"
#include "myalign.h"

const char* gobject2Name = "libgobject-2.0.so.0";
#ifdef ANDROID
const char* gobject2Name = "libgobject-2.0.so";
#else
const char* gobject2Name = "libgobject-2.0.so.0";
#endif
#define LIBNAME gobject2

typedef size_t(*LFv_t)(void);
Expand Down Expand Up @@ -924,6 +928,17 @@ EXPORT void* my_g_type_value_table_peek(x64emu_t* emu, size_t type)
if(box64_nogtk) \
return -1;

#ifdef ANDROID
#define CUSTOM_INIT \
InitGTKClass(lib->w.bridge); \
getMy(lib); \
SetGObjectID(my->g_object_get_type()); \
SetGInitiallyUnownedID(my->g_initially_unowned_get_type()); \
SetGTypeName(my->g_type_name); \
SetGClassPeek(my->g_type_class_peek); \
SetGTypeParent(my->g_type_parent); \
setNeededLibs(lib, 1, "libglib-2.0.so");
#else
#define CUSTOM_INIT \
InitGTKClass(lib->w.bridge); \
getMy(lib); \
Expand All @@ -933,6 +948,7 @@ EXPORT void* my_g_type_value_table_peek(x64emu_t* emu, size_t type)
SetGClassPeek(my->g_type_class_peek); \
SetGTypeParent(my->g_type_parent); \
setNeededLibs(lib, 1, "libglib-2.0.so.0");
#endif

#define CUSTOM_FINI \
FiniGTKClass(); \
Expand Down
29 changes: 29 additions & 0 deletions src/wrapped/wrappedgtk3.c
Original file line number Diff line number Diff line change
Expand Up @@ -821,6 +821,34 @@ EXPORT void my3_gtk_tree_store_set(x64emu_t* emu, void* tree, void* iter, uintpt
if(box64_nogtk) \
return -1;

#ifdef ANDROID
#define CUSTOM_INIT \
libname = lib->name; \
getMy(lib); \
SETALT(my3_); \
SetGtkApplicationID(my->gtk_application_get_type()); \
SetGtkWidget3ID(my->gtk_widget_get_type()); \
SetGtkFixed3ID(my->gtk_fixed_get_type()); \
SetGtkContainer3ID(my->gtk_container_get_type()); \
SetGtkBin3ID(my->gtk_bin_get_type()); \
SetGtkButton3ID(my->gtk_button_get_type()); \
SetGtkMenuButton3ID(my->gtk_menu_button_get_type()); \
SetGtkWindow3ID(my->gtk_window_get_type()); \
SetGtkApplicationWindowID(my->gtk_application_window_get_type());\
SetGtkListBoxID(my->gtk_list_box_get_type()); \
SetGtkListBoxRowID(my->gtk_list_box_row_get_type()); \
SetGtkTextView3ID(my->gtk_text_view_get_type()); \
SetGtkGrid3ID(my->gtk_grid_get_type()); \
SetGtkMisc3ID(my->gtk_misc_get_type()); \
SetGtkLabel3ID(my->gtk_label_get_type()); \
SetGtkImage3ID(my->gtk_image_get_type()); \
SetGtkEventControllerID(my->gtk_event_controller_get_type());\
SetGtkGestureID(my->gtk_gesture_get_type()); \
SetGtkGestureSingleID(my->gtk_gesture_single_get_type()); \
SetGtkGestureLongPressID(my->gtk_gesture_long_press_get_type());\
SetGtkActionID(my->gtk_action_get_type()); \
setNeededLibs(lib, 3, "libgdk-3.so", "libpangocairo-1.0.so", "libgio-2.0.so");
#else
#define CUSTOM_INIT \
libname = lib->name; \
getMy(lib); \
Expand All @@ -847,6 +875,7 @@ EXPORT void my3_gtk_tree_store_set(x64emu_t* emu, void* tree, void* iter, uintpt
SetGtkGestureLongPressID(my->gtk_gesture_long_press_get_type());\
SetGtkActionID(my->gtk_action_get_type()); \
setNeededLibs(lib, 3, "libgdk-3.so.0", "libpangocairo-1.0.so.0", "libgio-2.0.so.0");
#endif

#define CUSTOM_FINI \
freeMy();
Expand Down
36 changes: 35 additions & 1 deletion src/wrapped/wrappedgtkx112.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,11 @@
#include "myalign.h"
#include "gtkclass.h"

const char* gtkx112Name = "libgtk-x11-2.0.so.0";
#ifdef ANDROID
const char* gtkx112Name = "libgtk-x11-2.0.so";
#else
const char* gtkx112Name = "libgtk-x11-2.0.so.0";
#endif
static char* libname = NULL;
#define LIBNAME gtkx112

Expand Down Expand Up @@ -1188,6 +1192,35 @@ EXPORT void my_gtk_print_job_send(x64emu_t* emu, void* job, void* f, void* data,
if(box64_nogtk) \
return -1;

#ifdef ANDROID
#define CUSTOM_INIT \
libname = lib->name; \
getMy(lib); \
SetGtkObjectID(my->gtk_object_get_type()); \
SetGtkWidget2ID(my->gtk_widget_get_type()); \
SetGtkContainer2ID(my->gtk_container_get_type()); \
SetGtkActionID(my->gtk_action_get_type()); \
SetGtkMisc2ID(my->gtk_misc_get_type()); \
SetGtkLabel2ID(my->gtk_label_get_type()); \
SetGtkTreeView2ID(my->gtk_tree_view_get_type()); \
SetGtkBin2ID(my->gtk_bin_get_type()); \
SetGtkWindow2ID(my->gtk_window_get_type()); \
SetGtkTable2ID(my->gtk_table_get_type()); \
SetGtkFixed2ID(my->gtk_fixed_get_type()); \
SetGtkButton2ID(my->gtk_button_get_type()); \
SetGtkComboBox2ID(my->gtk_combo_box_get_type()); \
SetGtkToggleButton2ID(my->gtk_toggle_button_get_type()); \
SetGtkCheckButton2ID(my->gtk_check_button_get_type()); \
SetGtkEntry2ID(my->gtk_entry_get_type()); \
SetGtkSpinButton2ID(my->gtk_spin_button_get_type()); \
SetGtkProgress2ID(my->gtk_progress_get_type()); \
SetGtkProgressBar2ID(my->gtk_progress_bar_get_type()); \
SetGtkFrame2ID(my->gtk_frame_get_type()); \
SetGtkMenuShell2ID(my->gtk_menu_shell_get_type()); \
SetGtkMenuBar2ID(my->gtk_menu_bar_get_type()); \
SetGtkTextView2ID(my->gtk_text_view_get_type()); \
setNeededLibs(lib, 2, "libgdk-x11-2.0.so", "libpangocairo-1.0.so");
#else
#define CUSTOM_INIT \
libname = lib->name; \
getMy(lib); \
Expand Down Expand Up @@ -1215,6 +1248,7 @@ EXPORT void my_gtk_print_job_send(x64emu_t* emu, void* job, void* f, void* data,
SetGtkMenuBar2ID(my->gtk_menu_bar_get_type()); \
SetGtkTextView2ID(my->gtk_text_view_get_type()); \
setNeededLibs(lib, 2, "libgdk-x11-2.0.so.0", "libpangocairo-1.0.so.0");
#endif

#define CUSTOM_FINI \
freeMy();
Expand Down
12 changes: 11 additions & 1 deletion src/wrapped/wrappedpango.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,11 @@
#include "box64context.h"
#include "emu/x64emu_private.h"

const char* pangoName = "libpango-1.0.so.0";
#ifdef ANDROID
const char* pangoName = "libpango-1.0.so";
#else
const char* pangoName = "libpango-1.0.so.0";
#endif
#define LIBNAME pango

#include "generated/wrappedpangotypes.h"
Expand Down Expand Up @@ -96,9 +100,15 @@ EXPORT void my_pango_attribute_init(x64emu_t* emu, void* attr, my_PangoAttrClass
if(box64_nogtk) \
return -1;

#ifdef ANDROID
#define CUSTOM_INIT \
getMy(lib); \
setNeededLibs(lib, 2, "libgobject-2.0.so", "libglib-2.0.so");
#else
#define CUSTOM_INIT \
getMy(lib); \
setNeededLibs(lib, 2, "libgobject-2.0.so.0", "libglib-2.0.so.0");
#endif

#define CUSTOM_FINI \
freeMy();
Expand Down
12 changes: 10 additions & 2 deletions src/wrapped/wrappedpangocairo.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,19 @@
#include "librarian/library_private.h"
#include "x64emu.h"

const char* pangocairoName = "libpangocairo-1.0.so.0";
#ifdef ANDROID
const char* pangocairoName = "libpangocairo-1.0.so";
#else
const char* pangocairoName = "libpangocairo-1.0.so.0";
#endif
#define LIBNAME pangocairo

#ifdef ANDROID
#define CUSTOM_INIT \
setNeededLibs(lib, 1, "libpango-1.0.so");
#else
#define CUSTOM_INIT \
setNeededLibs(lib, 1, "libpango-1.0.so.0");

#endif

#include "wrappedlib_init.h"

0 comments on commit 1642327

Please sign in to comment.