1
2026-07-06 01:25:36 +02:00

57 lines
2.2 KiB
Markdown

# 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.