name: build-dll description: Build the S2S CvGameCoreDLL via FastBuild. Use when the user wants to compile the DLL, run a compile check after editing Sources/, do a clean rebuild, or deploy the built DLL into Assets/. Also use to diagnose LNK2001 link errors.
Build the CvGameCoreDLL
The build is driven by Tools/_Build.ps1 (a FastBuild wrapper). Always run it
from the Sources/ directory.
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "../Tools/_Build.ps1" <Config> <verb> [<verb> ...]
- Configs:
Assert,Debug,Release,FinalRelease,Testing. Output →Build/<Config>/CvGameCoreDLL.dll(+.pdb). - Verbs (composable, in order):
clean,build(incremental),rebuild(clean+build),deploy(xcopy DLL/PDB intoAssets/). - Modifier —
nostop(opt-in): passes FastBuild's-nostoponerrorso the build keeps going after a failed object instead of stopping at the first, reporting across far more translation units in one pass. Position in the argument list does not matter (Assert build nostop); theMakeDLL*.batshortcuts accept it too.
Choosing what to run
- Quick compile check after an edit (the default for verifying a change builds):
Assert build. Incremental link is ~30s. - Clean rebuild:
Assert rebuild(or another config). Several minutes (~25 unity batches × ~30s). - Build + install into the game: add
deploy, e.g.Release rebuild deploy. - The
Tools/MakeDLL*.batshortcuts always do a fullrebuild deploy— don't use them for an iterative compile-check loop.
After the build
- C++ code must stay C++2003-only (no
auto, lambdas, range-for,nullptr,override). SeeSources/AGENTS.md. - If the change touched XML/Python interfaces, validate:
Tools/XmlValidator.exe -aandTools/XMLTools/verify-python-callbacks.py.
Troubleshooting LNK2001
If FastBuild fails at link with LNK2001: unresolved external symbol (but the
IDE compiles fine), a new Sources/<Dir>/ is probably missing from the build's
source-of-truth. Sources/fbuild.bff — not the .vcxproj — decides what FastBuild
compiles. Fix:
- Add
$SOURCE_DIR$/<Dir>to the.UnityInputPatharray inSources/fbuild.bff(~line 201). - Add the files to
Sources/S2S.vcxprojand…vcxproj.filters(IDE display only).
Sources/Repos/ and Sources/Utils/ are reference examples of a correctly wired subdirectory.
Next.js App Router Expert
Development
A skill that turns Claude into a Next.js App Router expert.
README Generator
Development
Creates professional and comprehensive README.md files for your projects.
API Documentation Writer
Development
Generates comprehensive API documentation in OpenAPI/Swagger format.