Libraries and Dependencies
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:
- Everything related to third-party libraries must be inside ThirdParty subdirectory.
- 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||used only by DevIL||zlib||1.03|
|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|
|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|
|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|