Skip to content

Commit

Permalink
Move core thirdparty files to thirdparty/{minizip,misc}
Browse files Browse the repository at this point in the history
  • Loading branch information
akien-mga committed Apr 28, 2017
1 parent 0a613ff commit 2398eb6
Show file tree
Hide file tree
Showing 43 changed files with 145 additions and 38 deletions.
45 changes: 42 additions & 3 deletions core/SCsub
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ Import('env')
env.core_sources = []


# Generate global defaults
gd_call = ""
gd_inc = ""

Expand All @@ -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):
Expand Down Expand Up @@ -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')
4 changes: 3 additions & 1 deletion core/bind/core_bind.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
*/
Expand Down
3 changes: 2 additions & 1 deletion core/image.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 <stdio.h>

const char *Image::format_names[Image::FORMAT_MAX] = {
Expand Down
2 changes: 0 additions & 2 deletions core/io/SCsub
Original file line number Diff line number Diff line change
Expand Up @@ -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')
8 changes: 5 additions & 3 deletions core/io/compression.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 <zlib.h>

int Compression::compress(uint8_t *p_dst, const uint8_t *p_src, int p_src_size, Mode p_mode) {

switch (p_mode) {
Expand Down
11 changes: 7 additions & 4 deletions core/io/file_access_encrypted.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 "core/variant.h"
#include "os/copymem.h"
#include "print_string.h"
#define COMP_MAGIC 0x43454447

#include "core/variant.h"
#include "thirdparty/misc/aes256.h"
#include "thirdparty/misc/md5.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) {

//print_line("open and parse!");
Expand Down
4 changes: 3 additions & 1 deletion core/io/file_access_zip.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,9 @@

#include "core/io/file_access_pack.h"
#include "map.h"
#include "unzip.h"

#include "thirdparty/minizip/unzip.h"

#include <stdlib.h>

class ZipArchive : public PackSource {
Expand Down
5 changes: 0 additions & 5 deletions core/io/sha-README.md

This file was deleted.

5 changes: 3 additions & 2 deletions core/io/zip_io.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
3 changes: 2 additions & 1 deletion core/math/math_funcs.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,10 @@
#define MATH_FUNCS_H

#include "math_defs.h"
#include "pcg.h"
#include "typedefs.h"

#include "thirdparty/misc/pcg.h"

#include <float.h>
#include <math.h>

Expand Down
6 changes: 4 additions & 2 deletions core/os/file_access.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
5 changes: 3 additions & 2 deletions core/ustring.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 <wchar.h>

#ifndef NO_USE_STDLIB
Expand Down
4 changes: 3 additions & 1 deletion editor/editor_export.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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;
Expand Down
4 changes: 3 additions & 1 deletion editor/io_plugins/editor_texture_import_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,20 +28,22 @@
/* 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"
#include "editor_atlas.h"
#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"),
Expand Down
9 changes: 5 additions & 4 deletions platform/uwp/export/export.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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 <zlib.h>

// Capabilities
Expand Down
5 changes: 4 additions & 1 deletion scene/2d/collision_polygon_2d.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
4 changes: 3 additions & 1 deletion scene/2d/navigation_polygon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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<Vector2> &p_vertices) {

Expand Down
52 changes: 52 additions & 0 deletions thirdparty/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading

0 comments on commit 2398eb6

Please sign in to comment.