diff options
-rw-r--r-- | SConstruct | 1 | ||||
-rw-r--r-- | core/SCsub | 21 | ||||
-rw-r--r-- | core/io/compression.cpp | 2 | ||||
-rw-r--r-- | platform/server/detect.py | 3 | ||||
-rw-r--r-- | platform/x11/detect.py | 3 | ||||
-rw-r--r-- | thirdparty/zstd/SCsub | 23 |
6 files changed, 33 insertions, 20 deletions
diff --git a/SConstruct b/SConstruct index f2f1ea57f3..a6767e6a25 100644 --- a/SConstruct +++ b/SConstruct @@ -171,6 +171,7 @@ opts.Add('builtin_pcre2', "Use the builtin pcre2 library (yes/no)", 'yes') opts.Add('builtin_recast', "Use the builtin recast library (yes/no)", 'yes') opts.Add('builtin_squish', "Use the builtin squish library (yes/no)", 'yes') opts.Add('builtin_zlib', "Use the builtin zlib library (yes/no)", 'yes') +opts.Add('builtin_zstd', "Use the builtin zstd library (yes/no)", 'yes') # Environment setup opts.Add("CXX", "C++ compiler") diff --git a/core/SCsub b/core/SCsub index c1e57f6840..e78fe185a9 100644 --- a/core/SCsub +++ b/core/SCsub @@ -83,24 +83,8 @@ thirdparty_minizip_sources = [ thirdparty_minizip_sources = [thirdparty_minizip_dir + file for file in thirdparty_minizip_sources] env.add_source_files(env.core_sources, thirdparty_minizip_sources) -thirdparty_zstd_dir = "#thirdparty/zstd/" -thirdparty_zstd_sources = [ - "common/entropy_common.c", - "common/error_private.c", - "common/fse_decompress.c", - "common/pool.c", - "common/threading.c", - "common/xxhash.c", - "common/zstd_common.c", - "compress/fse_compress.c", - "compress/huf_compress.c", - "compress/zstd_compress.c", - "compress/zstdmt_compress.c", - "decompress/huf_decompress.c", - "decompress/zstd_decompress.c", -] -thirdparty_zstd_sources = [thirdparty_zstd_dir + file for file in thirdparty_zstd_sources] -env.add_source_files(env.core_sources, thirdparty_zstd_sources) +if "builtin_zstd" in env and env["builtin_zstd"] == "yes": + SConscript("#thirdparty/zstd/SCsub") # Godot's own sources @@ -123,5 +107,4 @@ SConscript('helper/SCsub') # Build it all as a library lib = env.Library("core", env.core_sources) env.Prepend(LIBS=[lib]) -env.Append(CPPPATH=["#thirdparty/zstd", "#thirdparty/zstd/common"]) Export('env') diff --git a/core/io/compression.cpp b/core/io/compression.cpp index 44fa65e11d..fbe97e54c7 100644 --- a/core/io/compression.cpp +++ b/core/io/compression.cpp @@ -33,9 +33,9 @@ #include "zip_io.h" #include "thirdparty/misc/fastlz.h" -#include "thirdparty/zstd/zstd.h" #include <zlib.h> +#include <zstd.h> int Compression::compress(uint8_t *p_dst, const uint8_t *p_src, int p_src_size, Mode p_mode) { diff --git a/platform/server/detect.py b/platform/server/detect.py index 0a3158e7e8..5c13297bc6 100644 --- a/platform/server/detect.py +++ b/platform/server/detect.py @@ -89,6 +89,9 @@ def configure(env): if (env['builtin_squish'] == 'no' and env["tools"] == "yes"): env.ParseConfig('pkg-config libsquish --cflags --libs') + if env['builtin_zstd'] == 'no': + env.ParseConfig('pkg-config libzstd --cflags --libs') + # Sound and video libraries # Keep the order as it triggers chained dependencies (ogg needed by others, etc.) diff --git a/platform/x11/detect.py b/platform/x11/detect.py index f0503e8bfa..591398dd6d 100644 --- a/platform/x11/detect.py +++ b/platform/x11/detect.py @@ -158,6 +158,9 @@ def configure(env): if (env['builtin_squish'] == 'no' and env["tools"] == "yes"): env.ParseConfig('pkg-config libsquish --cflags --libs') + if env['builtin_zstd'] == 'no': + env.ParseConfig('pkg-config libzstd --cflags --libs') + # Sound and video libraries # Keep the order as it triggers chained dependencies (ogg needed by others, etc.) diff --git a/thirdparty/zstd/SCsub b/thirdparty/zstd/SCsub new file mode 100644 index 0000000000..e8be1aaf44 --- /dev/null +++ b/thirdparty/zstd/SCsub @@ -0,0 +1,23 @@ +#!/usr/bin/env python + +Import('env') + +thirdparty_zstd_dir = "#thirdparty/zstd/" +thirdparty_zstd_sources = [ + "common/entropy_common.c", + "common/error_private.c", + "common/fse_decompress.c", + "common/pool.c", + "common/threading.c", + "common/xxhash.c", + "common/zstd_common.c", + "compress/fse_compress.c", + "compress/huf_compress.c", + "compress/zstd_compress.c", + "compress/zstdmt_compress.c", + "decompress/huf_decompress.c", + "decompress/zstd_decompress.c", +] +thirdparty_zstd_sources = [thirdparty_zstd_dir + file for file in thirdparty_zstd_sources] +env.add_source_files(env.core_sources, thirdparty_zstd_sources) +env.Append(CPPPATH=["#thirdparty/zstd", "#thirdparty/zstd/common"]) |