71 lines
3.3 KiB
C++
71 lines
3.3 KiB
C++
#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(tier1, "../external/funnystdlib/tier1/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"};
|
|
compileProject.m_target = Target_t::DefaultTarget();
|
|
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, "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")});
|
|
}
|
|
|
|
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 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;
|
|
};
|