Dependency inventory

Libraries and versions

Versions below are read from TaystJK source commit f999cbc0912. A build that uses system libraries can end up with different versions; its configure log has the real ones.

Versioned source dependencies

Library Version in tree How TaystJK uses it Evidence
SDL 2 2.32.4 Windowing, input, audio, and platform integration; bundled by default on Windows and macOS, system-provided by default on Linux. SDL_version.h
OpenAL Soft 1.23.1 Bundled software implementation of OpenAL on Windows, including software EAX support in the 32-bit package. OpenAL Soft import
libpng 1.6.53 PNG image loading for renderer builds. png.h
zlib 1.3.1 Deflate compression and PK3 support. zlib.h
minizip from zlib 1.3.1 ZIP/PK3 reading; always uses TaystJK’s modified bundled copy. lib/minizip/CMakeLists.txt
IJG libjpeg 9c Default bundled JPEG implementation. jversion.h
libjpeg-turbo 3.1.4.1 Optional configure-time replacement when UseTurboJPEG=ON; fetched by CMake. CMakeLists.txt
cJSON 1.7.16 JSON parsing in the client game module. cJSON.h
Mongoose 7.13 Embedded HTTP server and HTTP client used by downloads. mongoose.h
gsl-lite 0.41.0 Header-only bounds and safety helpers. gsl-lite.h
SQLite 3.8.5 Embedded database used by the game module. sqlite3.h
libcurl headers 7.15.5 Legacy game-module HTTP interface headers. curlver.h

Bundled binaries without recorded upstream versions

TaystJK also carries prebuilt Discord RPC libraries for some platforms. Nothing in the repository records which upstream release they are, so identify them by the commit that added them and the file’s hash.

Library Selection Source evidence
Discord RPC Prebuilt per-platform archives, controlled by BuildDiscordRichPresence. Discord RPC selection

Bundled versus system libraries

Windows defaults to bundled OpenAL, zlib, libpng, libjpeg, and SDL 2. macOS defaults to bundled zlib, libpng, libjpeg, and SDL 2. Other Unix-like systems normally use libraries found by CMake, except for the always-bundled modified minizip, cJSON, Mongoose, gsl-lite, and embedded SQLite source.

On 32-bit Windows, the bundled OpenAL Soft library works with the shipped EaxMan.dll to provide EAX environmental audio in software; Creative or other EAX-capable hardware is not required. The 64-bit engine has support for loading EaxMan64.dll, but that library is not available in the release, so TaystJK’s complete EAX path is currently limited to the 32-bit Windows build.

The relevant switches are UseInternalOpenAL, UseInternalZlib, UseInternalPNG, UseInternalJPEG, UseTurboJPEG, and UseInternalSDL2. CMake records its actual choices in the configure output and CMakeCache.txt.

Release builds set UseTurboJPEG=ON on every platform (build.yml). On x86 and x86-64, including the Intel half of a universal macOS build, libjpeg-turbo needs the NASM assembler for its SIMD code. Without it CMake only prints a warning and builds the slower plain-C version (CMakeLists.txt), so install NASM if you want your build to match a release.

When reporting a dependency bug, include:

  1. The TaystJK commit and build configuration.
  2. The value of each UseInternal… option.
  3. The runtime library version where it can differ from the header version.
  4. The operating system and architecture.

Last changed History Edit this page on GitHub