Skip to content

Commit

Permalink
Merge pull request #6305 from pfmoore/pep517_build_options
Browse files Browse the repository at this point in the history
Reject --build-options for PEP 517 builds
  • Loading branch information
pfmoore authored Feb 27, 2019
2 parents 62cfaf0 + 8b7c23d commit c9df690
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 0 deletions.
2 changes: 2 additions & 0 deletions news/6305.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Using ``--build-options`` in a PEP 517 build now fails with an error,
rather than silently ignoring the option.
5 changes: 5 additions & 0 deletions src/pip/_internal/wheel.py
Original file line number Diff line number Diff line change
Expand Up @@ -910,6 +910,11 @@ def _build_one_pep517(self, req, tempd, python_tag=None):
Returns path to wheel if successfully built. Otherwise, returns None.
"""
assert req.metadata_directory is not None
if self.build_options:
# PEP 517 does not support --build-options
logger.error('Cannot build wheel for %s using PEP 517 when '
'--build-options is present' % (req.name,))
return None
try:
req.spin_message = 'Building wheel for %s (PEP 517)' % (req.name,)
logger.debug('Destination directory: %s', tempd)
Expand Down
14 changes: 14 additions & 0 deletions tests/functional/test_pep517.py
Original file line number Diff line number Diff line change
Expand Up @@ -198,3 +198,17 @@ def test_explicit_setuptools_backend(script, tmpdir, data, common_wheels):
project_dir,
)
result.assert_installed(name, editable=False)


def test_pep517_and_build_options(script, tmpdir, data, common_wheels):
"""Backend generated requirements are installed in the build env"""
project_dir, name = make_pyproject_with_setup(tmpdir)
result = script.pip(
'wheel', '--wheel-dir', tmpdir,
'--build-option', 'foo',
'-f', common_wheels,
project_dir,
expect_error=True
)
assert 'Cannot build wheel' in result.stderr
assert 'when --build-options is present' in result.stderr

0 comments on commit c9df690

Please sign in to comment.