From 2398eb6ed4832fd7b8eec778981cbd974b89634f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= Date: Fri, 28 Apr 2017 18:29:15 +0200 Subject: [PATCH] Move core thirdparty files to thirdparty/{minizip,misc} --- core/SCsub | 45 ++++++++++++++-- core/bind/core_bind.cpp | 4 +- core/image.cpp | 3 +- core/io/SCsub | 2 - core/io/compression.cpp | 8 +-- core/io/file_access_encrypted.cpp | 13 +++-- core/io/file_access_zip.h | 4 +- core/io/sha-README.md | 5 -- core/io/zip_io.h | 5 +- core/math/math_funcs.h | 3 +- core/os/file_access.cpp | 6 ++- core/ustring.cpp | 5 +- editor/editor_export.cpp | 4 +- .../editor_texture_import_plugin.cpp | 4 +- platform/uwp/export/export.cpp | 9 ++-- scene/2d/collision_polygon_2d.cpp | 5 +- scene/2d/navigation_polygon.cpp | 4 +- thirdparty/README.md | 52 +++++++++++++++++++ .../minizip}/LICENSE-InfoZip.txt | 0 .../minizip}/LICENSE-MiniZip.txt | 0 {core/io => thirdparty/minizip}/crypt.h | 0 {core/io => thirdparty/minizip}/ioapi.c | 0 {core/io => thirdparty/minizip}/ioapi.h | 0 {core/io => thirdparty/minizip}/unzip.c | 0 {core/io => thirdparty/minizip}/unzip.h | 0 {core/io => thirdparty/minizip}/zip.c | 0 {core/io => thirdparty/minizip}/zip.h | 0 {core/io => thirdparty/misc}/aes256.cpp | 0 {core/io => thirdparty/misc}/aes256.h | 0 {core/io => thirdparty/misc}/base64.c | 0 {core/io => thirdparty/misc}/base64.h | 0 {core/io => thirdparty/misc}/fastlz.c | 0 {core/io => thirdparty/misc}/fastlz.h | 0 {core => thirdparty/misc}/hq2x.cpp | 0 {core => thirdparty/misc}/hq2x.h | 0 {core/io => thirdparty/misc}/md5.cpp | 4 +- {core/io => thirdparty/misc}/md5.h | 0 {core/math => thirdparty/misc}/pcg.cpp | 0 {core/math => thirdparty/misc}/pcg.h | 0 {core/io => thirdparty/misc}/sha256.c | 0 {core/io => thirdparty/misc}/sha256.h | 0 .../math => thirdparty/misc}/triangulator.cpp | 0 {core/math => thirdparty/misc}/triangulator.h | 0 43 files changed, 146 insertions(+), 39 deletions(-) delete mode 100644 core/io/sha-README.md rename {core/io => thirdparty/minizip}/LICENSE-InfoZip.txt (100%) rename {core/io => thirdparty/minizip}/LICENSE-MiniZip.txt (100%) rename {core/io => thirdparty/minizip}/crypt.h (100%) rename {core/io => thirdparty/minizip}/ioapi.c (100%) rename {core/io => thirdparty/minizip}/ioapi.h (100%) rename {core/io => thirdparty/minizip}/unzip.c (100%) rename {core/io => thirdparty/minizip}/unzip.h (100%) rename {core/io => thirdparty/minizip}/zip.c (100%) rename {core/io => thirdparty/minizip}/zip.h (100%) rename {core/io => thirdparty/misc}/aes256.cpp (100%) rename {core/io => thirdparty/misc}/aes256.h (100%) rename {core/io => thirdparty/misc}/base64.c (100%) rename {core/io => thirdparty/misc}/base64.h (100%) rename {core/io => thirdparty/misc}/fastlz.c (100%) rename {core/io => thirdparty/misc}/fastlz.h (100%) rename {core => thirdparty/misc}/hq2x.cpp (100%) rename {core => thirdparty/misc}/hq2x.h (100%) rename {core/io => thirdparty/misc}/md5.cpp (99%) rename {core/io => thirdparty/misc}/md5.h (100%) rename {core/math => thirdparty/misc}/pcg.cpp (100%) rename {core/math => thirdparty/misc}/pcg.h (100%) rename {core/io => thirdparty/misc}/sha256.c (100%) rename {core/io => thirdparty/misc}/sha256.h (100%) rename {core/math => thirdparty/misc}/triangulator.cpp (100%) rename {core/math => thirdparty/misc}/triangulator.h (100%) diff --git a/core/SCsub b/core/SCsub index 77c8288846e..52403f3ad97 100644 --- a/core/SCsub +++ b/core/SCsub @@ -5,6 +5,7 @@ Import('env') env.core_sources = [] +# Generate global defaults gd_call = "" gd_inc = "" @@ -21,6 +22,8 @@ f = open("global_defaults.cpp", "wb") f.write(gd_cpp) f.close() + +# Generate AES256 script encryption key 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" 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() +# 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") -Export('env') - +# Make binders import make_binders env.Command(['method_bind.inc', 'method_bind_ext.inc'], 'make_binders.py', make_binders.run) + +# Chain load SCsubs SConscript('os/SCsub') SConscript('math/SCsub') SConscript('io/SCsub') SConscript('bind/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]) + +Export('env') diff --git a/core/bind/core_bind.cpp b/core/bind/core_bind.cpp index bd41e48a306..7a03ceb64ce 100644 --- a/core/bind/core_bind.cpp +++ b/core/bind/core_bind.cpp @@ -28,14 +28,16 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "core_bind.h" + #include "core/global_config.h" #include "geometry.h" -#include "io/base64.h" #include "io/file_access_encrypted.h" #include "io/marshalls.h" #include "os/keyboard.h" #include "os/os.h" +#include "thirdparty/misc/base64.h" + /** * Time constants borrowed from loc_time.h */ diff --git a/core/image.cpp b/core/image.cpp index 8a09dc1a8c9..b81d92fa33e 100644 --- a/core/image.cpp +++ b/core/image.cpp @@ -32,9 +32,10 @@ #include "core/io/image_loader.h" #include "core/os/copymem.h" #include "hash_map.h" -#include "hq2x.h" #include "print_string.h" +#include "thirdparty/misc/hq2x.h" + #include const char *Image::format_names[Image::FORMAT_MAX] = { diff --git a/core/io/SCsub b/core/io/SCsub index 6789aa8bc6f..4efc9027176 100644 --- a/core/io/SCsub +++ b/core/io/SCsub @@ -3,7 +3,5 @@ Import('env') 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') diff --git a/core/io/compression.cpp b/core/io/compression.cpp index c26bd7cdcd2..662411a62e3 100644 --- a/core/io/compression.cpp +++ b/core/io/compression.cpp @@ -28,12 +28,14 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "compression.h" -#include "os/copymem.h" -#include "zlib.h" -#include "fastlz.h" +#include "os/copymem.h" #include "zip_io.h" +#include "thirdparty/misc/fastlz.h" + +#include + int Compression::compress(uint8_t *p_dst, const uint8_t *p_src, int p_src_size, Mode p_mode) { switch (p_mode) { diff --git a/core/io/file_access_encrypted.cpp b/core/io/file_access_encrypted.cpp index 2625e5fe344..f2b33a01bb6 100644 --- a/core/io/file_access_encrypted.cpp +++ b/core/io/file_access_encrypted.cpp @@ -28,15 +28,18 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #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 "os/copymem.h" +#include "print_string.h" + +#include "thirdparty/misc/aes256.h" +#include "thirdparty/misc/md5.h" + #include +#define COMP_MAGIC 0x43454447 + Error FileAccessEncrypted::open_and_parse(FileAccess *p_base, const Vector &p_key, Mode p_mode) { //print_line("open and parse!"); diff --git a/core/io/file_access_zip.h b/core/io/file_access_zip.h index 8c3cd3ae672..c9cc2dac79e 100644 --- a/core/io/file_access_zip.h +++ b/core/io/file_access_zip.h @@ -34,7 +34,9 @@ #include "core/io/file_access_pack.h" #include "map.h" -#include "unzip.h" + +#include "thirdparty/minizip/unzip.h" + #include class ZipArchive : public PackSource { diff --git a/core/io/sha-README.md b/core/io/sha-README.md deleted file mode 100644 index 27a73cffe73..00000000000 --- a/core/io/sha-README.md +++ /dev/null @@ -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 diff --git a/core/io/zip_io.h b/core/io/zip_io.h index d5af0424999..88e680c0e0e 100644 --- a/core/io/zip_io.h +++ b/core/io/zip_io.h @@ -30,11 +30,12 @@ #ifndef ZIP_IO_H #define ZIP_IO_H -#include "io/unzip.h" -#include "io/zip.h" #include "os/copymem.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) { FileAccess *&f = *(FileAccess **)data; diff --git a/core/math/math_funcs.h b/core/math/math_funcs.h index 5bfbc1005fd..06ec77daae5 100644 --- a/core/math/math_funcs.h +++ b/core/math/math_funcs.h @@ -31,9 +31,10 @@ #define MATH_FUNCS_H #include "math_defs.h" -#include "pcg.h" #include "typedefs.h" +#include "thirdparty/misc/pcg.h" + #include #include diff --git a/core/os/file_access.cpp b/core/os/file_access.cpp index f344525d1ed..375121c0ccd 100644 --- a/core/os/file_access.cpp +++ b/core/os/file_access.cpp @@ -28,13 +28,15 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "file_access.h" + #include "core/io/file_access_pack.h" #include "core/io/marshalls.h" #include "global_config.h" -#include "io/md5.h" -#include "io/sha256.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::FileCloseFailNotify FileAccess::close_fail_notify = NULL; diff --git a/core/ustring.cpp b/core/ustring.cpp index b01f680dd60..dcb6545bd1a 100644 --- a/core/ustring.cpp +++ b/core/ustring.cpp @@ -30,14 +30,15 @@ #include "ustring.h" #include "color.h" -#include "io/md5.h" -#include "io/sha256.h" #include "math_funcs.h" #include "os/memory.h" #include "print_string.h" #include "ucaps.h" #include "variant.h" +#include "thirdparty/misc/md5.h" +#include "thirdparty/misc/sha256.h" + #include #ifndef NO_USE_STDLIB diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp index 7dc5db4c7dd..b719e4a487d 100644 --- a/editor/editor_export.cpp +++ b/editor/editor_export.cpp @@ -28,13 +28,13 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_export.h" + #include "editor/editor_file_system.h" #include "editor/plugins/script_editor_plugin.h" #include "editor_node.h" #include "editor_settings.h" #include "global_config.h" #include "io/config_file.h" -#include "io/md5.h" #include "io/resource_loader.h" #include "io/resource_saver.h" #include "io/zip_io.h" @@ -43,6 +43,8 @@ #include "script_language.h" #include "version.h" +#include "thirdparty/misc/md5.h" + static int _get_pad(int p_alignment, int p_n) { int rest = p_n % p_alignment; diff --git a/editor/io_plugins/editor_texture_import_plugin.cpp b/editor/io_plugins/editor_texture_import_plugin.cpp index ba380f03341..d9b4a950453 100644 --- a/editor/io_plugins/editor_texture_import_plugin.cpp +++ b/editor/io_plugins/editor_texture_import_plugin.cpp @@ -28,6 +28,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_texture_import_plugin.h" + #if 0 #include "editor/editor_node.h" #include "editor/editor_settings.h" @@ -35,13 +36,14 @@ #include "global_config.h" #include "io/image_loader.h" #include "io/marshalls.h" -#include "io/md5.h" #include "io/resource_saver.h" #include "scene/gui/button_group.h" #include "scene/gui/check_button.h" #include "scene/gui/margin_container.h" #include "scene/io/resource_format_image.h" +#include "thirdparty/misc/md5.h" + static const char *flag_names[]={ ("Streaming Format"), ("Fix Border Alpha"), diff --git a/platform/uwp/export/export.cpp b/platform/uwp/export/export.cpp index 4a164e5ba1a..976e6208ee6 100644 --- a/platform/uwp/export/export.cpp +++ b/platform/uwp/export/export.cpp @@ -72,17 +72,18 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #include "editor/editor_import_export.h" #include "editor/editor_node.h" #include "global_config.h" -#include "io/base64.h" #include "io/marshalls.h" -#include "io/sha256.h" -#include "io/unzip.h" -#include "io/zip.h" #include "io/zip_io.h" #include "object.h" #include "os/file_access.h" #include "platform/uwp/logo.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 // Capabilities diff --git a/scene/2d/collision_polygon_2d.cpp b/scene/2d/collision_polygon_2d.cpp index b54861a3147..39eef892746 100644 --- a/scene/2d/collision_polygon_2d.cpp +++ b/scene/2d/collision_polygon_2d.cpp @@ -28,10 +28,13 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "collision_polygon_2d.h" + #include "collision_object_2d.h" #include "scene/resources/concave_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) { if (unparenting || !can_update_body) diff --git a/scene/2d/navigation_polygon.cpp b/scene/2d/navigation_polygon.cpp index aec6d7108bd..807f72e81f1 100644 --- a/scene/2d/navigation_polygon.cpp +++ b/scene/2d/navigation_polygon.cpp @@ -28,9 +28,11 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "navigation_polygon.h" + #include "core_string_names.h" #include "navigation2d.h" -#include "triangulator.h" + +#include "thirdparty/misc/triangulator.h" void NavigationPolygon::set_vertices(const PoolVector &p_vertices) { diff --git a/thirdparty/README.md b/thirdparty/README.md index f6edff490f6..67732743dfd 100644 --- a/thirdparty/README.md +++ b/thirdparty/README.md @@ -142,6 +142,58 @@ changes to ensure they build for Javascript/HTML5. Those 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 - Upstream: https://www.openssl.org diff --git a/core/io/LICENSE-InfoZip.txt b/thirdparty/minizip/LICENSE-InfoZip.txt similarity index 100% rename from core/io/LICENSE-InfoZip.txt rename to thirdparty/minizip/LICENSE-InfoZip.txt diff --git a/core/io/LICENSE-MiniZip.txt b/thirdparty/minizip/LICENSE-MiniZip.txt similarity index 100% rename from core/io/LICENSE-MiniZip.txt rename to thirdparty/minizip/LICENSE-MiniZip.txt diff --git a/core/io/crypt.h b/thirdparty/minizip/crypt.h similarity index 100% rename from core/io/crypt.h rename to thirdparty/minizip/crypt.h diff --git a/core/io/ioapi.c b/thirdparty/minizip/ioapi.c similarity index 100% rename from core/io/ioapi.c rename to thirdparty/minizip/ioapi.c diff --git a/core/io/ioapi.h b/thirdparty/minizip/ioapi.h similarity index 100% rename from core/io/ioapi.h rename to thirdparty/minizip/ioapi.h diff --git a/core/io/unzip.c b/thirdparty/minizip/unzip.c similarity index 100% rename from core/io/unzip.c rename to thirdparty/minizip/unzip.c diff --git a/core/io/unzip.h b/thirdparty/minizip/unzip.h similarity index 100% rename from core/io/unzip.h rename to thirdparty/minizip/unzip.h diff --git a/core/io/zip.c b/thirdparty/minizip/zip.c similarity index 100% rename from core/io/zip.c rename to thirdparty/minizip/zip.c diff --git a/core/io/zip.h b/thirdparty/minizip/zip.h similarity index 100% rename from core/io/zip.h rename to thirdparty/minizip/zip.h diff --git a/core/io/aes256.cpp b/thirdparty/misc/aes256.cpp similarity index 100% rename from core/io/aes256.cpp rename to thirdparty/misc/aes256.cpp diff --git a/core/io/aes256.h b/thirdparty/misc/aes256.h similarity index 100% rename from core/io/aes256.h rename to thirdparty/misc/aes256.h diff --git a/core/io/base64.c b/thirdparty/misc/base64.c similarity index 100% rename from core/io/base64.c rename to thirdparty/misc/base64.c diff --git a/core/io/base64.h b/thirdparty/misc/base64.h similarity index 100% rename from core/io/base64.h rename to thirdparty/misc/base64.h diff --git a/core/io/fastlz.c b/thirdparty/misc/fastlz.c similarity index 100% rename from core/io/fastlz.c rename to thirdparty/misc/fastlz.c diff --git a/core/io/fastlz.h b/thirdparty/misc/fastlz.h similarity index 100% rename from core/io/fastlz.h rename to thirdparty/misc/fastlz.h diff --git a/core/hq2x.cpp b/thirdparty/misc/hq2x.cpp similarity index 100% rename from core/hq2x.cpp rename to thirdparty/misc/hq2x.cpp diff --git a/core/hq2x.h b/thirdparty/misc/hq2x.h similarity index 100% rename from core/hq2x.h rename to thirdparty/misc/hq2x.h diff --git a/core/io/md5.cpp b/thirdparty/misc/md5.cpp similarity index 99% rename from core/io/md5.cpp rename to thirdparty/misc/md5.cpp index 5a88328dd4f..1653ab0be51 100644 --- a/core/io/md5.cpp +++ b/thirdparty/misc/md5.cpp @@ -1,5 +1,3 @@ -#include "md5.h" - /* ********************************************************************** ** md5.c ** @@ -34,7 +32,7 @@ */ /* -- include the following line if the md5.h header file is separate -- */ -/* #include "md5.h" */ +#include "md5.h" /* forward declaration */ static void Transform (uint32_t *buf, uint32_t *in); diff --git a/core/io/md5.h b/thirdparty/misc/md5.h similarity index 100% rename from core/io/md5.h rename to thirdparty/misc/md5.h diff --git a/core/math/pcg.cpp b/thirdparty/misc/pcg.cpp similarity index 100% rename from core/math/pcg.cpp rename to thirdparty/misc/pcg.cpp diff --git a/core/math/pcg.h b/thirdparty/misc/pcg.h similarity index 100% rename from core/math/pcg.h rename to thirdparty/misc/pcg.h diff --git a/core/io/sha256.c b/thirdparty/misc/sha256.c similarity index 100% rename from core/io/sha256.c rename to thirdparty/misc/sha256.c diff --git a/core/io/sha256.h b/thirdparty/misc/sha256.h similarity index 100% rename from core/io/sha256.h rename to thirdparty/misc/sha256.h diff --git a/core/math/triangulator.cpp b/thirdparty/misc/triangulator.cpp similarity index 100% rename from core/math/triangulator.cpp rename to thirdparty/misc/triangulator.cpp diff --git a/core/math/triangulator.h b/thirdparty/misc/triangulator.h similarity index 100% rename from core/math/triangulator.h rename to thirdparty/misc/triangulator.h