From c5aef3317110663e03d38e0f8eab0576678095c7 Mon Sep 17 00:00:00 2001 From: kotofyt Date: Tue, 5 May 2026 18:20:20 +0300 Subject: [PATCH] ios compilation --- build.cpp | 5 ++++- buildcfg.cpp | 28 +++++++++++++--------------- engine/build.cpp | 6 +++++- engine/engine.cpp | 2 ++ external/GameNetworkingSockets | 2 +- external/SDL | 2 +- external/Vulkan-Headers | 2 +- external/Vulkan-Utility-Libraries | 2 +- external/VulkanMemoryAllocator | 2 +- external/cglm | 2 +- external/funnystdlib | 2 +- external/slang | 2 +- external/stb | 2 +- external/volk | 2 +- external/xtool | 2 +- game/server/game.cpp | 2 ++ launcher/build.cpp | 21 ++++++++++++++++++--- launcher/launcher.cpp | 19 +++++++++++-------- materialsystem/build.cpp | 6 +++++- rapier/build.cpp | 1 - shadercompiler/psMain | Bin 2724 -> 348 bytes shadercompiler/rayMain | Bin 1140 -> 1148 bytes shadercompiler/vsMain | Bin 2772 -> 768 bytes 23 files changed, 71 insertions(+), 41 deletions(-) diff --git a/build.cpp b/build.cpp index dfbc53e..9dc9263 100755 --- a/build.cpp +++ b/build.cpp @@ -6,7 +6,6 @@ auto szTarget = Target_t::DefaultTarget().GetTriplet(); auto szOutputDir = CUtlString("build/funnygame/%s/game", szTarget.GetString()); ADD_DEPENDENCY_BUILD_FILE(cfg, "buildcfg.cpp"); -ADD_DEPENDENCY_BUILD_FILE(launcher, "launcher/build.cpp"); ADD_DEPENDENCY_BUILD_FILE(engine, "engine/build.cpp"); ADD_DEPENDENCY_BUILD_FILE(ms, "materialsystem/build.cpp"); ADD_DEPENDENCY_BUILD_FILE(fs, "external/funnystdlib/stdfilesystems/build.cpp"); @@ -15,6 +14,7 @@ ADD_DEPENDENCY_BUILD_FILE(fsc, "shadercompiler/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"); +ADD_DEPENDENCY_BUILD_FILE(launcher, "launcher/build.cpp"); #define EXTERNAL "external/" DECLARE_BUILD_STAGE(install_game) @@ -35,6 +35,9 @@ DECLARE_BUILD_STAGE(install_game) if ( GET_PROJECT_VALUE(config, "steam") == "true" ) { filesystem2->CopyFile(szOutputDir, GET_PROJECT_OBJECT(config, "steam_lib")); } + if ( GET_PROJECT_VALUE(config, "bundle") == "true" ) { + return 0; + } filesystem2->CopyFile(szOutputDir, GET_PROJECT_OBJECT(launcher, "launcher")); filesystem2->CopyDirectory(CUtlString("%s/core/",szOutputDir.GetString()), "funnyassets/maps"); filesystem2->CopyDirectory(CUtlString("%s/core/",szOutputDir.GetString()), "funnyassets/models"); diff --git a/buildcfg.cpp b/buildcfg.cpp index 19f2808..4d8e020 100644 --- a/buildcfg.cpp +++ b/buildcfg.cpp @@ -8,24 +8,22 @@ DECLARE_BUILD_STAGE(config) { ADD_OUTPUT_VALUE("static", "true"); ADD_OUTPUT_VALUE("steam", "false"); + ADD_OUTPUT_VALUE("bundle", "true"); } - else + + if (Target_t::DefaultTarget().GetTriplet() == "x86_64-unknown-linux") { - if (Target_t::DefaultTarget().GetTriplet() == "x86_64-unknown-linux") - { - ADD_OUTPUT_VALUE("steam", "true"); - ADD_OUTPUT_OBJECT("steam_lib", EXTERNAL"steamworks/redistributable_bin/linux64/libsteam_api.so"); - } - else if (Target_t::DefaultTarget().kernel == TARGET_KERNEL_WINDOWS) - { - ADD_OUTPUT_VALUE("steam", "true"); - ADD_OUTPUT_OBJECT("steam_lib", EXTERNAL"steamworks/redistributable_bin/win64/steam_api64.dll"); - } - else { - ADD_OUTPUT_VALUE("steam", "false"); - } ADD_OUTPUT_VALUE("static", "false"); + ADD_OUTPUT_VALUE("bundle", "false"); + ADD_OUTPUT_VALUE("steam", "true"); + ADD_OUTPUT_OBJECT("steam_lib", EXTERNAL"steamworks/redistributable_bin/linux64/libsteam_api.so"); + } + if (Target_t::DefaultTarget().kernel == TARGET_KERNEL_WINDOWS) + { + ADD_OUTPUT_VALUE("static", "false"); + ADD_OUTPUT_VALUE("bundle", "false"); + ADD_OUTPUT_VALUE("steam", "true"); + ADD_OUTPUT_OBJECT("steam_lib", EXTERNAL"steamworks/redistributable_bin/win64/steam_api64.dll"); } - ADD_OUTPUT_VALUE("static", "true"); return 0; } diff --git a/engine/build.cpp b/engine/build.cpp index 2d0b037..4d33d82 100644 --- a/engine/build.cpp +++ b/engine/build.cpp @@ -22,13 +22,17 @@ DECLARE_BUILD_STAGE(engine) "cvar.cpp", "localnetwork.cpp", "socketnetwork.cpp", - "steamnetwork.cpp", "humandevice.cpp", "sv_dll.cpp", "cl_dll.cpp", }; + if ( GET_PROJECT_VALUE(config, "static") == "true" ) + { + compileProject.files.AppendTail("steamnetwork.cpp"); + } + compileProject.includeDirectories = { "../public", "../external/SDL/include", diff --git a/engine/engine.cpp b/engine/engine.cpp index 34f74f6..aa6ecdb 100644 --- a/engine/engine.cpp +++ b/engine/engine.cpp @@ -36,10 +36,12 @@ static void CallAxisEvent( EInputDeviceType eDevice, EInputAxis eAxis, float fVa g_pHumanDeviceManager->AxisEventRelative(eDevice, eAxis, fValue ); } +#ifdef STEAM extern "C" void __cdecl SteamAPIDebug( ESteamNetworkingSocketsDebugOutputType nType, const char *pszMsg ) { V_printf("STEAM: %s\n", pszMsg); } +#endif extern "C" void FunnyMain( int argc, char **argv ) { diff --git a/external/GameNetworkingSockets b/external/GameNetworkingSockets index 517fff0..725e273 160000 --- a/external/GameNetworkingSockets +++ b/external/GameNetworkingSockets @@ -1 +1 @@ -Subproject commit 517fff0cf6866ba163f4f016b0ef28f365c06c05 +Subproject commit 725e273c7442bac7a8bc903c0b210b1c15c34d92 diff --git a/external/SDL b/external/SDL index 1d08131..7c11a8c 160000 --- a/external/SDL +++ b/external/SDL @@ -1 +1 @@ -Subproject commit 1d081314a89eb6bfd22bbc0224b604533ae6156b +Subproject commit 7c11a8cb9f66a2cac63f9a24ab2f49f6d4bf12a0 diff --git a/external/Vulkan-Headers b/external/Vulkan-Headers index 29184b9..2e0a6e6 160000 --- a/external/Vulkan-Headers +++ b/external/Vulkan-Headers @@ -1 +1 @@ -Subproject commit 29184b98984f6169a5e83e97557a77cff1e5b0ca +Subproject commit 2e0a6e699e35c9609bde2ca4abb0d380c0378639 diff --git a/external/Vulkan-Utility-Libraries b/external/Vulkan-Utility-Libraries index c15a1ac..4f4c0b6 160000 --- a/external/Vulkan-Utility-Libraries +++ b/external/Vulkan-Utility-Libraries @@ -1 +1 @@ -Subproject commit c15a1ac31670cb2ce61c235f070fb40ec6e42612 +Subproject commit 4f4c0b6c61223b703f1c753a404578d7d63932ad diff --git a/external/VulkanMemoryAllocator b/external/VulkanMemoryAllocator index b3cbbb4..f0969e9 160000 --- a/external/VulkanMemoryAllocator +++ b/external/VulkanMemoryAllocator @@ -1 +1 @@ -Subproject commit b3cbbb43ea3a506dffe10759e205a41c27c35ae2 +Subproject commit f0969e908b01104f66bec2f203103de2012354c9 diff --git a/external/cglm b/external/cglm index 83d5b2c..a886d6e 160000 --- a/external/cglm +++ b/external/cglm @@ -1 +1 @@ -Subproject commit 83d5b2c97378e61a4666825fd3a5548955c83add +Subproject commit a886d6e170292a1d534a7a2c0471be5953b16455 diff --git a/external/funnystdlib b/external/funnystdlib index 8f8343e..93d3a07 160000 --- a/external/funnystdlib +++ b/external/funnystdlib @@ -1 +1 @@ -Subproject commit 8f8343e2506a7ec51b8cb644e050f789614a803e +Subproject commit 93d3a073dff033be828696cd5a0d362394fb9585 diff --git a/external/slang b/external/slang index f267cb7..5d775e2 160000 --- a/external/slang +++ b/external/slang @@ -1 +1 @@ -Subproject commit f267cb77a09b0f4cf083a9585bc1ddb3744c310a +Subproject commit 5d775e2829ceef5bd34ec89aa3eafa4968a74c8e diff --git a/external/stb b/external/stb index e6cd956..802cd45 160000 --- a/external/stb +++ b/external/stb @@ -1 +1 @@ -Subproject commit e6cd9561ea6dae43d41633797745789d142b691e +Subproject commit 802cd454f25469d3123e678af41364153c132c2a diff --git a/external/volk b/external/volk index e91ceff..d64d20b 160000 --- a/external/volk +++ b/external/volk @@ -1 +1 @@ -Subproject commit e91ceff7db05f92ac8b498c9631235a6a73566e2 +Subproject commit d64d20b4eaf2698296e085d9d9638c69af280e3e diff --git a/external/xtool b/external/xtool index f12a84e..22655f3 160000 --- a/external/xtool +++ b/external/xtool @@ -1 +1 @@ -Subproject commit f12a84e960fa9bced1249a8d233ab8eafca28f6f +Subproject commit 22655f3e70b87bef9be736e9625984e21bf8c697 diff --git a/game/server/game.cpp b/game/server/game.cpp index b633049..0b6ff26 100644 --- a/game/server/game.cpp +++ b/game/server/game.cpp @@ -37,7 +37,9 @@ uint32_t NET_ServerCallback( NetCallback_t *pCallback ) if (pCallback->m_eType == NET_SERVER_READY_TO_USE) { V_printf("//--- LAUNCHED SERVER AT ---\n"); +#ifdef STEAM V_printf("// %llu\n", SteamGameServer()->GetSteamID().ConvertToUint64()); +#endif return 0; } if (pCallback->m_eType == NET_TRYING_TO_CONNECT) diff --git a/launcher/build.cpp b/launcher/build.cpp index 6950975..1d3b085 100644 --- a/launcher/build.cpp +++ b/launcher/build.cpp @@ -10,6 +10,7 @@ ADD_DEPENDENCY_BUILD_FILE(engine, "../engine/build.cpp"); 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(server, "../game/server/build.cpp"); ADD_DEPENDENCY_BUILD_FILE(client, "../game/client/build.cpp"); @@ -33,8 +34,9 @@ DECLARE_BUILD_STAGE(launcher) ldProject.objects.AppendTail({GET_PROJECT_OBJECT(engine, "engine")}); ldProject.objects.AppendTail({GET_PROJECT_OBJECT(MaterialSystem, "MaterialSystem")}); ldProject.objects.AppendTail({GET_PROJECT_OBJECT(RenderSystemVulkan, "RenderSystemVulkan")}); - ldProject.objects.AppendTail({GET_PROJECT_OBJECT(tier0, "tier0")}); - ldProject.objects.AppendTail({GET_PROJECT_OBJECT(filesystem_std, "fs")}); + 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(shadercompiler, "fs")}); ldProject.objects.AppendTail({GET_PROJECT_OBJECT(Server, "server")}); ldProject.objects.AppendTail({GET_PROJECT_OBJECT(Client, "client")}); @@ -48,7 +50,20 @@ DECLARE_BUILD_STAGE(launcher) manifest.SetPackageID("com.kotofyt.funnygame"); manifest.SetPackageExecutable(outputProject); V_printf("%s\n", manifest.m_szPackageName.GetString()); - CUtlString szIpa = AppleTool()->BuildPackage( manifest, manifest.BuildManifest() ); + + 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(szOutputDir, "../external/ios/SDL3.framework"); + + filesystem2->CopyDirectory(CUtlString("%s/core/",szOutputDir.GetString()), "../build/funnygame/assets/shaders"); + CUtlString szIpa = AppleTool()->BuildPackage( manifest, szOutputDir ); } ADD_OUTPUT_OBJECT("launcher", outputProject); return 0; diff --git a/launcher/launcher.cpp b/launcher/launcher.cpp index 23778cb..3b2b676 100644 --- a/launcher/launcher.cpp +++ b/launcher/launcher.cpp @@ -16,7 +16,7 @@ #include "TargetConditionals.h" #if TARGET_OS_IPHONE // iOS -#include "SDL3/SDL_main.h" +//#include "SDL3/SDL_main.h" #else // macOS #endif @@ -38,9 +38,11 @@ void *pTier0Lib = NULL; typedef void (*EngineMainFn)(int argc, char** argv); EngineMainFn pEngineMain; -//extern "C" void FunnyMain( int argc, char **argv ); +extern "C" void FunnyMain( int argc, char **argv ); int main( int argc, char **argv ) { + printf("HIIII!\n"); + return 0; #ifdef __linux__ readlink("/proc/self/exe",szLauncherPath, MAX_PATH); dirname(szLauncherPath); @@ -50,11 +52,11 @@ int main( int argc, char **argv ) { snprintf(szSteamPath, MAX_PATH, "%s/libsteam_api.so", szLauncherPath); #endif #ifdef __APPLE__ - uint32_t pathSize = sizeof(szLauncherPath); - int pathResult = _NSGetExecutablePath(szLauncherPath, &pathSize); - char *szLauncherPath2 = dirname(szLauncherPath); - snprintf(szEnginePath, MAX_PATH, "%s/libengine.dylib", szLauncherPath2); - snprintf(szTier0Path, MAX_PATH, "%s/libtier0.dylib", szLauncherPath2); + //uint32_t pathSize = sizeof(szLauncherPath); + //int pathResult = _NSGetExecutablePath(szLauncherPath, &pathSize); + //char *szLauncherPath2 = dirname(szLauncherPath); + //snprintf(szEnginePath, MAX_PATH, "%s/libengine.dylib", szLauncherPath2); + //snprintf(szTier0Path, MAX_PATH, "%s/libtier0.dylib", szLauncherPath2); #endif #ifndef __WIN32__ if ( !dlopen(szSteamPath, RTLD_NOW )) @@ -100,5 +102,6 @@ int main( int argc, char **argv ) { SetCurrentDirectoryA(szLauncherPath); pEngineMain(argc, argv); #endif - //FunnyMain(argc, argv); + FunnyMain(argc, argv); + return 0; }; diff --git a/materialsystem/build.cpp b/materialsystem/build.cpp index c85e45c..697560c 100644 --- a/materialsystem/build.cpp +++ b/materialsystem/build.cpp @@ -13,7 +13,6 @@ ADD_DEPENDENCY_BUILD_FILE(gen, "vulkan/generate.build.cpp"); CUtlVector MaterialSystem_CompiledFiles = { "materialsystem.cpp", - "compiledshader.cpp", }; CUtlVector RenderContextVulkan_CompiledFiles = { "compiledshader.cpp", @@ -43,6 +42,10 @@ DECLARE_BUILD_STAGE(MaterialSystem) LinkProject_t ldProject = {}; compileProject.m_szName = "MaterialSystem"; + if ( GET_PROJECT_VALUE(config, "static") != "true" ) + { + MaterialSystem_CompiledFiles.AppendTail("compiledshader.cpp"); + } compileProject.files = MaterialSystem_CompiledFiles; compileProject.includeDirectories = { "../public", @@ -92,6 +95,7 @@ DECLARE_BUILD_STAGE(RenderSystemVulkan) EXTERNAL"Vulkan-Headers/include", EXTERNAL"Vulkan-Utility-Libraries/include", EXTERNAL"VulkanMemoryAllocator/include", + EXTERNAL"SPIRV-Headers/include", EXTERNAL"volk", EXTERNAL, }; diff --git a/rapier/build.cpp b/rapier/build.cpp index 40b7a45..915bd50 100644 --- a/rapier/build.cpp +++ b/rapier/build.cpp @@ -12,7 +12,6 @@ ADD_DEPENDENCY_BUILD_FILE(tier1, FUNNYSTDLIB"tier1/build.cpp"); DECLARE_BUILD_STAGE(rapier) { Target_t target = Target_t::DefaultTarget(); - target.abi = TARGET_ABI_GNU; CUtlString rapier_lib; CUtlString szTarget = target.GetTriplet(); if (CommandLine()->CheckParam("-norust")) diff --git a/shadercompiler/psMain b/shadercompiler/psMain index b4520cf890e054e492d6aeb40b640e885ca0302a..b581303e8ad452b8faa8ec1a5158980c89c8b5f3 100644 GIT binary patch literal 348 zcmZusy9&ZU5L^>;DSRag+DXJlP%K3dw6qcq`~W%dz<@a=rqIsMwh^3(DJMoAb9Oefvj!6{ zyy>m+q8E+!qW8V;zt+~o=<}PMvkcZWzME&?^M0Q9obxP{22Kx}>LFvyIrF=|kOekXy~hjDP8h_CaTF)Ss#%P_*6a3ST36)#R{H<;P&n&N9`d2y z#6Hyf8~O9zwJ=$YgYe+|^sAb~hCIZ2)=xJRztxHSv>9jj$hnC3`YXN>r!L63h-LRq zZFWVRYtUSjzn&)D-L#v8!H?N1%B6~G7Gv#sHncloazX2gKD=4Ovu@7J#~U`hG~A<) z9+2L=U$fQjrZc*Y&2VoqjuYOM81LQBulu$gg?a&ERr5f)levOBR^;mW%Vuleue`$< zNBaG@<0J}dai`h45&FQLeta!XtSC?sBdz>lD@~r%;$|zY`H646T5~Uq>W};&OlI1h zRk4$y`xMCP;O58G<(nzLBF@9-kE=U)2=0kD`|oVVEa{iT?_xsW7q+Bt>|tS9yE-18 zmW?vLULC$-9rpWmoQeIO37i97RfRutd-i}` z%6Lc(XMnGWo0od{I3=)`vrlP_a4*DD(UE8kv+mE=@jg@hPpDADg|-3dnh7k#|PGR|LJjmXCed^SJC8 zY4Vws+2ANPvrXu2;UYPJ7(L*|5rNoAogHqlp3oXDV3Ri|O&&gM-Wi)dqniG@H1o69 zyzo|X!hB+GYR#FLlQTNOM%Z&vnmqd6!YRRry_8w|@q4nVq;z#Xt=z9s2pfj6R-`Pl!iup+F>f+uUa4?n`b zL?JD4E(SJ+;DE4rZ;zn(qQuJhlA^@q%)Io8)`q+XMHm>E7#J9G N6EpJ|HcouZ3;^uZ5extT delta 54 wcmeyv@r7f8#6$&^i7^JMtPBhcOhBBQn3)Hp7z7yDz4K=l#@x6YmP-9Bb$3#B$KS#F+b1K4z;3)Z=|;@-XLyfDUJ_ gnm~`9{kM(TOf}~GOto#@(aAkmCs!8jTN9iJKaO8I@c;k- literal 2772 zcma);U2hvj6ox0UV@Cv1N-6Y)$fdnNLW)3*P)jMbVT<-ZEZ? zpdv8*1O5R&lN%)7XLiO}P%gUG@j34~b3SI~^(K|&8+B7#GRC}Te%Ck8WwUJdE*F}} zD`w5~x<}F8&S5moGaC<+=y-N=lGp|8kK^f-+;vky8S*Zv63?G^{H=B;~QAV>B zP2Q4jXK9*EHuvK^v7>nWAkO0`*XV<-TOTNFYNqbiVXH!Ge4Grjb~es5WKADx&_9i4 zMNBre?@RmI-Nf!^gXE&xt8Sf^DnE_$hc=!}$FU#L^`=fyU-82%4?%hpbLU5{8=u~F z^FaPyZfE^`W|P6TyA8SAyu^5-C{5Di#Ii}wjc#odDEX;tvu8=)ZHx1yE_)hAr!E?9g*mwY z^SaDdb9cVD!-LGG@mT)4yCRbnZM{v9(;YtJin9T&bY@5=F`1Y9pB;ku6{CLxDS3` z0_L}|A>rB4^l*~rMxhoy&Kw{4tb;#1=j*Bq--`U@HFe=~UZ~Y{>xw*ll`E8ur!^K|rnAb!o+Rn;hZH65-v9){X* zk|)&OQSIOhdkVO`r@&?Mni6J!!_34J@cB$t$7k+~-o$yYfx{kn|8c)O#Nl$dUoh{* z@_IN|t~d9%B7H?&sC(VLEsGv+$>z)(lDAcl{eY{ItNLD*Zb*2*%+iohry=~Bw+jxQ z$K@6$3w+bB0aJU6pdR|&md3|?)caVP+W5ozd$Nt0-@m4KQx-Ea--f3K9^=4J}?{sHzoAqezECK{6KnHf*;)VxGBxvhSKbf zHN;2KOA`FxAEnuMsP~)4oaJ4`Ia~g|krOb#yMQ?>e(wP@e@DX1tY<#>M}IKuBS~1# zJn$`G=7Dd_#CkA%D`WUp#_%m*=AV1~k?w-J^yXpB-$LBmJ$+N|Tb;*MlUrV@)h9u-2%Elk^db076A7(w0 zU7q!kFuwAv-w0nc>$ma~Ye+)R?_}c-J-?TYkGi4fW7+T|oX->4_{u$F;fs16%TMg4 zTVI?{UpD^Gb08bv6A3+s(oZFDv8(g1OaI_~yep7T#ULxq8DYaqX2*t;tjB&KO?~*V UCjF~~`y)2@_#d+*9xR!E0a1-JrT_o{