564d93ff10
Godot core needs MD5/SHA256/AES/Base64 which used to be provided by separate libraries. Since we bundle mbedtls in most cases, and we can easily only include the needed sources if we so desire, let's use it. To simplify library changes in the future, and better isolate header dependencies all functions have been wrapped around inside a class in `core/math/crypto_base.h`. If the mbedtls module is disabled, we only bundle the needed source files independently of the `builtin_mbedtls` option. If the module is enabled, the `builtin_mbedtls` option works as usual. Also remove some unused headers from StreamPeerMbedTLS which were causing build issues.
39 lines
1.5 KiB
Python
39 lines
1.5 KiB
Python
#!/usr/bin/env python
|
|
|
|
Import('env')
|
|
|
|
env_math = env.Clone() # Maybe make one specific for crypto?
|
|
|
|
is_builtin = env["builtin_mbedtls"]
|
|
has_module = env["module_mbedtls_enabled"]
|
|
|
|
if is_builtin or not has_module:
|
|
# Use our headers for builtin or if the module is not going to be compiled.
|
|
# We decided not to depend on system mbedtls just for these few files that can
|
|
# be easily extracted.
|
|
env_math.Prepend(CPPPATH=["#thirdparty/mbedtls/include"])
|
|
|
|
# MbedTLS core functions (for CryptoCore).
|
|
# If the mbedtls module is compiled we don't need to add the .c files with our
|
|
# custom config since they will be built by the module itself.
|
|
# Only if the module is not enabled, we must compile here the required sources
|
|
# to make a "light" build with only the necessary mbedtls files.
|
|
if not has_module:
|
|
env_thirdparty = env_math.Clone()
|
|
env_thirdparty.disable_warnings()
|
|
# Custom config file
|
|
env_thirdparty.Append(CPPFLAGS=['-DMBEDTLS_CONFIG_FILE="\\"thirdparty/mbedtls/include/godot_core_mbedtls_config.h\\""'])
|
|
thirdparty_mbedtls_dir = "#thirdparty/mbedtls/library/"
|
|
thirdparty_mbedtls_sources = [
|
|
"aes.c",
|
|
"base64.c",
|
|
"md5.c",
|
|
"sha1.c",
|
|
"sha256.c",
|
|
"godot_core_mbedtls_platform.c"
|
|
]
|
|
thirdparty_mbedtls_sources = [thirdparty_mbedtls_dir + file for file in thirdparty_mbedtls_sources]
|
|
env_thirdparty.add_source_files(env.core_sources, thirdparty_mbedtls_sources)
|
|
|
|
env_math.add_source_files(env.core_sources, "*.cpp")
|