#include "helper.h" #include "c.h" #include "ld.h" #include "tier1/utlstring.h" #include "tier1/commandline.h" CUtlVector engine_CompiledFiles = { "engine/console.cpp", "engine/filesystem.cpp", "engine/server.cpp", "engine/engine.cpp", "engine/physics.cpp", "engine/gamemode.cpp", /* entities */ "engine/baseentity.cpp", "engine/level.cpp", "engine/brush.cpp", /* server entities */ "engine/sv_worldspawn.cpp", "engine/sv_light.cpp", "engine/sv_playerstart.cpp", /* client entities */ "engine/cl_worldspawn.cpp", "engine/cl_light.cpp", /* rendering */ "engine/vk_videosdl.cpp", "engine/vk_video.cpp", "engine/vk_mesh.cpp", "engine/vk_postprocessing.cpp", /* io */ "engine/input.cpp", "engine/net.cpp" }; CUtlVector engine_Libraries = { "c", "SDL3", "vulkan", }; int engine_build() { CCProject compileProject = {}; CLDProject ldProject = {}; compileProject.m_szName = "engine"; compileProject.files = engine_CompiledFiles; compileProject.includeDirectories = all_IncludeDirectories; compileProject.bFPIC = true; ldProject = compileProject.Compile(); ldProject.linkType = ELINK_DYNAMIC_LIBRARY; ldProject.libraries = engine_Libraries; ldProject.objects.AppendTail((CObject){tier1_lib}); ldProject.objects.AppendTail((CObject){rapier_lib}); CUtlString outputProject = ldProject.Link(); const char *szGameName = ICommandLine::ParamValue("-game"); if (szGameName == NULL) szGameName = "funnygame"; IFileSystem2::MakeDirectory(CUtlString("build/%s/game/bin",szGameName)); IFileSystem2::CopyFile(CUtlString("build/%s/game/bin",szGameName), outputProject); return 0; }; DECLARE_BUILD_STAGE(engine, engine_build);