Libraries and Dependencies: Difference between revisions

From The DarkMod Wiki
Jump to navigationJump to search
Rewrote everything due to third-party cleaning of #4822
libpng is now used directly, DevIL was removed several versions ago.
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''TODO: Write about conan and ThirdParty/readme.md.'''
All the third-party libraries are downloaded, configured and built using [https://conan.io/ conan package manager].
This is the recommended way to handle libraries.
Read file '''ThirdParty/readme.md''' for more details about this way.


This article is a record of what libraries and dependencies are used in TheDarkMod game and tdm_update.
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 <tt>ThirdParty</tt> subdirectory.
# All the binaries (e.g. .lib and .a files) '''must''' be inside <tt>ThirdParty/artefacts</tt> 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.


{| 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 36: 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