Initial android support

This commit is contained in:
nillerusr
2021-08-24 18:42:20 +03:00
parent af3ceed851
commit 2a5b5060b4
57 changed files with 316 additions and 739 deletions
+22 -17
View File
@@ -247,8 +247,10 @@ HMODULE Sys_LoadLibrary( const char *pLibraryName, Sys_Flags flags )
#elif POSIX
int dlopen_mode = RTLD_NOW;
#ifndef ANDROID
if ( flags & SYS_NOLOAD )
dlopen_mode |= RTLD_NOLOAD;
#endif
HMODULE ret = ( HMODULE )dlopen( str, dlopen_mode );
if ( !ret && !( flags & SYS_NOLOAD ) )
@@ -301,31 +303,34 @@ CSysModule *Sys_LoadModule( const char *pModuleName, Sys_Flags flags /* = SYS_NO
size_t cCwd = strlen( szCwd );
bool bUseLibPrefix = false;
#ifdef ANDROID
struct stat statBuf;
char *dataPath = getenv("APP_DATA_PATH");
Q_snprintf(szAbsoluteModuleName, sizeof(szAbsoluteModuleName), "%s/lib/lib%s", dataPath ,pModuleName);
if( stat(szAbsoluteModuleName, &statBuf) != 0 )
Q_snprintf(szAbsoluteModuleName, sizeof(szAbsoluteModuleName), "%s/lib/%s", dataPath ,pModuleName);
#else
#ifdef POSIX
struct stat statBuf;
#ifdef ANDROID
Q_snprintf(szModuleName, sizeof(szModuleName), "lib/lib%s", pModuleName);
#else
Q_snprintf(szModuleName, sizeof(szModuleName), "bin/lib%s", pModuleName);
#endif
bUseLibPrefix |= stat(szModuleName, &statBuf) == 0;
#endif
if( bUseLibPrefix )
Q_snprintf( szAbsoluteModuleName, sizeof(szAbsoluteModuleName), "%s/bin/lib%s", szCwd, pModuleName );
else
Q_snprintf( szAbsoluteModuleName, sizeof(szAbsoluteModuleName), "%s/bin/%s", szCwd, pModuleName );
#endif // ANDROID
Msg("LoadLibrary: pModule: %s, path: %s\n", pModuleName, szAbsoluteModuleName);
#ifdef ANDROID
char* szModulePath = "%s/lib/lib%s";
if (!bUseLibPrefix)
szModulePath = "%s/lib/%s";
#else
char* szModulePath = "%s/bin/lib%s";
if (!bUseLibPrefix)
szModulePath = "%s/bin/%s";
#endif
Q_snprintf( szAbsoluteModuleName, sizeof(szAbsoluteModuleName), szModulePath, szCwd, pModuleName );
hDLL = Sys_LoadLibrary( szAbsoluteModuleName, flags );
}
else
Msg("LoadLibrary: path: %s\n", pModuleName);
if ( !hDLL )
{
-4
View File
@@ -47,11 +47,7 @@
#include <stdarg.h>
#ifdef POSIX
#ifdef ANDROID
#include <../thirdparty/libiconv-1.14/include/iconv.h>
#else
#include <iconv.h>
#endif
#include <ctype.h>
#include <unistd.h>
#include <stdlib.h>
+2 -4
View File
@@ -40,7 +40,7 @@ def build(bld):
'memstack.cpp',
'NetAdr.cpp',
'newbitbuf.cpp',
'pathmatch.cpp', # [$LINUXALL]
# 'pathmatch.cpp', # [$LINUXALL]
# 'processor_detect.cpp', # [$WINDOWS||$X360]
'processor_detect_linux.cpp', # [$POSIX]
'qsort_s.cpp', # [$LINUXALL||$PS3]
@@ -74,9 +74,7 @@ def build(bld):
defines = []
libs = [
'libgnustl_static.a'
]
libs = []
bld.stlib(
source = source,