#include "c.h" #include "helper.h" #include "ld.h" #include "target.h" DECLARE_BUILD_STAGE(libshadercompiler) { CProject_t stProject; LinkProject_t stLinkProject; CUtlString szOutput; stProject.m_szName = "ShaderCompiler"; stProject.bFPIC = true; stProject.includeDirectories = { "../public", "../external/slang/include", "../external/Vulkan-Headers/include", }; stProject.files = { "slang/vulkan_spirv.cpp", "../materialsystem/compiledshader.cpp", }; stLinkProject = ccompiler->Compile(&stProject); stLinkProject.linkType = ELINK_STATIC_LIBRARY; szOutput = linker->Link(&stLinkProject); ADD_OUTPUT_OBJECT("lib", szOutput); return 0; } DECLARE_BUILD_STAGE(shadercompiler) { CProject_t stProject; LinkProject_t stLinkProject; CUtlString szOutput; stProject.m_szName = "fsc"; stProject.m_target = Target_t::HostTarget(); stProject.includeDirectories = {"public"}; stProject.files = { "main.cpp", }; stLinkProject = ccompiler->Compile(&stProject); stLinkProject.linkType = ELINK_EXECUTABLE; stLinkProject.objects.AppendTail((Object_t){tier0_lib}); stLinkProject.objects.AppendTail((Object_t){tier1_lib}); stLinkProject.objects.AppendTail((Object_t){tier2_lib}); stLinkProject.objects.AppendTail((Object_t){shadercompiler_lib}); stLinkProject.libraries = {"slang-compiler","slang-glslang-2025.24.2"}; stLinkProject.libraryDirectories = {"external/linux"}; szOutput = linker->Link(&stLinkProject); /* filesystem2->MakeDirectory(CUtlString("%s/bin/tools", szOutputDir.GetString())); filesystem2->CopyFile(CUtlString("%s/bin/tools", szOutputDir.GetString()), szOutput); filesystem2->CopyFile(CUtlString("%s/bin/tools", szOutputDir.GetString()), "external/linux/libslang-compiler.so.0.2025.24.2"); filesystem2->CopyFile(CUtlString("%s/bin/tools", szOutputDir.GetString()), "external/linux/libslang-glslang-2025.24.2.so"); shadercompiler_exe = CUtlString("%s/bin/tools/fsc", szOutputDir.GetString()); */ return 1; } /* DECLARE_BUILD_STAGE(compileshaders) { if (CommandLine()->CheckParam("-nofsc")) return 0; CUtlVector args = {"-i", "funnyassets", "-o", "build/funnygame/assets"}; runner->Run(shadercompiler_exe, args); runner->Wait(); return 0; }; */