152 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			152 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
#!/usr/bin/env python
 | 
						|
from misc.utility.scons_hints import *
 | 
						|
 | 
						|
Import("env")
 | 
						|
Import("env_modules")
 | 
						|
 | 
						|
env_mbed_tls = env_modules.Clone()
 | 
						|
 | 
						|
# Thirdparty source files
 | 
						|
 | 
						|
thirdparty_obj = []
 | 
						|
 | 
						|
if env["builtin_mbedtls"]:
 | 
						|
    thirdparty_sources = [
 | 
						|
        "aes.c",
 | 
						|
        "aesce.c",
 | 
						|
        "aesni.c",
 | 
						|
        "aria.c",
 | 
						|
        "asn1parse.c",
 | 
						|
        "asn1write.c",
 | 
						|
        "base64.c",
 | 
						|
        "bignum.c",
 | 
						|
        "bignum_core.c",
 | 
						|
        "bignum_mod_raw.c",
 | 
						|
        "camellia.c",
 | 
						|
        "ccm.c",
 | 
						|
        "chacha20.c",
 | 
						|
        "chachapoly.c",
 | 
						|
        "cipher.c",
 | 
						|
        "cipher_wrap.c",
 | 
						|
        "cmac.c",
 | 
						|
        "constant_time.c",
 | 
						|
        "ctr_drbg.c",
 | 
						|
        "debug.c",
 | 
						|
        "des.c",
 | 
						|
        "dhm.c",
 | 
						|
        "ecdh.c",
 | 
						|
        "ecdsa.c",
 | 
						|
        "ecjpake.c",
 | 
						|
        "ecp.c",
 | 
						|
        "ecp_curves.c",
 | 
						|
        "entropy.c",
 | 
						|
        "entropy_poll.c",
 | 
						|
        "error.c",
 | 
						|
        "gcm.c",
 | 
						|
        "hkdf.c",
 | 
						|
        "hmac_drbg.c",
 | 
						|
        "md.c",
 | 
						|
        "md5.c",
 | 
						|
        "memory_buffer_alloc.c",
 | 
						|
        "mps_reader.c",
 | 
						|
        "mps_trace.c",
 | 
						|
        "net_sockets.c",
 | 
						|
        "nist_kw.c",
 | 
						|
        "oid.c",
 | 
						|
        "padlock.c",
 | 
						|
        "pem.c",
 | 
						|
        "pk.c",
 | 
						|
        "pk_ecc.c",
 | 
						|
        "pk_wrap.c",
 | 
						|
        "pkcs12.c",
 | 
						|
        "pkcs5.c",
 | 
						|
        "pkcs7.c",
 | 
						|
        "pkparse.c",
 | 
						|
        "pkwrite.c",
 | 
						|
        "platform.c",
 | 
						|
        "platform_util.c",
 | 
						|
        "poly1305.c",
 | 
						|
        "psa_crypto.c",
 | 
						|
        "psa_crypto_aead.c",
 | 
						|
        "psa_crypto_cipher.c",
 | 
						|
        "psa_crypto_client.c",
 | 
						|
        "psa_crypto_driver_wrappers_no_static.c",
 | 
						|
        "psa_crypto_ecp.c",
 | 
						|
        "psa_crypto_ffdh.c",
 | 
						|
        "psa_crypto_hash.c",
 | 
						|
        "psa_crypto_mac.c",
 | 
						|
        "psa_crypto_pake.c",
 | 
						|
        "psa_crypto_rsa.c",
 | 
						|
        "psa_crypto_se.c",
 | 
						|
        "psa_crypto_slot_management.c",
 | 
						|
        "psa_crypto_storage.c",
 | 
						|
        "psa_its_file.c",
 | 
						|
        "psa_util.c",
 | 
						|
        "ripemd160.c",
 | 
						|
        "rsa.c",
 | 
						|
        "rsa_alt_helpers.c",
 | 
						|
        "sha1.c",
 | 
						|
        "sha3.c",
 | 
						|
        "sha256.c",
 | 
						|
        "sha512.c",
 | 
						|
        "ssl_cache.c",
 | 
						|
        "ssl_ciphersuites.c",
 | 
						|
        "ssl_client.c",
 | 
						|
        "ssl_cookie.c",
 | 
						|
        "ssl_debug_helpers_generated.c",
 | 
						|
        "ssl_msg.c",
 | 
						|
        "ssl_ticket.c",
 | 
						|
        "ssl_tls.c",
 | 
						|
        "ssl_tls12_client.c",
 | 
						|
        "ssl_tls12_server.c",
 | 
						|
        "ssl_tls13_client.c",
 | 
						|
        "ssl_tls13_generic.c",
 | 
						|
        "ssl_tls13_keys.c",
 | 
						|
        "ssl_tls13_server.c",
 | 
						|
        "threading.c",
 | 
						|
        "timing.c",
 | 
						|
        "version.c",
 | 
						|
        "version_features.c",
 | 
						|
        "x509.c",
 | 
						|
        "x509_create.c",
 | 
						|
        "x509_crl.c",
 | 
						|
        "x509_crt.c",
 | 
						|
        "x509_csr.c",
 | 
						|
        "x509write.c",
 | 
						|
        "x509write_crt.c",
 | 
						|
        "x509write_csr.c",
 | 
						|
    ]
 | 
						|
 | 
						|
    thirdparty_dir = "#thirdparty/mbedtls/library/"
 | 
						|
    thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
 | 
						|
 | 
						|
    env_mbed_tls.Prepend(CPPEXTPATH=["#thirdparty/mbedtls/include/"])
 | 
						|
    config_path = "thirdparty/mbedtls/include/godot_module_mbedtls_config.h"
 | 
						|
    config_path = f"<{config_path}>" if env_mbed_tls["ninja"] and env_mbed_tls.msvc else f'\\"{config_path}\\"'
 | 
						|
    env_mbed_tls.Append(CPPDEFINES=[("MBEDTLS_CONFIG_FILE", config_path)])
 | 
						|
 | 
						|
    env_thirdparty = env_mbed_tls.Clone()
 | 
						|
    env_thirdparty.disable_warnings()
 | 
						|
    env_thirdparty.add_source_files(thirdparty_obj, thirdparty_sources)
 | 
						|
    env_thirdparty.Depends(thirdparty_obj, "#thirdparty/mbedtls/include/godot_module_mbedtls_config.h")
 | 
						|
    env.modules_sources += thirdparty_obj
 | 
						|
 | 
						|
 | 
						|
# Godot source files
 | 
						|
 | 
						|
module_obj = []
 | 
						|
 | 
						|
env_mbed_tls.add_source_files(module_obj, "*.cpp")
 | 
						|
 | 
						|
if env["tests"]:
 | 
						|
    env_mbed_tls.Append(CPPDEFINES=["TESTS_ENABLED"])
 | 
						|
    env_mbed_tls.add_source_files(module_obj, "./tests/*.cpp")
 | 
						|
 | 
						|
    if env["disable_exceptions"]:
 | 
						|
        env_mbed_tls.Append(CPPDEFINES=["DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS"])
 | 
						|
 | 
						|
env.modules_sources += module_obj
 | 
						|
 | 
						|
# Needed to force rebuilding the module files when the thirdparty library is updated.
 | 
						|
env.Depends(module_obj, thirdparty_obj)
 |