Allow building with system wide mbedtls on X11

Using builtin_mbedtls=yes is still the default as many distributions
do not ship with mbedtls included.
This commit is contained in:
Fabio Alessandrelli 2018-02-10 14:06:38 +01:00
parent 9e2b1b3b00
commit bd3c27ba78
4 changed files with 88 additions and 82 deletions

View File

@ -181,6 +181,7 @@ opts.Add(BoolVariable('builtin_libtheora', "Use the builtin libtheora library",
opts.Add(BoolVariable('builtin_libvorbis', "Use the builtin libvorbis library", True)) opts.Add(BoolVariable('builtin_libvorbis', "Use the builtin libvorbis library", True))
opts.Add(BoolVariable('builtin_libvpx', "Use the builtin libvpx library", True)) opts.Add(BoolVariable('builtin_libvpx', "Use the builtin libvpx library", True))
opts.Add(BoolVariable('builtin_libwebp', "Use the builtin libwebp library", True)) opts.Add(BoolVariable('builtin_libwebp', "Use the builtin libwebp library", True))
opts.Add(BoolVariable('builtin_mbedtls', "Use the builtin mbedTLS library", True))
opts.Add(BoolVariable('builtin_opus', "Use the builtin opus library", True)) opts.Add(BoolVariable('builtin_opus', "Use the builtin opus library", True))
opts.Add(BoolVariable('builtin_pcre2', "Use the builtin pcre2 library)", True)) opts.Add(BoolVariable('builtin_pcre2', "Use the builtin pcre2 library)", True))
opts.Add(BoolVariable('builtin_recast', "Use the builtin recast library", True)) opts.Add(BoolVariable('builtin_recast', "Use the builtin recast library", True))

View File

@ -5,87 +5,87 @@ Import('env_modules')
env_mbed_tls = env_modules.Clone() env_mbed_tls = env_modules.Clone()
# Thirdparty source files if env['builtin_mbedtls']:
thirdparty_dir = "#thirdparty/mbedtls/library/" # Thirdparty source files
thirdparty_sources = [
"aes.c",
"aesni.c",
"arc4.c",
"asn1parse.c",
"asn1write.c",
"base64.c",
"bignum.c",
"blowfish.c",
"camellia.c",
"ccm.c",
"certs.c",
"cipher.c",
"cipher_wrap.c",
"cmac.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",
"havege.c",
"hmac_drbg.c",
"md2.c",
"md4.c",
"md5.c",
"md.c",
"md_wrap.c",
"memory_buffer_alloc.c",
"net_sockets.c",
"oid.c",
"padlock.c",
"pem.c",
"pk.c",
"pkcs11.c",
"pkcs12.c",
"pkcs5.c",
"pkparse.c",
"pk_wrap.c",
"pkwrite.c",
"platform.c",
"ripemd160.c",
"rsa.c",
"rsa_internal.c",
"sha1.c",
"sha256.c",
"sha512.c",
"ssl_cache.c",
"ssl_ciphersuites.c",
"ssl_cli.c",
"ssl_cookie.c",
"ssl_srv.c",
"ssl_ticket.c",
"ssl_tls.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_crt.c",
"x509write_csr.c",
"xtea.c"
]
thirdparty_sources = [ thirdparty_dir = "#thirdparty/mbedtls/library/"
"aes.c", thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
"aesni.c", env_mbed_tls.add_source_files(env.modules_sources, thirdparty_sources)
"arc4.c", env_mbed_tls.Append(CPPPATH=["#thirdparty/mbedtls/include/"])
"asn1parse.c",
"asn1write.c",
"base64.c",
"bignum.c",
"blowfish.c",
"camellia.c",
"ccm.c",
"certs.c",
"cipher.c",
"cipher_wrap.c",
"cmac.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",
"havege.c",
"hmac_drbg.c",
"md2.c",
"md4.c",
"md5.c",
"md.c",
"md_wrap.c",
"memory_buffer_alloc.c",
"net_sockets.c",
"oid.c",
"padlock.c",
"pem.c",
"pk.c",
"pkcs11.c",
"pkcs12.c",
"pkcs5.c",
"pkparse.c",
"pk_wrap.c",
"pkwrite.c",
"platform.c",
"ripemd160.c",
"rsa.c",
"rsa_internal.c",
"sha1.c",
"sha256.c",
"sha512.c",
"ssl_cache.c",
"ssl_ciphersuites.c",
"ssl_cli.c",
"ssl_cookie.c",
"ssl_srv.c",
"ssl_ticket.c",
"ssl_tls.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_crt.c",
"x509write_csr.c",
"xtea.c"
]
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
env_mbed_tls.add_source_files(env.modules_sources, thirdparty_sources)
env_mbed_tls.Append(CPPPATH=["#thirdparty/mbedtls/include/"])
# Module sources # Module sources
env_mbed_tls.add_source_files(env.modules_sources, "*.cpp") env_mbed_tls.add_source_files(env.modules_sources, "*.cpp")

View File

@ -71,8 +71,9 @@ else:
wrapper_includes = ["#thirdparty/lws/mbedtls_wrapper/include/" + inc for inc in ["internal", "openssl", "platform", ""]] wrapper_includes = ["#thirdparty/lws/mbedtls_wrapper/include/" + inc for inc in ["internal", "openssl", "platform", ""]]
env_lws.Append(CPPPATH=wrapper_includes) env_lws.Append(CPPPATH=wrapper_includes)
mbedtls_includes = "#thirdparty/mbedtls/include" if env['builtin_mbedtls']:
env_lws.Append(CPPPATH=[mbedtls_includes]) mbedtls_includes = "#thirdparty/mbedtls/include"
env_lws.Append(CPPPATH=[mbedtls_includes])
if env_lws["platform"] == "windows": if env_lws["platform"] == "windows":
env_lws.Append(CPPPATH=[thirdparty_dir + helper_dir]) env_lws.Append(CPPPATH=[thirdparty_dir + helper_dir])

View File

@ -152,6 +152,10 @@ def configure(env):
# FIXME: Check for existence of the libs before parsing their flags with pkg-config # FIXME: Check for existence of the libs before parsing their flags with pkg-config
if not env['builtin_mbedtls']:
# mbedTLS does not provide a pkgconfig config yet. See https://github.com/ARMmbed/mbedtls/issues/228
env.Append(LIBS=['mbedtls', 'mbedcrypto', 'mbedx509'])
if not env['builtin_libwebp']: if not env['builtin_libwebp']:
env.ParseConfig('pkg-config libwebp --cflags --libs') env.ParseConfig('pkg-config libwebp --cflags --libs')