borg/setup_crypto.py

33 lines
988 B
Python
Raw Normal View History

# Support code for building a C extension with crypto code
import os
2019-08-25 21:57:05 +00:00
import sys
is_win32 = sys.platform.startswith('win32')
def multi_join(paths, *path_segments):
"""apply os.path.join on a list of paths"""
return [os.path.join(*(path_segments + (path,))) for path in paths]
def crypto_ext_kwargs(pc, system_prefix):
if system_prefix:
print('Detected OpenSSL [via BORG_OPENSSL_PREFIX]')
2019-08-25 21:57:05 +00:00
if is_win32:
lib_dir = system_prefix
lib_name = 'libcrypto'
else:
lib_dir = os.path.join(system_prefix, 'lib')
lib_name = 'crypto'
return dict(include_dirs=[os.path.join(system_prefix, 'include')],
2019-08-25 21:57:05 +00:00
library_dirs=[lib_dir],
libraries=[lib_name])
2019-03-13 22:59:04 +00:00
if pc and pc.exists('libcrypto'):
print('Detected OpenSSL [via pkg-config]')
2019-03-13 22:59:04 +00:00
return pc.parse('libcrypto')
raise Exception('Could not find OpenSSL lib/headers, please set BORG_OPENSSL_PREFIX')