# 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 ```cmd 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: ```cmd 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.