made it work with new fpc
This commit is contained in:
77
shadercompiler/build.cpp
Normal file
77
shadercompiler/build.cpp
Normal file
@@ -0,0 +1,77 @@
|
||||
#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<CUtlString> args = {"-i", "funnyassets", "-o", "build/funnygame/assets"};
|
||||
|
||||
runner->Run(shadercompiler_exe, args);
|
||||
runner->Wait();
|
||||
return 0;
|
||||
};
|
||||
*/
|
||||
Reference in New Issue
Block a user