57 lines
2.2 KiB
Markdown
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.
|