godot/thirdparty/README.md
Zher Huei Lee e3e2f06324 Replacement of internal RegEx with PCRE2
The pattern and replacement matching behaviour has been changed purely
due to the nature of switching to a standards-compliant library.

One mistake in the previous behaviour was that named groups didn't have
a number. This has been corrected.

As names are actually just an alias of numbered groups,
RegExMatch::get_name_dict() is now get_names() and is a dict
referring to the group number it represents.

Duplicate names are enabled and the with the first matching instance
used.

Due the lack of a suitable equivalent in PCRE2, RegExMatch::expand() was
removed.
2017-08-19 19:29:14 +08:00

8.5 KiB

Third party libraries

b2d_convexdecomp

certs

  • Upstream: ?

TODO.

enet

Files extracted from upstream source:

  • all .c files in the main directory (except unix.c win32.c)
  • the include/enet/ folder as enet/ (except unix.h win32.h)
  • LICENSE file

Important: enet.h, host.c, protocol.c have been slightly modified to be usable by godot socket implementation and allow IPv6. Two files (godot.cpp and enet/godot.h) have been added to provide enet socket implementation using Godot classes. It is still possible to build against a system wide ENet but doing so will limit it's functionality to IPv4 only. Check the diff of enet.h, protocol.c, and host.c with the 1.3.13 tarball before the next update.

etc2comp

Files extracted from upstream source:

  • all .cpp and .h files in EtcLib/
  • README.md, LICENSE, AUTHORS

fonts

  • Upstream: ?

TODO.

freetype

Files extracted from upstream source:

  • the src/ folder, stripped of the Jamfile files
  • the include/ folder
  • docs/{FTL.TXT,LICENSE.TXT}

glad

The files we package are automatically generated. See the header of glad.c for instructions on how to generate them for the GLES version Godot targets.

jpeg-compressor

Files extracted from upstream source:

  • jpgd.{c,h}

libogg

Files extracted from upstream source:

  • src/*.c
  • include/ogg/*.h in ogg/
  • COPYING

libpng

Files extracted from upstream source:

  • all .c and .h files of the main directory, except from example.c and pngtest.c
  • the arm/ folder
  • scripts/pnglibconf.h.prebuilt as pnglibconf.h

libsimplewebm

Files extracted from upstream source:

TODO.

libvorbis

Files extracted from upstream source:

  • src/* except from: lookups.pl, Makefile.*
  • include/vorbis/*.h as vorbis/
  • COPYING

libvpx

Files extracted from upstream source:

TODO.

libwebp

Files extracted from upstream source:

  • src/* except from: .am, .rc and .in files
  • AUTHORS, COPYING, PATENTS

Important: The files utils/bit_reader_utils.{c,h} have Godot-made changes to ensure they build for Javascript/HTML5. Those changes are marked with // -- GODOT -- comments.

minizip

Files extracted from the upstream source:

  • contrib/minizip/{crypt.h,ioapi.{c,h},zip.{c,h},unzip.{c,h}}

Important: Some files have Godot-made changes for use in core/io. TODO: Properly sync with version 1.2.4 and document changes.

misc

Collection of single-file libraries used in Godot components.

core

modules

scene

openssl

Files extracted from the upstream source:

  • Our openssl/: contains the headers installed in /usr/include/openssl; gather them in the source tarball with make links and cp -f include/openssl/*.h ../openssl/openssl/
  • Our crypto/: copy of upstream crypto/, with some cleanup (see below).
  • Our ssl/: copy of upstream ssl/, with some cleanup (see below).
  • Cleanup:
    find \( -name "Makefile" -o -name "*.S" -o -name "*.bat" -o -name "*.bc" \
      -o -name "*.com" -o -name "*.cnf" -o -name "*.ec" -o -name "*.fre" \
      -o -name "*.gcc" -o -name "*.in" -o -name "*.lnx" -o -name "*.m4" \
      -o -name "*.pl" -o -name "*.pod" -o -name "*.s" -o -name "*.sh" \
      -o -name "*.sol" -o -name "*test*" \) -delete
    cd openssl; for file in *.h; do find ../{crypto,ssl} -name "$file" -delete; done
    
    For the rest check the git status and decide.
  • e_os.h
  • Apply the Godot-specific patches in the patches/ folder.

opus

Files extracted from upstream source:

  • all .c and .h files in src/ (both opus and opusfile), except opus_demo.c
  • all .h files in include/ (both opus and opusfile) as opus/
  • celt/ and silk/ subfolders
  • COPYING

pcre2

Files extracted from upstream source:

  • Files listed in NON-AUTOTOOLS-BUILD steps 1-4
  • All .h files in src/
  • src/pcre2_jit_.c and src/sljit/
  • AUTHORS and COPYING

pvrtccompressor

Files extracted from upstream source:

  • all .cpp and .h files apart from main.cpp
  • LICENSE.TXT

rtaudio

Files extracted from upstream source:

  • RtAudio.{cpp,h}

squish

Files extracted from upstream source:

  • all .cpp, .h and .inl files

theora

Files extracted from upstream source:

  • all .c, .h in lib/
  • all .h files in include/theora/ as theora/
  • COPYING and LICENSE

tinyexr

Files extracted from upstream source:

  • tinyexr.{cc,h}

Important: Some changes were made to get TinyEXR to build on the ancient MinGW-w64 toolchain of Travis CI. 37f5e1dcd9

zlib

Files extracted from upstream source:

  • all .c and .h files

zstd

Files extracted from upstream source:

  • all .c and .h under lib/
  • README.md, LICENSE, PATENTS