#!/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(CPPPATH=["#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)