Python: allow --no-build-isolation for pip install
This commit is contained in:
parent
931327df1f
commit
38a2703aa7
@ -264,14 +264,14 @@ module Language
|
||||
# Multiline strings are allowed and treated as though they represent
|
||||
# the contents of a `requirements.txt`.
|
||||
# @return [void]
|
||||
def pip_install(targets)
|
||||
def pip_install(targets, build_isolation: true)
|
||||
targets = Array(targets)
|
||||
targets.each do |t|
|
||||
if t.respond_to? :stage
|
||||
t.stage { do_install Pathname.pwd }
|
||||
t.stage { do_install(Pathname.pwd, build_isolation: build_isolation) }
|
||||
else
|
||||
t = t.lines.map(&:strip) if t.respond_to?(:lines) && t.include?("\n")
|
||||
do_install t
|
||||
do_install(t, build_isolation: build_isolation)
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -281,11 +281,11 @@ module Language
|
||||
#
|
||||
# @param (see #pip_install)
|
||||
# @return (see #pip_install)
|
||||
def pip_install_and_link(targets, link_manpages: false)
|
||||
def pip_install_and_link(targets, link_manpages: false, build_isolation: true)
|
||||
bin_before = Dir[@venv_root/"bin/*"].to_set
|
||||
man_before = Dir[@venv_root/"share/man/man*/*"].to_set if link_manpages
|
||||
|
||||
pip_install(targets)
|
||||
pip_install(targets, build_isolation: build_isolation)
|
||||
|
||||
bin_after = Dir[@venv_root/"bin/*"].to_set
|
||||
bin_to_link = (bin_after - bin_before).to_a
|
||||
@ -301,12 +301,15 @@ module Language
|
||||
|
||||
private
|
||||
|
||||
def do_install(targets)
|
||||
def do_install(targets, build_isolation: true)
|
||||
targets = Array(targets)
|
||||
@formula.system @venv_root/"bin/pip", "install",
|
||||
"-v", "--no-deps", "--no-binary", ":all:",
|
||||
"--use-feature=no-binary-enable-wheel-cache",
|
||||
"--ignore-installed", *targets
|
||||
args = [
|
||||
"-v", "--no-deps", "--no-binary", ":all:",
|
||||
"--use-feature=no-binary-enable-wheel-cache",
|
||||
"--ignore-installed"
|
||||
]
|
||||
args << "--no-build-isolation" if not build_isolation
|
||||
@formula.system @venv_root/"bin/pip", "install", args, *targets
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -67,6 +67,14 @@ describe Language::Python::Virtualenv::Virtualenv, :needs_python do
|
||||
|
||||
virtualenv.pip_install res
|
||||
end
|
||||
|
||||
it "works without build isolation" do
|
||||
expect(formula).to receive(:system)
|
||||
.with(dir/"bin/pip", "install", "-v", "--no-deps", "--no-binary", ":all:",
|
||||
"--use-feature=no-binary-enable-wheel-cache", "--ignore-installed", "--no-build-isolation", "foo")
|
||||
.and_return(true)
|
||||
virtualenv.pip_install("foo", build_isolation: false)
|
||||
end
|
||||
end
|
||||
|
||||
describe "#pip_install_and_link" do
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user