aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2014-04-24 19:31:46 -0500
committerPaul Kehrer <paul.l.kehrer@gmail.com>2014-04-24 19:31:46 -0500
commit236893ea2814526dc903c3fbba8d4bcc4afe62bc (patch)
tree2a3b23f2872051e203b4e124bf411583e0e71632
parentdcf63ab6bcee9d5a4ae837186db8f0804ddca62c (diff)
downloadcryptography-236893ea2814526dc903c3fbba8d4bcc4afe62bc.tar.gz
cryptography-236893ea2814526dc903c3fbba8d4bcc4afe62bc.tar.bz2
cryptography-236893ea2814526dc903c3fbba8d4bcc4afe62bc.zip
expand build_ffi helper function
-rw-r--r--cryptography/hazmat/bindings/commoncrypto/binding.py11
-rw-r--r--cryptography/hazmat/bindings/openssl/binding.py12
-rw-r--r--cryptography/hazmat/bindings/utils.py5
3 files changed, 22 insertions, 6 deletions
diff --git a/cryptography/hazmat/bindings/commoncrypto/binding.py b/cryptography/hazmat/bindings/commoncrypto/binding.py
index 3673ea36..ec98b339 100644
--- a/cryptography/hazmat/bindings/commoncrypto/binding.py
+++ b/cryptography/hazmat/bindings/commoncrypto/binding.py
@@ -42,8 +42,15 @@ class Binding(object):
if cls.ffi is not None and cls.lib is not None:
return
- cls.ffi, cls.lib = build_ffi(cls._module_prefix, cls._modules,
- "", "", [])
+ cls.ffi, cls.lib = build_ffi(
+ module_prefix=cls._module_prefix,
+ modules=cls._modules,
+ pre_include="",
+ post_include="",
+ libraries=[],
+ extra_compile_args=[],
+ extra_link_args=[]
+ )
@classmethod
def is_available(cls):
diff --git a/cryptography/hazmat/bindings/openssl/binding.py b/cryptography/hazmat/bindings/openssl/binding.py
index cc40a108..fab66c7c 100644
--- a/cryptography/hazmat/bindings/openssl/binding.py
+++ b/cryptography/hazmat/bindings/openssl/binding.py
@@ -97,9 +97,15 @@ class Binding(object):
else: # pragma: no cover
libraries = ["libeay32", "ssleay32", "advapi32"]
- cls.ffi, cls.lib = build_ffi(cls._module_prefix, cls._modules,
- _OSX_PRE_INCLUDE, _OSX_POST_INCLUDE,
- libraries)
+ cls.ffi, cls.lib = build_ffi(
+ module_prefix=cls._module_prefix,
+ modules=cls._modules,
+ pre_include=_OSX_PRE_INCLUDE,
+ post_include=_OSX_POST_INCLUDE,
+ libraries=libraries,
+ extra_compile_args=[],
+ extra_link_args=[]
+ )
res = cls.lib.Cryptography_add_osrandom_engine()
assert res != 0
diff --git a/cryptography/hazmat/bindings/utils.py b/cryptography/hazmat/bindings/utils.py
index 318b82bb..9d6956fb 100644
--- a/cryptography/hazmat/bindings/utils.py
+++ b/cryptography/hazmat/bindings/utils.py
@@ -20,7 +20,8 @@ import sys
import cffi
-def build_ffi(module_prefix, modules, pre_include, post_include, libraries):
+def build_ffi(module_prefix, modules, pre_include, post_include, libraries,
+ extra_compile_args, extra_link_args):
"""
Modules listed in ``modules`` should have the following attributes:
@@ -75,6 +76,8 @@ def build_ffi(module_prefix, modules, pre_include, post_include, libraries):
modulename=_create_modulename(cdef_sources, source, sys.version),
libraries=libraries,
ext_package="cryptography",
+ extra_compile_args=extra_compile_args,
+ extra_link_args=extra_link_args,
)
for name in modules: