12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #!/usr/bin/env python
- Import("env")
- env_crypto = env.Clone()
- is_builtin = env["builtin_mbedtls"]
- has_module = env["module_mbedtls_enabled"]
- thirdparty_obj = []
- 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_crypto.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:
- # Minimal mbedTLS config file
- env_crypto.Append(
- CPPDEFINES=[("MBEDTLS_CONFIG_FILE", '\\"thirdparty/mbedtls/include/godot_core_mbedtls_config.h\\"')]
- )
- # Build minimal mbedTLS library (MD5/SHA/Base64/AES).
- env_thirdparty = env_crypto.Clone()
- env_thirdparty.disable_warnings()
- thirdparty_mbedtls_dir = "#thirdparty/mbedtls/library/"
- thirdparty_mbedtls_sources = [
- "aes.c",
- "base64.c",
- "constant_time.c",
- "ctr_drbg.c",
- "entropy.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(thirdparty_obj, thirdparty_mbedtls_sources)
- # Needed to force rebuilding the library when the configuration file is updated.
- env_thirdparty.Depends(thirdparty_obj, "#thirdparty/mbedtls/include/godot_core_mbedtls_config.h")
- env.core_sources += thirdparty_obj
- elif is_builtin:
- # Module mbedTLS config file
- env_crypto.Append(
- CPPDEFINES=[("MBEDTLS_CONFIG_FILE", '\\"thirdparty/mbedtls/include/godot_module_mbedtls_config.h\\"')]
- )
- # Needed to force rebuilding the core files when the configuration file is updated.
- thirdparty_obj = ["#thirdparty/mbedtls/include/godot_module_mbedtls_config.h"]
- # Godot source files
- core_obj = []
- env_crypto.add_source_files(core_obj, "*.cpp")
- env.core_sources += core_obj
- # Needed to force rebuilding the core files when the thirdparty library is updated.
- env.Depends(core_obj, thirdparty_obj)
|