@@ -104,7 +104,7 @@ def dist(self, finder):
104
104
return list (pkg_resources .find_distributions (
105
105
self .req .source_dir ))[0 ]
106
106
107
- def prep_for_dist (self , finder ):
107
+ def prep_for_dist (self , finder , build_isolation ):
108
108
# FIXME:https://github.com/pypa/pip/issues/1112
109
109
pass
110
110
@@ -120,23 +120,23 @@ def dist(self, finder):
120
120
)
121
121
return dist
122
122
123
- def prep_for_dist (self , finder ):
123
+ def prep_for_dist (self , finder , build_isolation ):
124
124
# Before calling "setup.py egg_info", we need to set-up the build
125
125
# environment.
126
-
127
126
build_requirements , isolate = self .req .get_pep_518_info ()
127
+ should_isolate = build_isolation and isolate
128
128
129
129
if 'setuptools' not in build_requirements :
130
130
logger .warning (
131
131
"This version of pip does not implement PEP 516, so "
132
132
"it cannot build a wheel without setuptools. You may need to "
133
133
"upgrade to a newer version of pip." )
134
134
135
- if not isolate :
135
+ if not should_isolate :
136
136
self .req .build_env = NoOpBuildEnvironment (no_clean = False )
137
137
138
138
with self .req .build_env as prefix :
139
- if isolate :
139
+ if should_isolate :
140
140
_install_build_reqs (finder , prefix , build_requirements )
141
141
142
142
self .req .run_egg_info ()
@@ -157,7 +157,7 @@ class RequirementPreparer(object):
157
157
"""
158
158
159
159
def __init__ (self , build_dir , download_dir , src_dir , wheel_download_dir ,
160
- progress_bar ):
160
+ progress_bar , build_isolation ):
161
161
super (RequirementPreparer , self ).__init__ ()
162
162
163
163
self .src_dir = src_dir
@@ -181,6 +181,9 @@ def __init__(self, build_dir, download_dir, src_dir, wheel_download_dir,
181
181
182
182
self .progress_bar = progress_bar
183
183
184
+ # Is build isolation allowed?
185
+ self .build_isolation = build_isolation
186
+
184
187
@property
185
188
def _download_should_save (self ):
186
189
# TODO: Modify to reduce indentation needed
@@ -306,7 +309,7 @@ def prepare_linked_requirement(self, req, session, finder,
306
309
(req , exc , req .link )
307
310
)
308
311
abstract_dist = make_abstract_dist (req )
309
- abstract_dist .prep_for_dist (finder )
312
+ abstract_dist .prep_for_dist (finder , self . build_isolation )
310
313
if self ._download_should_save :
311
314
# Make a .zip of the source_dir we already created.
312
315
if req .link .scheme in vcs .all_schemes :
@@ -331,7 +334,7 @@ def prepare_editable_requirement(self, req, require_hashes, finder):
331
334
req .update_editable (not self ._download_should_save )
332
335
333
336
abstract_dist = make_abstract_dist (req )
334
- abstract_dist .prep_for_dist (finder )
337
+ abstract_dist .prep_for_dist (finder , self . build_isolation )
335
338
336
339
if self ._download_should_save :
337
340
req .archive (self .download_dir )
0 commit comments