Libraries and Dependencies: Difference between revisions
From The DarkMod Wiki
Jump to navigationJump to search
Serpentinee (talk | contribs) Somewhere to help collate dep/lib info. |
libpng is now used directly, DevIL was removed several versions ago. |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
This | 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. | |||
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 !! | ! Name !! Notes !! License !! Initial TDM Version | ||
|- | |- | ||
|[http:// | |[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] || ||[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/ogg/ libogg] ||used only by libvorbis ||[https://github.com/xiph/ogg/blob/master/COPYING BSD-like] ||<1.00 | ||
|- | |- | ||
| | |[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 | ||
|- | |- | ||
| - | |[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 | ||
|- | |- | ||
| | |[https://ffmpeg.org/ FFmpeg] ||heavily reduced build ||[https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html LGPL 2.1] ||2.06 | ||
|- | |- | ||
| | |[http://curl.haxx.se/ libcurl] || ||[https://curl.haxx.se/docs/copyright.html MIT-like] ||<1.00 | ||
|- | |- | ||
|[ | |[https://tls.mbed.org/ mbed TLS] ||used only by libcurl ||[https://www.apache.org/licenses/LICENSE-2.0 Apache 2.0] ||2.03? | ||
|- | |- | ||
|[http://www.winimage.com/zLibDll/minizip.html minizip] ||game defines some extensions ||[https://zlib.net/zlib_license.html zlib] ||<1.00 | |||
|- | |- | ||
| | |[http://zlib.net/ zlib] ||used by minizip ||[https://zlib.net/zlib_license.html zlib] ||<1.00 | ||
|- | |- | ||
| | |[https://pugixml.org/ pugixml] || ||[https://pugixml.org/license.html MIT] ||1.03 | ||
|- | |- | ||
| | |[https://github.com/c42f/tinyformat tinyformat] || ||[http://www.boost.org/LICENSE_1_0.txt BSL 1.0] ||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:
- 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 | 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 |