| 
									
										
										
										
											2018-02-09 15:03:34 +01:00
										 |  |  | #!/usr/bin/env python | 
					
						
							| 
									
										
										
										
											2024-06-11 15:19:07 -05:00
										 |  |  | from misc.utility.scons_hints import * | 
					
						
							| 
									
										
										
										
											2018-02-09 15:03:34 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  | Import("env") | 
					
						
							|  |  |  | Import("env_modules") | 
					
						
							| 
									
										
										
										
											2018-02-09 15:03:34 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | env_mbed_tls = env_modules.Clone() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-17 16:01:36 +01:00
										 |  |  | # Thirdparty source files | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | thirdparty_obj = [] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-30 08:28:32 +02:00
										 |  |  | if env["builtin_mbedtls"]: | 
					
						
							| 
									
										
										
										
											2018-02-10 14:06:38 +01:00
										 |  |  |     thirdparty_sources = [ | 
					
						
							|  |  |  |         "aes.c", | 
					
						
							| 
									
										
										
										
											2023-09-24 20:04:06 -07:00
										 |  |  |         "aesce.c", | 
					
						
							| 
									
										
										
										
											2018-02-10 14:06:38 +01:00
										 |  |  |         "aesni.c", | 
					
						
							| 
									
										
										
										
											2018-06-07 16:25:01 +02:00
										 |  |  |         "aria.c", | 
					
						
							| 
									
										
										
										
											2018-02-10 14:06:38 +01:00
										 |  |  |         "asn1parse.c", | 
					
						
							|  |  |  |         "asn1write.c", | 
					
						
							|  |  |  |         "base64.c", | 
					
						
							|  |  |  |         "bignum.c", | 
					
						
							| 
									
										
										
										
											2023-09-24 20:04:06 -07:00
										 |  |  |         "bignum_core.c", | 
					
						
							|  |  |  |         "bignum_mod_raw.c", | 
					
						
							| 
									
										
										
										
											2018-02-10 14:06:38 +01:00
										 |  |  |         "camellia.c", | 
					
						
							|  |  |  |         "ccm.c", | 
					
						
							| 
									
										
										
										
											2018-07-28 11:16:41 +02:00
										 |  |  |         "chacha20.c", | 
					
						
							|  |  |  |         "chachapoly.c", | 
					
						
							| 
									
										
										
										
											2018-02-10 14:06:38 +01:00
										 |  |  |         "cipher.c", | 
					
						
							|  |  |  |         "cipher_wrap.c", | 
					
						
							|  |  |  |         "cmac.c", | 
					
						
							| 
									
										
										
										
											2021-12-21 12:54:05 +01:00
										 |  |  |         "constant_time.c", | 
					
						
							| 
									
										
										
										
											2023-09-24 20:04:06 -07:00
										 |  |  |         "ctr_drbg.c", | 
					
						
							| 
									
										
										
										
											2018-02-10 14:06:38 +01:00
										 |  |  |         "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", | 
					
						
							| 
									
										
										
										
											2018-07-28 11:16:41 +02:00
										 |  |  |         "hkdf.c", | 
					
						
							| 
									
										
										
										
											2018-02-10 14:06:38 +01:00
										 |  |  |         "hmac_drbg.c", | 
					
						
							|  |  |  |         "md.c", | 
					
						
							| 
									
										
										
										
											2023-09-24 20:04:06 -07:00
										 |  |  |         "md5.c", | 
					
						
							| 
									
										
										
										
											2018-02-10 14:06:38 +01:00
										 |  |  |         "memory_buffer_alloc.c", | 
					
						
							| 
									
										
										
										
											2021-12-21 12:54:05 +01:00
										 |  |  |         "mps_reader.c", | 
					
						
							|  |  |  |         "mps_trace.c", | 
					
						
							| 
									
										
										
										
											2018-02-10 14:06:38 +01:00
										 |  |  |         "net_sockets.c", | 
					
						
							| 
									
										
										
										
											2018-07-28 11:16:41 +02:00
										 |  |  |         "nist_kw.c", | 
					
						
							| 
									
										
										
										
											2018-02-10 14:06:38 +01:00
										 |  |  |         "oid.c", | 
					
						
							|  |  |  |         "padlock.c", | 
					
						
							|  |  |  |         "pem.c", | 
					
						
							|  |  |  |         "pk.c", | 
					
						
							| 
									
										
										
										
											2023-09-24 20:04:06 -07:00
										 |  |  |         "pk_ecc.c", | 
					
						
							|  |  |  |         "pk_wrap.c", | 
					
						
							| 
									
										
										
										
											2018-02-10 14:06:38 +01:00
										 |  |  |         "pkcs12.c", | 
					
						
							|  |  |  |         "pkcs5.c", | 
					
						
							| 
									
										
										
										
											2023-09-24 20:04:06 -07:00
										 |  |  |         "pkcs7.c", | 
					
						
							| 
									
										
										
										
											2018-02-10 14:06:38 +01:00
										 |  |  |         "pkparse.c", | 
					
						
							|  |  |  |         "pkwrite.c", | 
					
						
							|  |  |  |         "platform.c", | 
					
						
							| 
									
										
										
										
											2018-06-07 16:25:01 +02:00
										 |  |  |         "platform_util.c", | 
					
						
							| 
									
										
										
										
											2018-07-28 11:16:41 +02:00
										 |  |  |         "poly1305.c", | 
					
						
							| 
									
										
										
										
											2024-08-31 16:37:44 +02:00
										 |  |  |         "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", | 
					
						
							| 
									
										
										
										
											2018-02-10 14:06:38 +01:00
										 |  |  |         "ripemd160.c", | 
					
						
							|  |  |  |         "rsa.c", | 
					
						
							| 
									
										
										
										
											2023-09-24 20:04:06 -07:00
										 |  |  |         "rsa_alt_helpers.c", | 
					
						
							| 
									
										
										
										
											2018-02-10 14:06:38 +01:00
										 |  |  |         "sha1.c", | 
					
						
							| 
									
										
										
										
											2023-09-24 20:04:06 -07:00
										 |  |  |         "sha3.c", | 
					
						
							| 
									
										
										
										
											2018-02-10 14:06:38 +01:00
										 |  |  |         "sha256.c", | 
					
						
							|  |  |  |         "sha512.c", | 
					
						
							|  |  |  |         "ssl_cache.c", | 
					
						
							|  |  |  |         "ssl_ciphersuites.c", | 
					
						
							| 
									
										
										
										
											2023-09-24 20:04:06 -07:00
										 |  |  |         "ssl_client.c", | 
					
						
							| 
									
										
										
										
											2018-02-10 14:06:38 +01:00
										 |  |  |         "ssl_cookie.c", | 
					
						
							| 
									
										
										
										
											2023-09-24 20:04:06 -07:00
										 |  |  |         "ssl_debug_helpers_generated.c", | 
					
						
							| 
									
										
										
										
											2021-12-21 12:54:05 +01:00
										 |  |  |         "ssl_msg.c", | 
					
						
							| 
									
										
										
										
											2018-02-10 14:06:38 +01:00
										 |  |  |         "ssl_ticket.c", | 
					
						
							|  |  |  |         "ssl_tls.c", | 
					
						
							| 
									
										
										
										
											2023-09-24 20:04:06 -07:00
										 |  |  |         "ssl_tls12_client.c", | 
					
						
							|  |  |  |         "ssl_tls12_server.c", | 
					
						
							|  |  |  |         "ssl_tls13_client.c", | 
					
						
							|  |  |  |         "ssl_tls13_generic.c", | 
					
						
							| 
									
										
										
										
											2021-12-21 12:54:05 +01:00
										 |  |  |         "ssl_tls13_keys.c", | 
					
						
							| 
									
										
										
										
											2023-09-24 20:04:06 -07:00
										 |  |  |         "ssl_tls13_server.c", | 
					
						
							| 
									
										
										
										
											2018-02-10 14:06:38 +01:00
										 |  |  |         "threading.c", | 
					
						
							|  |  |  |         "timing.c", | 
					
						
							|  |  |  |         "version.c", | 
					
						
							|  |  |  |         "version_features.c", | 
					
						
							|  |  |  |         "x509.c", | 
					
						
							|  |  |  |         "x509_create.c", | 
					
						
							|  |  |  |         "x509_crl.c", | 
					
						
							|  |  |  |         "x509_crt.c", | 
					
						
							|  |  |  |         "x509_csr.c", | 
					
						
							| 
									
										
										
										
											2023-09-24 20:04:06 -07:00
										 |  |  |         "x509write.c", | 
					
						
							| 
									
										
										
										
											2018-02-10 14:06:38 +01:00
										 |  |  |         "x509write_crt.c", | 
					
						
							|  |  |  |         "x509write_csr.c", | 
					
						
							|  |  |  |     ] | 
					
						
							| 
									
										
										
										
											2018-02-09 15:03:34 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-10 14:06:38 +01:00
										 |  |  |     thirdparty_dir = "#thirdparty/mbedtls/library/" | 
					
						
							|  |  |  |     thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources] | 
					
						
							| 
									
										
										
										
											2018-09-28 13:29:52 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-04-01 13:57:43 -05:00
										 |  |  |     env_mbed_tls.Prepend(CPPEXTPATH=["#thirdparty/mbedtls/include/"]) | 
					
						
							| 
									
										
										
										
											2024-04-04 09:49:56 -05:00
										 |  |  |     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)]) | 
					
						
							| 
									
										
										
										
											2018-02-09 15:03:34 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-28 13:29:52 +02:00
										 |  |  |     env_thirdparty = env_mbed_tls.Clone() | 
					
						
							|  |  |  |     env_thirdparty.disable_warnings() | 
					
						
							| 
									
										
										
										
											2020-12-17 16:01:36 +01:00
										 |  |  |     env_thirdparty.add_source_files(thirdparty_obj, thirdparty_sources) | 
					
						
							| 
									
										
										
										
											2023-04-11 15:39:07 +02:00
										 |  |  |     env_thirdparty.Depends(thirdparty_obj, "#thirdparty/mbedtls/include/godot_module_mbedtls_config.h") | 
					
						
							| 
									
										
										
										
											2020-12-17 16:01:36 +01:00
										 |  |  |     env.modules_sources += thirdparty_obj | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Godot source files | 
					
						
							| 
									
										
										
										
											2018-09-28 13:29:52 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-17 16:01:36 +01:00
										 |  |  | module_obj = [] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | env_mbed_tls.add_source_files(module_obj, "*.cpp") | 
					
						
							| 
									
										
										
										
											2020-11-14 04:42:47 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | if env["tests"]: | 
					
						
							|  |  |  |     env_mbed_tls.Append(CPPDEFINES=["TESTS_ENABLED"]) | 
					
						
							| 
									
										
										
										
											2020-12-17 16:01:36 +01:00
										 |  |  |     env_mbed_tls.add_source_files(module_obj, "./tests/*.cpp") | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-03-01 07:17:59 +00:00
										 |  |  |     if env["disable_exceptions"]: | 
					
						
							|  |  |  |         env_mbed_tls.Append(CPPDEFINES=["DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS"]) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-12-17 16:01:36 +01:00
										 |  |  | env.modules_sources += module_obj | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Needed to force rebuilding the module files when the thirdparty library is updated. | 
					
						
							|  |  |  | env.Depends(module_obj, thirdparty_obj) |