android port
This commit is contained in:
+65
-22
@@ -11,8 +11,12 @@ ADD_DEPENDENCY_BUILD_FILE(ms, "../materialsystem/build.cpp");
|
||||
ADD_DEPENDENCY_BUILD_FILE(fs, "../external/funnystdlib/stdfilesystems/build.cpp");
|
||||
ADD_DEPENDENCY_BUILD_FILE(tier0, "../external/funnystdlib/tier0/build.cpp");
|
||||
ADD_DEPENDENCY_BUILD_FILE(tier1, "../external/funnystdlib/tier1/build.cpp");
|
||||
ADD_DEPENDENCY_BUILD_FILE(tier2, "../external/funnystdlib/tier2/build.cpp");
|
||||
ADD_DEPENDENCY_BUILD_FILE(server, "../game/server/build.cpp");
|
||||
ADD_DEPENDENCY_BUILD_FILE(client, "../game/client/build.cpp");
|
||||
ADD_DEPENDENCY_BUILD_FILE(rapier, "../rapier/build.cpp");
|
||||
|
||||
#define EXTERNAL "../external/"
|
||||
|
||||
DECLARE_BUILD_STAGE(launcher)
|
||||
{
|
||||
@@ -22,13 +26,30 @@ DECLARE_BUILD_STAGE(launcher)
|
||||
compileProject.files = {"launcher.cpp"};
|
||||
compileProject.includeDirectories = {"../external/SDL/include"};
|
||||
compileProject.m_target = Target_t::DefaultTarget();
|
||||
if (compileProject.m_target.kernel == TARGET_KERNEL_ANDROID)
|
||||
{
|
||||
compileProject.files.AppendTail(EXTERNAL "android/android_native_app_glue.c");
|
||||
compileProject.includeDirectories.AppendTail(EXTERNAL "android");
|
||||
compileProject.bFPIC = true;
|
||||
}
|
||||
ldProject = ccompiler->Compile(&compileProject);
|
||||
ldProject.linkType = ELINK_EXECUTABLE;
|
||||
if (compileProject.m_target.kernel == TARGET_KERNEL_ANDROID)
|
||||
ldProject.linkType = ELINK_DYNAMIC_LIBRARY;
|
||||
else
|
||||
ldProject.linkType = ELINK_EXECUTABLE;
|
||||
if (compileProject.m_target.kernel == TARGET_KERNEL_IOS)
|
||||
{
|
||||
ldProject.frameworkDirectories = {"../external/ios"};
|
||||
ldProject.frameworks = {"SDL3"};
|
||||
}
|
||||
if (compileProject.m_target.kernel == TARGET_KERNEL_ANDROID)
|
||||
{
|
||||
ldProject.libraries.AppendTail("android");
|
||||
ldProject.libraries.AppendTail("log");
|
||||
if (compileProject.m_target.cpu == TARGET_CPU_AARCH64)
|
||||
ldProject.libraryDirectories.AppendTail(EXTERNAL "android/aarch64");
|
||||
|
||||
}
|
||||
if ( GET_PROJECT_VALUE(config, "static") == "true" )
|
||||
{
|
||||
ldProject.objects.AppendTail({GET_PROJECT_OBJECT(engine, "engine")});
|
||||
@@ -36,10 +57,15 @@ DECLARE_BUILD_STAGE(launcher)
|
||||
ldProject.objects.AppendTail({GET_PROJECT_OBJECT(RenderSystemVulkan, "RenderSystemVulkan")});
|
||||
ldProject.objects.AppendTail({GET_PROJECT_OBJECT(tier0, "libtier0")});
|
||||
ldProject.objects.AppendTail({GET_PROJECT_OBJECT(tier1, "tier1")});
|
||||
ldProject.objects.AppendTail({GET_PROJECT_OBJECT(filesystem_std, "libfs")});
|
||||
ldProject.objects.AppendTail({GET_PROJECT_OBJECT(tier2, "tier2")});
|
||||
if (ldProject.m_target.kernel != TARGET_KERNEL_ANDROID)
|
||||
ldProject.objects.AppendTail({GET_PROJECT_OBJECT(filesystem_std, "libfs")});
|
||||
ldProject.objects.AppendTail({GET_PROJECT_OBJECT(shadercompiler, "fs")});
|
||||
ldProject.objects.AppendTail({GET_PROJECT_OBJECT(Server, "server")});
|
||||
ldProject.objects.AppendTail({GET_PROJECT_OBJECT(Client, "client")});
|
||||
ldProject.objects.AppendTail({GET_PROJECT_OBJECT(rapier, "physics")});
|
||||
ldProject.objects.AppendTail({GET_PROJECT_OBJECT(rapier, "rapier_static")});
|
||||
ldProject.libraries.AppendTail("openxr_loader");
|
||||
}
|
||||
|
||||
CUtlString outputProject = linker->Link(&ldProject);
|
||||
@@ -52,16 +78,16 @@ DECLARE_BUILD_STAGE(launcher)
|
||||
|
||||
CUtlString szOutputDir = manifest.BuildManifest();
|
||||
|
||||
filesystem2->CopyDirectory(CUtlString("%s/core/",szOutputDir.GetString()), "../funnyassets/maps");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/core/",szOutputDir.GetString()), "../funnyassets/models");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/core/",szOutputDir.GetString()), "../funnyassets/meshes");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/core/",szOutputDir.GetString()), "../funnyassets/materials");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/core/",szOutputDir.GetString()), "../funnyassets/textures");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/core/",szOutputDir.GetString()), "../funnyassets/physics");
|
||||
filesystem2->CopyFile(CUtlString("%s/core/",szOutputDir.GetString()), "../funnyassets/default.cfg");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/core/",szOutputDir.GetString()), "../funnyassets/game/maps");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/core/",szOutputDir.GetString()), "../funnyassets/game/models");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/core/",szOutputDir.GetString()), "../funnyassets/game/meshes");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/core/",szOutputDir.GetString()), "../funnyassets/game/materials");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/core/",szOutputDir.GetString()), "../funnyassets/game/textures");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/core/",szOutputDir.GetString()), "../funnyassets/game/physics");
|
||||
filesystem2->CopyFile(CUtlString("%s/core/",szOutputDir.GetString()), "../funnyassets/game/default.cfg");
|
||||
filesystem2->CopyDirectory(szOutputDir, "../external/ios/SDL3.framework");
|
||||
|
||||
filesystem2->CopyDirectory(CUtlString("%s/core/",szOutputDir.GetString()), "../build/funnygame/assets/shaders");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/core/",szOutputDir.GetString()), "../build/funnygame/assets/game/shaders");
|
||||
CUtlString szIpa = AppleTool()->BuildPackage( manifest, szOutputDir );
|
||||
}
|
||||
if (compileProject.m_target.kernel == TARGET_KERNEL_ANDROID)
|
||||
@@ -74,20 +100,37 @@ DECLARE_BUILD_STAGE(launcher)
|
||||
|
||||
CUtlString szOutputDir = manifest.BuildManifest();
|
||||
|
||||
CUtlString szLibDir = CUtlString("%s/lib/%s",szOutputDir.GetString(), Target_t::StringFromCPU(compileProject.m_target.cpu));
|
||||
filesystem2->MakeDirectory(szLibDir);
|
||||
filesystem2->CopyFile(CUtlString("%s/libnative-app.so",szLibDir.GetString()), outputProject);
|
||||
CUtlVector<CUtlString> libdirs = {};
|
||||
CUtlString nativelibs;
|
||||
if (compileProject.m_target.cpu == TARGET_CPU_AARCH64)
|
||||
{
|
||||
libdirs.AppendTail(CUtlString("%s/lib/aarch64",szOutputDir.GetString()));
|
||||
libdirs.AppendTail(CUtlString("%s/lib/arm64-v8a",szOutputDir.GetString()));
|
||||
nativelibs.AppendTail(EXTERNAL "android/aarch64");
|
||||
}
|
||||
for (auto lib: libdirs)
|
||||
{
|
||||
filesystem2->MakeDirectory(lib);
|
||||
filesystem2->CopyFile(CUtlString("%s/libnative-app.so",lib.GetString()), outputProject);
|
||||
filesystem2->CopyFile(lib, CUtlString("%s/libc++_shared.so",nativelibs.GetString()));
|
||||
filesystem2->CopyFile(lib, CUtlString("%s/libopenxr_loader.so",nativelibs.GetString()));
|
||||
filesystem2->CopyFile(lib, CUtlString("%s/libVkLayer_khronos_validation.so",nativelibs.GetString()));
|
||||
}
|
||||
|
||||
filesystem2->MakeDirectory(CUtlString("%s/assets/core/",szOutputDir.GetString()));
|
||||
filesystem2->CopyDirectory(CUtlString("%s/assets/core/",szOutputDir.GetString()), "../funnyassets/maps");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/assets/core/",szOutputDir.GetString()), "../funnyassets/models");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/assets/core/",szOutputDir.GetString()), "../funnyassets/meshes");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/assets/core/",szOutputDir.GetString()), "../funnyassets/materials");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/assets/core/",szOutputDir.GetString()), "../funnyassets/textures");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/assets/core/",szOutputDir.GetString()), "../funnyassets/physics");
|
||||
filesystem2->CopyFile(CUtlString("%s/assets/core/",szOutputDir.GetString()), "../funnyassets/default.cfg");
|
||||
manifest.AddObject("lib");
|
||||
manifest.AddObject("assets");
|
||||
|
||||
filesystem2->CopyDirectory(CUtlString("%s/assets/core/",szOutputDir.GetString()), "../build/funnygame/assets/shaders");
|
||||
|
||||
filesystem2->MakeDirectory(CUtlString("%s/assets/game/core/",szOutputDir.GetString()));
|
||||
filesystem2->CopyDirectory(CUtlString("%s/assets/game/core/",szOutputDir.GetString()), "../funnyassets/maps");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/assets/game/core/",szOutputDir.GetString()), "../funnyassets/models");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/assets/game/core/",szOutputDir.GetString()), "../funnyassets/meshes");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/assets/game/core/",szOutputDir.GetString()), "../funnyassets/materials");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/assets/game/core/",szOutputDir.GetString()), "../funnyassets/textures");
|
||||
filesystem2->CopyDirectory(CUtlString("%s/assets/game/core/",szOutputDir.GetString()), "../funnyassets/physics");
|
||||
filesystem2->CopyFile(CUtlString("%s/assets/game/core/",szOutputDir.GetString()), "../funnyassets/default.cfg");
|
||||
|
||||
filesystem2->CopyDirectory(CUtlString("%s/assets/game/core/",szOutputDir.GetString()), "../build/funnygame/assets/shaders");
|
||||
CUtlString szApkPackage = APKTool()->BuildPackage( manifest, szOutputDir );
|
||||
APKTool()->SignPackage(szApkPackage, NULL, "kotofyt", "password1", "password1");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user