#include "target.h" #include "helper.h" #include "c.h" #include "ld.h" #include "tier1/utlstring.h" #include "appletool.h" ADD_DEPENDENCY_BUILD_FILE(cfg, "../buildcfg.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"); ADD_DEPENDENCY_BUILD_FILE(tier0, "../external/funnystdlib/tier0/build.cpp"); ADD_DEPENDENCY_BUILD_FILE(server, "../game/server/build.cpp"); ADD_DEPENDENCY_BUILD_FILE(client, "../game/client/build.cpp"); DECLARE_BUILD_STAGE(launcher) { CProject_t compileProject = {}; LinkProject_t ldProject = {}; compileProject.m_szName = "launcher"; compileProject.files = {"launcher.cpp"}; compileProject.includeDirectories = {"../external/SDL/include"}; ldProject = ccompiler->Compile(&compileProject); ldProject.linkType = ELINK_EXECUTABLE; if (compileProject.m_target.kernel == TARGET_KERNEL_IOS) { ldProject.frameworkDirectories = {"../external/ios"}; ldProject.frameworks = {"SDL3"}; } if ( GET_PROJECT_VALUE(config, "static") == "true" ) { 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(shadercompiler, "fs")}); ldProject.objects.AppendTail({GET_PROJECT_OBJECT(Server, "server")}); ldProject.objects.AppendTail({GET_PROJECT_OBJECT(Client, "client")}); } CUtlString outputProject = linker->Link(&ldProject); if (compileProject.m_target.kernel == TARGET_KERNEL_IOS) { AppleManifest_t manifest = {}; manifest.SetPackageName("funnygame"); manifest.SetPackageID("com.kotofyt.funnygame"); manifest.SetPackageExecutable(outputProject); V_printf("%s\n", manifest.m_szPackageName.GetString()); CUtlString szIpa = AppleTool()->BuildPackage( manifest, manifest.BuildManifest() ); } ADD_OUTPUT_OBJECT("launcher", outputProject); return 0; };