sparkengine-build-ci-and-dependencies

Diagnose and resolve SparkEngine CMake builds, CI failures, and third-party dependency issues.

31|3|Updated Jul 26, 2025
One-click install
npx skills add https://github.com/Krilliac/SparkEngine --skill sparkengine-build-ci-and-dependencies-krilliac
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: sparkengine-build-ci-and-dependencies
Source: https://github.com/Krilliac/SparkEngine/tree/main/.claude/skills/sparkengine-build-ci-and-dependencies
Command: npx skills add https://github.com/Krilliac/SparkEngine --skill sparkengine-build-ci-and-dependencies-krilliac

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? SparkEngine's build system spans three coexisting configure styles, pinned MSVC toolsets, a machine-checked third-party manifest, and a multi-job GitHub Actions matrix, so configure errors, linker mismatches, and CI failures are hard to diagnose without deep repo knowledge. This Skill provides the verified runbook for building, packaging, and keeping dependencies and CI green. ## Core Features & Use Cases - Build configuration guidance: Choose the correct CMake preset, generator, and build directory layout (presets vs raw -B build vs wrapper scripts) and avoid stale-cache pitfalls with cmake --fresh. - CI failure triage: Map failing jobs (build-windows-vs2022, check-thirdparty-manifest, build-linux-*) to their root causes using the quick triage table and local reproduction commands. - Dependency management: Add or bump third-party dependencies while keeping ThirdParty/dependencies.lock in sync, and handle the SDL2 export repair and header-copy race. - Use Case: A CI run fails with LNK2038 _ITERATOR_DEBUG_LEVEL mismatch. The Skill identifies mixed Debug/Release archives under build/lib, explains the per-config archive output rule, and prescribes nuking build/lib and rebuilding both configs. ## Quick Start Ask the assistant to diagnose why your SparkEngine CMake configure or CI job is failing, mentioning the exact error message or job name.

Frequently Asked Questions about sparkengine-build-ci-and-dependencies

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build SparkEngine on Windows with CMake presets?

Run `cmake --preset windows-release` followed by `cmake --build --preset windows-release`. Preset builds write to `build/<presetName>`, so use `cmake --build --preset <name>` rather than `cmake --build build`, which targets a different tree.

How do I fix the check-thirdparty-manifest CI failure?

The failure means dependency wiring changed without updating `ThirdParty/dependencies.lock`. Update the affected 9-field manifest entry plus the `# Last sync:` header line, then verify locally with `./tools/check-thirdparty-manifest-sync.sh`.

Why does my build fail with SDL_main.h not found?

This is a header-copy race with a stale or partial build tree. Reconfigure so the configure-time copy repopulates `build/ThirdParty/SDL2/include/SDL2/`; if using a cached tree, run `cmake --fresh` to regenerate from scratch.

What causes LNK2038 _ITERATOR_DEBUG_LEVEL mismatch errors?

Debug and Release archives were mixed because static libs must live under `build/lib/<Config>`. Verify the per-config archive output directories, delete `build/lib`, and rebuild both configurations.

Which CMake preset should I use for Linux builds?

Use `linux-gcc-release` or `linux-clang-release` for optimized builds, with matching debug variants available. Presets are host-OS-conditioned, so Windows presets are invisible on Linux and vice versa.

When should I not use this build and CI runbook?

Do not use it for running or interpreting tests (use sparkengine-validation-and-qa), launching built binaries (use sparkengine-run-package-and-release), or runtime gameplay bugs (use sparkengine-debugging-playbook).