#include "helper.h" #include "c.h" #include "ld.h" #include "runner.h" #include "tier1/utlstring.h" #include "tier1/commandline.h" void build_shader( const char *szName ) { const char *szGameName = ICommandLine::ParamValue("-game"); if (szGameName == NULL) szGameName = "funnygame"; IFileSystem2::MakeDirectory(CUtlString("build/%s/assets/gfx",szGameName)); CUtlVector slang_args = { CUtlString("funnyassets/gfx_shaders/%s.slang", szName), "-o", CUtlString("build/%s/assets/gfx/%s.spv", szGameName, szName), }; IRunner::Run("slangc", slang_args); }; int assets_build() { IFileSystem2::CopyDirectory("build", "tools"); const char *szGameName = ICommandLine::ParamValue("-game"); if (szGameName == NULL) szGameName = "funnygame"; IFileSystem2::CopyDirectory(CUtlString("build/%s/assets",szGameName), "funnyassets/maps"); IFileSystem2::CopyDirectory(CUtlString("build/%s/assets",szGameName), "funnyassets/gfx"); IFileSystem2::CopyDirectory(CUtlString("build/%s/assets",szGameName), "funnyassets/textures"); IFileSystem2::CopyDirectory(CUtlString("build/%s/assets",szGameName), "funnyassets/materials"); build_shader("mesh_frag"); build_shader("mesh_vert"); build_shader("agx_comp"); CUtlVector python_args = { "build/tools/makepak64.py", CUtlString("build/%s/assets", szGameName), CUtlString("build/%s/game/%s/%s.pak", szGameName, szGameName, "rtt"), }; IRunner::Run("python", python_args); return 0; }; DECLARE_BUILD_STAGE(assets, assets_build);