Move core thirdparty files to thirdparty/{minizip,misc}

This commit is contained in:
Rémi Verschelde 2017-04-28 18:29:15 +02:00
parent 0a613ff970
commit 2398eb6ed4
43 changed files with 146 additions and 39 deletions

View file

@ -5,6 +5,7 @@ Import('env')
env.core_sources = [] env.core_sources = []
# Generate global defaults
gd_call = "" gd_call = ""
gd_inc = "" gd_inc = ""
@ -21,6 +22,8 @@ f = open("global_defaults.cpp", "wb")
f.write(gd_cpp) f.write(gd_cpp)
f.close() f.close()
# Generate AES256 script encryption key
import os import os
txt = "0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0" txt = "0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0"
if ("SCRIPT_AES256_ENCRYPTION_KEY" in os.environ): if ("SCRIPT_AES256_ENCRYPTION_KEY" in os.environ):
@ -49,20 +52,56 @@ f.write("#include \"global_config.h\"\nuint8_t script_encryption_key[32]={" + tx
f.close() f.close()
# Add required thirdparty code. Header paths are hardcoded, we don't need to append
# to the include path (saves a few chars on the compiler invocation for touchy MSVC...)
thirdparty_dir = "#thirdparty/misc/"
thirdparty_sources = [
# C sources
"base64.c",
"fastlz.c",
"sha256.c",
# C++ sources
"aes256.cpp",
"hq2x.cpp",
"md5.cpp",
"pcg.cpp",
"triangulator.cpp",
]
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
env.add_source_files(env.core_sources, thirdparty_sources)
# Minizip library, can be unbundled in theory
# However, our version has some custom modifications, so it won't compile with the system one
thirdparty_minizip_dir = "#thirdparty/minizip/"
thirdparty_minizip_sources = [
"ioapi.c",
"unzip.c",
"zip.c",
]
thirdparty_minizip_sources = [thirdparty_minizip_dir + file for file in thirdparty_minizip_sources]
env.add_source_files(env.core_sources, thirdparty_minizip_sources)
# Godot's own source
env.add_source_files(env.core_sources, "*.cpp") env.add_source_files(env.core_sources, "*.cpp")
Export('env') # Make binders
import make_binders import make_binders
env.Command(['method_bind.inc', 'method_bind_ext.inc'], 'make_binders.py', make_binders.run) env.Command(['method_bind.inc', 'method_bind_ext.inc'], 'make_binders.py', make_binders.run)
# Chain load SCsubs
SConscript('os/SCsub') SConscript('os/SCsub')
SConscript('math/SCsub') SConscript('math/SCsub')
SConscript('io/SCsub') SConscript('io/SCsub')
SConscript('bind/SCsub') SConscript('bind/SCsub')
SConscript('helper/SCsub') SConscript('helper/SCsub')
lib = env.Library("core", env.core_sources)
# Build it all as a library
lib = env.Library("core", env.core_sources)
env.Prepend(LIBS=[lib]) env.Prepend(LIBS=[lib])
Export('env')

View file

@ -28,14 +28,16 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/ /*************************************************************************/
#include "core_bind.h" #include "core_bind.h"
#include "core/global_config.h" #include "core/global_config.h"
#include "geometry.h" #include "geometry.h"
#include "io/base64.h"
#include "io/file_access_encrypted.h" #include "io/file_access_encrypted.h"
#include "io/marshalls.h" #include "io/marshalls.h"
#include "os/keyboard.h" #include "os/keyboard.h"
#include "os/os.h" #include "os/os.h"
#include "thirdparty/misc/base64.h"
/** /**
* Time constants borrowed from loc_time.h * Time constants borrowed from loc_time.h
*/ */

View file

@ -32,9 +32,10 @@
#include "core/io/image_loader.h" #include "core/io/image_loader.h"
#include "core/os/copymem.h" #include "core/os/copymem.h"
#include "hash_map.h" #include "hash_map.h"
#include "hq2x.h"
#include "print_string.h" #include "print_string.h"
#include "thirdparty/misc/hq2x.h"
#include <stdio.h> #include <stdio.h>
const char *Image::format_names[Image::FORMAT_MAX] = { const char *Image::format_names[Image::FORMAT_MAX] = {

View file

@ -3,7 +3,5 @@
Import('env') Import('env')
env.add_source_files(env.core_sources, "*.cpp") env.add_source_files(env.core_sources, "*.cpp")
env.add_source_files(env.core_sources, "*.c")
# env.core_sources.append("io/fastlz.c")
Export('env') Export('env')

View file

@ -28,12 +28,14 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/ /*************************************************************************/
#include "compression.h" #include "compression.h"
#include "os/copymem.h"
#include "zlib.h"
#include "fastlz.h" #include "os/copymem.h"
#include "zip_io.h" #include "zip_io.h"
#include "thirdparty/misc/fastlz.h"
#include <zlib.h>
int Compression::compress(uint8_t *p_dst, const uint8_t *p_src, int p_src_size, Mode p_mode) { int Compression::compress(uint8_t *p_dst, const uint8_t *p_src, int p_src_size, Mode p_mode) {
switch (p_mode) { switch (p_mode) {

View file

@ -28,15 +28,18 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/ /*************************************************************************/
#include "file_access_encrypted.h" #include "file_access_encrypted.h"
#include "aes256.h"
#include "md5.h"
#include "os/copymem.h"
#include "print_string.h"
#define COMP_MAGIC 0x43454447
#include "core/variant.h" #include "core/variant.h"
#include "os/copymem.h"
#include "print_string.h"
#include "thirdparty/misc/aes256.h"
#include "thirdparty/misc/md5.h"
#include <stdio.h> #include <stdio.h>
#define COMP_MAGIC 0x43454447
Error FileAccessEncrypted::open_and_parse(FileAccess *p_base, const Vector<uint8_t> &p_key, Mode p_mode) { Error FileAccessEncrypted::open_and_parse(FileAccess *p_base, const Vector<uint8_t> &p_key, Mode p_mode) {
//print_line("open and parse!"); //print_line("open and parse!");

View file

@ -34,7 +34,9 @@
#include "core/io/file_access_pack.h" #include "core/io/file_access_pack.h"
#include "map.h" #include "map.h"
#include "unzip.h"
#include "thirdparty/minizip/unzip.h"
#include <stdlib.h> #include <stdlib.h>
class ZipArchive : public PackSource { class ZipArchive : public PackSource {

View file

@ -1,5 +0,0 @@
SHA256
======
SHA-256 implementation to compliment a portable byte-oriented AES-256
implementation in C at http://www.literatecode.com/aes256

View file

@ -30,11 +30,12 @@
#ifndef ZIP_IO_H #ifndef ZIP_IO_H
#define ZIP_IO_H #define ZIP_IO_H
#include "io/unzip.h"
#include "io/zip.h"
#include "os/copymem.h" #include "os/copymem.h"
#include "os/file_access.h" #include "os/file_access.h"
#include "thirdparty/minizip/unzip.h"
#include "thirdparty/minizip/zip.h"
static void *zipio_open(void *data, const char *p_fname, int mode) { static void *zipio_open(void *data, const char *p_fname, int mode) {
FileAccess *&f = *(FileAccess **)data; FileAccess *&f = *(FileAccess **)data;

View file

@ -31,9 +31,10 @@
#define MATH_FUNCS_H #define MATH_FUNCS_H
#include "math_defs.h" #include "math_defs.h"
#include "pcg.h"
#include "typedefs.h" #include "typedefs.h"
#include "thirdparty/misc/pcg.h"
#include <float.h> #include <float.h>
#include <math.h> #include <math.h>

View file

@ -28,13 +28,15 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/ /*************************************************************************/
#include "file_access.h" #include "file_access.h"
#include "core/io/file_access_pack.h" #include "core/io/file_access_pack.h"
#include "core/io/marshalls.h" #include "core/io/marshalls.h"
#include "global_config.h" #include "global_config.h"
#include "io/md5.h"
#include "io/sha256.h"
#include "os/os.h" #include "os/os.h"
#include "thirdparty/misc/md5.h"
#include "thirdparty/misc/sha256.h"
FileAccess::CreateFunc FileAccess::create_func[ACCESS_MAX] = { 0, 0 }; FileAccess::CreateFunc FileAccess::create_func[ACCESS_MAX] = { 0, 0 };
FileAccess::FileCloseFailNotify FileAccess::close_fail_notify = NULL; FileAccess::FileCloseFailNotify FileAccess::close_fail_notify = NULL;

View file

@ -30,14 +30,15 @@
#include "ustring.h" #include "ustring.h"
#include "color.h" #include "color.h"
#include "io/md5.h"
#include "io/sha256.h"
#include "math_funcs.h" #include "math_funcs.h"
#include "os/memory.h" #include "os/memory.h"
#include "print_string.h" #include "print_string.h"
#include "ucaps.h" #include "ucaps.h"
#include "variant.h" #include "variant.h"
#include "thirdparty/misc/md5.h"
#include "thirdparty/misc/sha256.h"
#include <wchar.h> #include <wchar.h>
#ifndef NO_USE_STDLIB #ifndef NO_USE_STDLIB

View file

@ -28,13 +28,13 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/ /*************************************************************************/
#include "editor_export.h" #include "editor_export.h"
#include "editor/editor_file_system.h" #include "editor/editor_file_system.h"
#include "editor/plugins/script_editor_plugin.h" #include "editor/plugins/script_editor_plugin.h"
#include "editor_node.h" #include "editor_node.h"
#include "editor_settings.h" #include "editor_settings.h"
#include "global_config.h" #include "global_config.h"
#include "io/config_file.h" #include "io/config_file.h"
#include "io/md5.h"
#include "io/resource_loader.h" #include "io/resource_loader.h"
#include "io/resource_saver.h" #include "io/resource_saver.h"
#include "io/zip_io.h" #include "io/zip_io.h"
@ -43,6 +43,8 @@
#include "script_language.h" #include "script_language.h"
#include "version.h" #include "version.h"
#include "thirdparty/misc/md5.h"
static int _get_pad(int p_alignment, int p_n) { static int _get_pad(int p_alignment, int p_n) {
int rest = p_n % p_alignment; int rest = p_n % p_alignment;

View file

@ -28,6 +28,7 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/ /*************************************************************************/
#include "editor_texture_import_plugin.h" #include "editor_texture_import_plugin.h"
#if 0 #if 0
#include "editor/editor_node.h" #include "editor/editor_node.h"
#include "editor/editor_settings.h" #include "editor/editor_settings.h"
@ -35,13 +36,14 @@
#include "global_config.h" #include "global_config.h"
#include "io/image_loader.h" #include "io/image_loader.h"
#include "io/marshalls.h" #include "io/marshalls.h"
#include "io/md5.h"
#include "io/resource_saver.h" #include "io/resource_saver.h"
#include "scene/gui/button_group.h" #include "scene/gui/button_group.h"
#include "scene/gui/check_button.h" #include "scene/gui/check_button.h"
#include "scene/gui/margin_container.h" #include "scene/gui/margin_container.h"
#include "scene/io/resource_format_image.h" #include "scene/io/resource_format_image.h"
#include "thirdparty/misc/md5.h"
static const char *flag_names[]={ static const char *flag_names[]={
("Streaming Format"), ("Streaming Format"),
("Fix Border Alpha"), ("Fix Border Alpha"),

View file

@ -72,17 +72,18 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "editor/editor_import_export.h" #include "editor/editor_import_export.h"
#include "editor/editor_node.h" #include "editor/editor_node.h"
#include "global_config.h" #include "global_config.h"
#include "io/base64.h"
#include "io/marshalls.h" #include "io/marshalls.h"
#include "io/sha256.h"
#include "io/unzip.h"
#include "io/zip.h"
#include "io/zip_io.h" #include "io/zip_io.h"
#include "object.h" #include "object.h"
#include "os/file_access.h" #include "os/file_access.h"
#include "platform/uwp/logo.h" #include "platform/uwp/logo.h"
#include "version.h" #include "version.h"
#include "thirdparty/minizip/unzip.h"
#include "thirdparty/minizip/zip.h"
#include "thirdparty/misc/base64.h"
#include "thirdparty/misc/sha256.h"
#include <zlib.h> #include <zlib.h>
// Capabilities // Capabilities

View file

@ -28,10 +28,13 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/ /*************************************************************************/
#include "collision_polygon_2d.h" #include "collision_polygon_2d.h"
#include "collision_object_2d.h" #include "collision_object_2d.h"
#include "scene/resources/concave_polygon_shape_2d.h" #include "scene/resources/concave_polygon_shape_2d.h"
#include "scene/resources/convex_polygon_shape_2d.h" #include "scene/resources/convex_polygon_shape_2d.h"
#include "triangulator.h"
#include "thirdparty/misc/triangulator.h"
void CollisionPolygon2D::_add_to_collision_object(Object *p_obj) { void CollisionPolygon2D::_add_to_collision_object(Object *p_obj) {
if (unparenting || !can_update_body) if (unparenting || !can_update_body)

View file

@ -28,9 +28,11 @@
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/ /*************************************************************************/
#include "navigation_polygon.h" #include "navigation_polygon.h"
#include "core_string_names.h" #include "core_string_names.h"
#include "navigation2d.h" #include "navigation2d.h"
#include "triangulator.h"
#include "thirdparty/misc/triangulator.h"
void NavigationPolygon::set_vertices(const PoolVector<Vector2> &p_vertices) { void NavigationPolygon::set_vertices(const PoolVector<Vector2> &p_vertices) {

52
thirdparty/README.md vendored
View file

@ -142,6 +142,58 @@ changes to ensure they build for Javascript/HTML5. Those
changes are marked with `// -- GODOT --` comments. changes are marked with `// -- GODOT --` comments.
## minizip
- Upstream: http://www.zlib.net
- Version: 1.2.4 (zlib contrib)
- License: zlib
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.
- `aes256.{cpp,h}`
* Upstream: http://www.literatecode.com/aes256
* Version: latest, as of April 2017
* License: ISC
- `base64.{c,h}`
* Upstream: http://episec.com/people/edelkind/c.html
* Version: latest, as of April 2017
* License: Public Domain
- `fastlz.{c,h}`
* Upstream: https://code.google.com/archive/p/fastlz
* Version: svn (r12)
* License: MIT
- `hq2x.{cpp,h}`
* Upstream: https://github.com/brunexgeek/hqx
* Version: TBD, file structure differs
* License: Apache 2.0
- `md5.{cpp,h}`
* Upstream: http://www.efgh.com/software/md5.htm
* Version: TBD, might not be latest from above URL
* License: RSA Message-Digest License
- `pcg.{cpp,h}`
* Upstream: http://www.pcg-random.org
* Version: minimal C implemention, http://www.pcg-random.org/download.html
* License: Apache 2.0
- `sha256.{c,h}`
* Upstream: https://github.com/ilvn/SHA256
* Version: git (35ff823, 2015)
* License: ISC
- `triangulator.{cpp,h}`
* Upstream: https://github.com/ivanfratric/polypartition (`src/polypartition.cpp`)
* Version: TBD, class was renamed
* License: MIT
## openssl ## openssl
- Upstream: https://www.openssl.org - Upstream: https://www.openssl.org

View file

@ -1,5 +1,3 @@
#include "md5.h"
/* /*
********************************************************************** **********************************************************************
** md5.c ** ** md5.c **
@ -34,7 +32,7 @@
*/ */
/* -- include the following line if the md5.h header file is separate -- */ /* -- include the following line if the md5.h header file is separate -- */
/* #include "md5.h" */ #include "md5.h"
/* forward declaration */ /* forward declaration */
static void Transform (uint32_t *buf, uint32_t *in); static void Transform (uint32_t *buf, uint32_t *in);