1
artifact-tracker/Source/ArtifactTrackerDLL
2026-07-06 01:25:36 +02:00
..
2026-07-06 01:25:36 +02:00
2026-07-06 01:25:36 +02:00
2026-07-06 01:25:36 +02:00
2026-07-06 01:25:36 +02:00
2026-07-06 01:25:36 +02:00
2026-07-06 01:25:36 +02:00

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.