Libraries and Dependencies: Difference between revisions

From The DarkMod Wiki
Jump to navigationJump to search
Wrote about conan, ThirdParty dir, and readme.
libpng is now used directly, DevIL was removed several versions ago.
 
(2 intermediate revisions by the same user not shown)
Line 12: Line 12:
=== List of libraries ===
=== List of libraries ===


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


{| class="wikitable"
{| class="wikitable"
|-
|-
! Name !! Notes !! License !! Initial TDM Version
! Name !! Notes !! License !! Initial TDM Version
|-
|[http://openil.sourceforge.net/ DevIL]                        ||last C version (1.7.8)            ||[https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html LGPL 2.1]    ||1.03
|-
|-
|[http://www.ijg.org/ libjpeg]                                  ||used by DevIL; JPEG_INTERNALS    ||[https://jpegclub.org/reference/libjpeg-license/ BSD-like]                        ||<1.00
|[http://www.ijg.org/ libjpeg]                                  ||used by DevIL; JPEG_INTERNALS    ||[https://jpegclub.org/reference/libjpeg-license/ BSD-like]                        ||<1.00
|-
|-
|[http://www.libpng.org/pub/png/libpng.html libpng]            ||used only by DevIL                ||[http://libpng.org/pub/png/src/libpng-LICENSE.txt zlib]                          ||1.03
|[http://www.libpng.org/pub/png/libpng.html libpng]            ||                                 ||[http://libpng.org/pub/png/src/libpng-LICENSE.txt zlib]                          ||1.03
|-
|-
|[https://xiph.org/vorbis/ libvorbis]                          ||                                  ||[https://github.com/xiph/vorbis/blob/master/COPYING BSD-like]                    ||<1.00
|[https://xiph.org/vorbis/ libvorbis]                          ||                                  ||[https://github.com/xiph/vorbis/blob/master/COPYING BSD-like]                    ||<1.00
Line 47: Line 45:
|-
|-
|[https://github.com/onqtam/doctest doctest]                    ||                                  ||[https://github.com/onqtam/doctest/blob/master/LICENSE.txt MIT]                  ||2.08
|[https://github.com/onqtam/doctest doctest]                    ||                                  ||[https://github.com/onqtam/doctest/blob/master/LICENSE.txt MIT]                  ||2.08
|-
|[https://www.glfw.org/ glfw]                                  ||                                  ||[https://www.glfw.org/license zlib]                                              ||2.09
|-
|[https://www.blake2.net/ BLAKE2]                              ||used only in tdm_installer        ||[https://github.com/BLAKE2/BLAKE2/blob/master/COPYING CC0 1.0]                    ||2.09
|-
|[https://www.fltk.org/ fltk]                                  ||used only in tdm_installer        ||[https://www.fltk.org/COPYING.php LGPL 2.0]                                      ||2.09
|-
|[https://github.com/wolfpld/tracy Tracy]                      ||embedded timeline profiler        ||[https://github.com/wolfpld/tracy/blob/master/LICENSE BSD 3cl]                    ||2.10
|-
|[https://github.com/ianlancetaylor/libbacktrace libbacktrace]  ||used by Tracy                    ||[https://github.com/wolfpld/tracy/blob/master/libbacktrace/LICENSE BSD 3cl]      ||2.10
|}
|}




[[Category:Coding]]
[[Category:Coding]]

Latest revision as of 14:05, 16 December 2023

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