Libraries and Dependencies: Difference between revisions

From The DarkMod Wiki
Jump to navigationJump to search
No edit summary
(Rewrote everything due to third-party cleaning of #4822)
Line 1: Line 1:
'''TODO: Rewrite all the stuff with recent info, write about conan and ThirdParty/readme.md.'''
'''TODO: Write about conan and ThirdParty/readme.md.'''


This article is a record of what libraries and dependencies are used within the different aspects of TDM.
This article is a record of what libraries and dependencies are used in TheDarkMod game and tdm_update.
 
Dependencies which depend on other libraries are indicated with a '->'. They may not be verbose.
 
==Engine==
{| class="wikitable"
|-
! Name !! Current Version (Used) !! Platforms !! License !! Initial TDM Version
|-
|[http://www.boost.org/ Boost]                                ||1.45  ||Win/Nix||BSL      ||TBD
|-
| ->boost-filesystem                                          ||      ||      ||          ||
|-
|[http://openil.sourceforge.net/ DeVIL]                        ||      ||Win/Nix||LGPL      ||1.03
|-
| ->[http://www.ijg.org/ libjpeg]                              ||8b    ||Win/Nix||Note      ||<1.00
|-
| ->[http://www.libpng.org/pub/png/libpng.html libpng]        ||1.4.5 ||Win/Nix||libpng    ||1.03
|-
|[http://kcat.strangesoft.net/openal.html OpenAL Soft]        ||1.14  ||Win/Nix||LGPL      ||TBD
|-
|[http://msdn.microsoft.com/en-us/directx/aa937788 DirectX SDK]||N/A  ||Win    ||Note      ||<1.00
|-
|[http://www.ijg.org/ libjpeg]                                ||8b    ||Win/Nix||Note      ||<1.00
|-
|[http://curl.haxx.se/ libcurl]                                ||7.21.0||Win/Nix||cURL(MIT*)||<1.00
|-
|[http://www.winimage.com/zLibDll/minizip.html minizip]        ||1.01e ||Win/Nix||zlib      ||<1.00
|-
|[http://zlib.net/ zlib]                                      ||1.2.5 ||Win/Nix||zlib      ||<1.00
|}
 
==Game code==
Note : This excludes common libs, which are already linked by the engine.


{| class="wikitable"
{| class="wikitable"
|-
|-
! Name !! Current Version (Used) !! Platforms !! License !! Initial TDM Version
! Name !! Notes !! License !! Initial TDM Version
|-
|-
|[http://www.boost.org/ Boost] ||1.45||Win/Nix ||BSL ||<1.00
|[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
|-
|-
| ->boost-thread              ||   ||       ||    ||
|[http://www.ijg.org/ libjpeg]                                  ||used by DevIL; JPEG_INTERNALS    ||[https://jpegclub.org/reference/libjpeg-license/ BSD-like]                        ||<1.00
|-
|-
| ->boost-system              ||   ||       ||    ||
|[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
|-
|-
| ->boost-program_options      ||   ||       ||    ||
|[https://xiph.org/vorbis/ libvorbis]                          ||                                 ||[https://github.com/xiph/vorbis/blob/master/COPYING BSD-like]                    ||<1.00
|-
|-
| ->boost-regex                ||   ||       ||    ||
|[https://xiph.org/ogg/ libogg]                                ||used only by libvorbis            ||[https://github.com/xiph/ogg/blob/master/COPYING BSD-like]                        ||<1.00
|-
|-
| ->boost-date_time            ||   ||       ||    ||
|[http://kcat.strangesoft.net/openal.html OpenAL Soft]          ||                                 ||[https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html LGPL 2.0]    ||2.06
|-
|-
|[http://pugixml.org/ plugixml]||1.0 ||Win/Nix ||MIT ||1.03
|[https://www.alsa-project.org/wiki/Main_Page ALSA]             ||used only by OpenAL (Linux-only)  ||[https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html LGPL 2.1]    ||2.08
|}
 
==Licenses==
{|
|-
|-
|[https://ffmpeg.org/ FFmpeg]                                  ||heavily reduced build            ||[https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html LGPL 2.1]    ||2.06
|-
|-
|BSL 1.0 ||[http://www.boost.org/LICENSE_1_0.txt Boost Software License Version 1.0]
|[http://curl.haxx.se/ libcurl]                                ||                                  ||[https://curl.haxx.se/docs/copyright.html MIT-like]                              ||<1.00
|-
|-
|LGPL 2.1||[http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License 2.1]
|[https://tls.mbed.org/ mbed TLS]                              ||used only by libcurl              ||[https://www.apache.org/licenses/LICENSE-2.0 Apache 2.0]                         ||2.03?
|-
|-
|BSD    ||[http://www.opensource.org/licenses/bsd-license.php Simplified BSD]
|[http://www.winimage.com/zLibDll/minizip.html minizip]         ||game defines some extensions      ||[https://zlib.net/zlib_license.html zlib]                                        ||<1.00
|-
|-
|cURL    ||[http://curl.haxx.se/docs/copyright.html MIT/X derived*]
|[http://zlib.net/ zlib]                                        ||used by minizip                  ||[https://zlib.net/zlib_license.html zlib]                                         ||<1.00
|-
|-
|zlib    ||[http://www.gzip.org/zlib/zlib_license.html zlib License]
|[https://pugixml.org/ pugixml]                                 ||                                 ||[https://pugixml.org/license.html MIT]                                           ||1.03
|-
|libpng  ||[http://www.libpng.org/pub/png/src/libpng-LICENSE.txt libpng License]
|-
|libjpeg ||See libjpeg documentation (MIT-like, however a few minor details)
|}
 
==Prospective==
These are libraries which are potential replacement/upgrades from ones currently used.
Entries may remain even if they are excluded from being used, as a reference for the future.
 
{| class="wikitable"
|-
|-
!Name !!To replace !!Reasoning !!License !!Status
|[https://github.com/c42f/tinyformat tinyformat]                ||                                  ||[http://www.boost.org/LICENSE_1_0.txt BSL 1.0]                                    ||2.08
|-
|-
|libjpeg-turbo || libjpeg || More stable ABI, more widely accepted license || BSD || Idea
|[https://github.com/onqtam/doctest doctest]                    ||                                 ||[https://github.com/onqtam/doctest/blob/master/LICENSE.txt MIT]                  ||2.08
|}
|}




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

Revision as of 03:08, 12 April 2019

TODO: Write about conan and ThirdParty/readme.md.

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

Name Notes License Initial TDM Version
DevIL last C version (1.7.8) LGPL 2.1 1.03
libjpeg used by DevIL; JPEG_INTERNALS BSD-like <1.00
libpng used only by DevIL 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