diff --git a/project.cpp b/project.cpp index a057c5a..76e69b1 100644 --- a/project.cpp +++ b/project.cpp @@ -15,7 +15,7 @@ extern "C" Configuration CrafterBuildProject(std::span a for (std::string_view a : args) { if (a == "--local") { useLocal = true; break; } } - auto resolveDep = [&](std::string_view name, std::string_view gitUrl) -> Configuration* { + auto resolveDep = [&](std::string_view name, std::string_view gitUrl, std::string_view commit = "") -> Configuration* { if (useLocal) { return LocalProject({ .projectFile = fs::path("../") / name / "project.cpp", @@ -23,7 +23,7 @@ extern "C" Configuration CrafterBuildProject(std::span a }); } return GitProject({ - .source = { .url = std::string(gitUrl) }, + .source = { .url = std::string(gitUrl), .commit = std::string(commit) }, .args = depArgs, }); }; @@ -44,7 +44,12 @@ extern "C" Configuration CrafterBuildProject(std::span a // The bootstrap (build.sh) defines no such dep — its impl unit takes the // stub branch and cfg.assets errors at runtime until a self-host rebuild. Configuration* math = resolveDep("Crafter.Math", "https://forgejo.catcrafts.net/Catcrafts/Crafter.Math.git"); - Configuration* asset = resolveDep("Crafter.Asset", "https://forgejo.catcrafts.net/Catcrafts/Crafter.Asset.git"); + // Crafter.Asset is pinned here because the mingw cross-compile needs the + // libdeflate _rotr* / stdlib.h fix from Catcrafts/Crafter.Asset PR #1. + // Once that PR lands on master and we've confirmed master tracks the fix, + // the pin can be dropped back to tip-tracking (third arg removed). + Configuration* asset = resolveDep("Crafter.Asset", "https://forgejo.catcrafts.net/Catcrafts/Crafter.Asset.git", + "021ced683d589fae7dbc7e7fa6108a9ee11bf64c"); crafterBuildLib->dependencies = { math, asset }; crafterBuildLib->defines.push_back({"CRAFTER_BUILD_HAS_ASSET", ""}); {