Libraries and Dependencies

From The DarkMod Wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

All the third-party libraries are downloaded, configured and built using conan package manager. This is the recommended way to handle libraries. Read file ThirdParty/readme.md for more details about this way.

Even if conan is not your good friend, be sure to follow these rules regarding location in the source code repo:

  1. Everything related to third-party libraries must be inside ThirdParty subdirectory.
  2. All the binaries (e.g. .lib and .a files) must be inside ThirdParty/artefacts subdirectory, sorted by platform+ABI according to conventions.

Note that some libraries are embedded directly into the source code (MD4 and MD5 hashes, PropTree GUI helper). However, this way is discouraged: think twice and ask guys of forums before using it!

List of libraries

This table is a record of what libraries and dependencies are currently used in TheDarkMod game and tdm_installer.

Name Notes License Initial TDM Version
libjpeg used by DevIL; JPEG_INTERNALS BSD-like <1.00
libpng zlib 1.03
libvorbis BSD-like <1.00
libogg used only by libvorbis BSD-like <1.00
OpenAL Soft LGPL 2.0 2.06
ALSA used only by OpenAL (Linux-only) LGPL 2.1 2.08
FFmpeg heavily reduced build LGPL 2.1 2.06
libcurl MIT-like <1.00
mbed TLS used only by libcurl Apache 2.0 2.03?
minizip game defines some extensions zlib <1.00
zlib used by minizip zlib <1.00
pugixml MIT 1.03
tinyformat BSL 1.0 2.08
doctest MIT 2.08
glfw zlib 2.09
BLAKE2 used only in tdm_installer CC0 1.0 2.09
fltk used only in tdm_installer LGPL 2.0 2.09
Tracy embedded timeline profiler BSD 3cl 2.10
libbacktrace used by Tracy BSD 3cl 2.10