// SPDX-License-Identifier: MIT // SPDX-FileCopyrightText: Copyright (C) 2026 Catcrafts® import std; import Crafter.Build; // This checkout's own build helper. A consumer elsewhere names the repository: // #pragma crafter dependency "https://forgejo.catcrafts.net/Catcrafts/Crafter.Debug.git" project "tooling/project.cpp" #pragma crafter dependency "../.." project "tooling/project.cpp" import Crafter.Debug.Build; namespace fs = std::filesystem; using namespace Crafter; extern "C" Configuration CrafterBuildProject(std::span args) { Configuration cfg; cfg.path = "./"; cfg.name = "Basic"; cfg.outputName = "basic"; cfg.type = ConfigurationType::Executable; const ArgQuery opts = ApplyStandardArgs(cfg, args); // What every dependency gets: this project's args minus the flags only it // reads. A dependency that two paths share must get one list on both. std::vector depArgs; for (const std::string_view arg : args) { if (arg != "--debug-api") depArgs.emplace_back(arg); } Debug::Use(cfg, { .enabled = opts.Has("--debug-api"), .flag = "--debug-api", .define = "BASIC_DEBUG_API", .args = depArgs }); std::array interfaces = {}; std::array implementations = { "implementations/main" }; cfg.GetInterfacesAndImplementations(interfaces, implementations); return cfg; }