SCsub 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. #!/usr/bin/env python
  2. from misc.utility.scons_hints import *
  3. Import("env")
  4. Import("env_modules")
  5. env_mbed_tls = env_modules.Clone()
  6. # Thirdparty source files
  7. thirdparty_obj = []
  8. if env["builtin_mbedtls"]:
  9. thirdparty_sources = [
  10. "aes.c",
  11. "aesce.c",
  12. "aesni.c",
  13. "aria.c",
  14. "asn1parse.c",
  15. "asn1write.c",
  16. "base64.c",
  17. "bignum.c",
  18. "bignum_core.c",
  19. "bignum_mod_raw.c",
  20. "camellia.c",
  21. "ccm.c",
  22. "chacha20.c",
  23. "chachapoly.c",
  24. "cipher.c",
  25. "cipher_wrap.c",
  26. "cmac.c",
  27. "constant_time.c",
  28. "ctr_drbg.c",
  29. "debug.c",
  30. "des.c",
  31. "dhm.c",
  32. "ecdh.c",
  33. "ecdsa.c",
  34. "ecjpake.c",
  35. "ecp.c",
  36. "ecp_curves.c",
  37. "entropy.c",
  38. "entropy_poll.c",
  39. "error.c",
  40. "gcm.c",
  41. "hkdf.c",
  42. "hmac_drbg.c",
  43. "md.c",
  44. "md5.c",
  45. "memory_buffer_alloc.c",
  46. "mps_reader.c",
  47. "mps_trace.c",
  48. "net_sockets.c",
  49. "nist_kw.c",
  50. "oid.c",
  51. "padlock.c",
  52. "pem.c",
  53. "pk.c",
  54. "pk_ecc.c",
  55. "pk_wrap.c",
  56. "pkcs12.c",
  57. "pkcs5.c",
  58. "pkcs7.c",
  59. "pkparse.c",
  60. "pkwrite.c",
  61. "platform.c",
  62. "platform_util.c",
  63. "poly1305.c",
  64. "ripemd160.c",
  65. "rsa.c",
  66. "rsa_alt_helpers.c",
  67. "sha1.c",
  68. "sha3.c",
  69. "sha256.c",
  70. "sha512.c",
  71. "ssl_cache.c",
  72. "ssl_ciphersuites.c",
  73. "ssl_client.c",
  74. "ssl_cookie.c",
  75. "ssl_debug_helpers_generated.c",
  76. "ssl_msg.c",
  77. "ssl_ticket.c",
  78. "ssl_tls.c",
  79. "ssl_tls12_client.c",
  80. "ssl_tls12_server.c",
  81. "ssl_tls13_client.c",
  82. "ssl_tls13_generic.c",
  83. "ssl_tls13_keys.c",
  84. "ssl_tls13_server.c",
  85. "threading.c",
  86. "timing.c",
  87. "version.c",
  88. "version_features.c",
  89. "x509.c",
  90. "x509_create.c",
  91. "x509_crl.c",
  92. "x509_crt.c",
  93. "x509_csr.c",
  94. "x509write.c",
  95. "x509write_crt.c",
  96. "x509write_csr.c",
  97. ]
  98. thirdparty_dir = "#thirdparty/mbedtls/library/"
  99. thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
  100. env_mbed_tls.Prepend(CPPPATH=["#thirdparty/mbedtls/include/"])
  101. config_path = "thirdparty/mbedtls/include/godot_module_mbedtls_config.h"
  102. config_path = f"<{config_path}>" if env_mbed_tls["ninja"] and env_mbed_tls.msvc else f'\\"{config_path}\\"'
  103. env_mbed_tls.Append(CPPDEFINES=[("MBEDTLS_CONFIG_FILE", config_path)])
  104. env_thirdparty = env_mbed_tls.Clone()
  105. env_thirdparty.disable_warnings()
  106. env_thirdparty.add_source_files(thirdparty_obj, thirdparty_sources)
  107. env_thirdparty.Depends(thirdparty_obj, "#thirdparty/mbedtls/include/godot_module_mbedtls_config.h")
  108. env.modules_sources += thirdparty_obj
  109. # Godot source files
  110. module_obj = []
  111. env_mbed_tls.add_source_files(module_obj, "*.cpp")
  112. if env["tests"]:
  113. env_mbed_tls.Append(CPPDEFINES=["TESTS_ENABLED"])
  114. env_mbed_tls.add_source_files(module_obj, "./tests/*.cpp")
  115. if env["disable_exceptions"]:
  116. env_mbed_tls.Append(CPPDEFINES=["DOCTEST_CONFIG_NO_EXCEPTIONS_BUT_WITH_ALL_ASSERTS"])
  117. env.modules_sources += module_obj
  118. # Needed to force rebuilding the module files when the thirdparty library is updated.
  119. env.Depends(module_obj, thirdparty_obj)