2.2 KiB
Artifact Tracker DLL — building
The plugin builds against a pinned CommonLibSSE-NG pulled in with CMake
FetchContent. There is no vcpkg dependency: everything is fetched from source
at configure time, so the same CMakePresets.json drives both the command line
and Visual Studio.
Command line
build.cmd :: release-msvc (default)
build.cmd debug-msvc
build.cmd locates Visual Studio via vswhere, imports the MSVC x64
environment (vcvars64.bat — the part VS sets up for you automatically), then
runs the preset:
cmake --preset build-release-msvc
cmake --build --preset release-msvc
The built ArtifactTracker.dll is copied to ../../SKSE/Plugins/.
Visual Studio
Open the Source/ArtifactTrackerDLL folder (File ▸ Open ▸ Folder). VS reads
CMakePresets.json, configures the MSVC environment itself, and builds with the
same presets. No extra setup.
Dependencies (pinned, fetched automatically)
| Dependency | Pin | Why |
|---|---|---|
| CommonLibSSE-NG | alandtse/CommonLibVR @ aacbd76 |
SKSE API (SE/AE/VR) |
| DirectXTK / DirectXMath | jul2025 / apr2025 | required by CommonLibVR |
| rapidcsv | v8.90 | required by CommonLibVR |
| spdlog | v1.17.0 | logging (also used directly) |
| simpleini | v4.25 | reads ArtifactTracker.ini |
Note: the DirectXTK shader patch
cmake/patch_directxtk.cmake is applied to DirectXTK via FetchContent
PATCH_COMMAND. DirectXTK compiles its HLSL shaders by running
cmake -E env … CompileShaders.cmd with a bare script name, relying on the
current directory being on the executable search path.
That only holds when NoDefaultCurrentDirectoryInExePath is unset — which is
the case inside Visual Studio's build environment, but not in a hardened
command-line shell that sets it (there, cmake -E env refuses to look in the
current directory and the step fails with "no such file or directory"). The
patch rewrites that one invocation to an absolute path so shaders compile
regardless of the environment. Removing it will break command-line builds while
still "working" in Visual Studio. The patch is idempotent and only touches the
shader command line.