Skip to content

Commit 61deb5f

Browse files
nitzmahonearigo
andcommitted
add yet another flag to recompile() to avoid calling ffiplatform (#81)
Co-authored-by: Armin Rigo <[email protected]> (cherry picked from commit 00cb9fc)
1 parent 1c292c1 commit 61deb5f

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

src/cffi/api.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -693,7 +693,8 @@ def emit_c_code(self, filename):
693693
raise TypeError("emit_c_code() is only for C extension modules, "
694694
"not for dlopen()-style pure Python modules")
695695
recompile(self, module_name, source,
696-
c_file=filename, call_c_compiler=False, **kwds)
696+
c_file=filename, call_c_compiler=False,
697+
uses_ffiplatform=False, **kwds)
697698

698699
def emit_python_code(self, filename):
699700
from .recompiler import recompile
@@ -705,7 +706,8 @@ def emit_python_code(self, filename):
705706
raise TypeError("emit_python_code() is only for dlopen()-style "
706707
"pure Python modules, not for C extension modules")
707708
recompile(self, module_name, source,
708-
c_file=filename, call_c_compiler=False, **kwds)
709+
c_file=filename, call_c_compiler=False,
710+
uses_ffiplatform=False, **kwds)
709711

710712
def compile(self, tmpdir='.', verbose=0, target=None, debug=None):
711713
"""The 'target' argument gives the final file name of the

src/cffi/recompiler.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1529,7 +1529,8 @@ def _patch_for_target(patchlist, target):
15291529

15301530
def recompile(ffi, module_name, preamble, tmpdir='.', call_c_compiler=True,
15311531
c_file=None, source_extension='.c', extradir=None,
1532-
compiler_verbose=1, target=None, debug=None, **kwds):
1532+
compiler_verbose=1, target=None, debug=None,
1533+
uses_ffiplatform=True, **kwds):
15331534
if not isinstance(module_name, str):
15341535
module_name = module_name.encode('ascii')
15351536
if ffi._windows_unicode:
@@ -1556,7 +1557,10 @@ def recompile(ffi, module_name, preamble, tmpdir='.', call_c_compiler=True,
15561557
else:
15571558
target = '*'
15581559
#
1559-
ext = ffiplatform.get_extension(ext_c_file, module_name, **kwds)
1560+
if uses_ffiplatform:
1561+
ext = ffiplatform.get_extension(ext_c_file, module_name, **kwds)
1562+
else:
1563+
ext = None
15601564
updated = make_c_source(ffi, module_name, preamble, c_file,
15611565
verbose=compiler_verbose)
15621566
if call_c_compiler:

0 commit comments

Comments
 (0)