import std; import Crafter.Build; namespace fs = std::filesystem; using namespace Crafter; extern "C" Configuration CrafterBuildProject(std::span args) { std::vector graphicsArgs(args.begin(), args.end()); graphicsArgs.push_back("--vulkan"); Configuration* graphics = LocalProject({ .projectFile = "../../project.cpp", .args = graphicsArgs, }); Configuration cfg; cfg.path = "./"; cfg.name = "VulkanTriangle"; cfg.outputName = "VulkanTriangle"; ApplyStandardArgs(cfg, args); cfg.dependencies = { graphics }; std::array ifaces = {}; std::array impls = { "main" }; cfg.GetInterfacesAndImplementations(ifaces, impls); cfg.shaders.emplace_back(fs::path("raygen.glsl"), std::string("main"), ShaderType::RayGen); cfg.shaders.emplace_back(fs::path("closesthit.glsl"), std::string("main"), ShaderType::ClosestHit); cfg.shaders.emplace_back(fs::path("miss.glsl"), std::string("main"), ShaderType::Miss); return cfg; }