1
0

build: create a standalone build script for libsecp256k1

heavily based on Electron-Cash/Electron-Cash@eda015908e
This commit is contained in:
SomberNight
2020-02-10 19:20:23 +01:00
parent 1d72585b7d
commit 4cec098d2d
11 changed files with 146 additions and 105 deletions

View File

@@ -38,15 +38,25 @@ class LibModuleMissing(Exception): pass
def load_library():
if sys.platform == 'darwin':
library_path = 'libsecp256k1.0.dylib'
library_paths = (os.path.join(os.path.dirname(__file__), 'libsecp256k1.0.dylib'),
'libsecp256k1.0.dylib')
elif sys.platform in ('windows', 'win32'):
library_path = 'libsecp256k1.dll'
library_paths = (os.path.join(os.path.dirname(__file__), 'libsecp256k1-0.dll'),
'libsecp256k1-0.dll')
elif 'ANDROID_DATA' in os.environ:
library_path = 'libsecp256k1.so'
else:
library_path = 'libsecp256k1.so.0'
library_paths = ('libsecp256k1.so',)
else: # desktop Linux and similar
library_paths = (os.path.join(os.path.dirname(__file__), 'libsecp256k1.so.0'),
'libsecp256k1.so.0')
secp256k1 = ctypes.cdll.LoadLibrary(library_path)
secp256k1 = None
for libpath in library_paths:
try:
secp256k1 = ctypes.cdll.LoadLibrary(libpath)
except:
pass
else:
break
if not secp256k1:
_logger.error('libsecp256k1 library failed to load')
return None