diff --git a/news/1264.bugfix.md b/news/1264.bugfix.md new file mode 100644 index 0000000000000000000000000000000000000000..b118fa0f9b7f0d07aa36970da9d670432bd186e4 --- /dev/null +++ b/news/1264.bugfix.md @@ -0,0 +1 @@ +Skip incompatible requirements when installing build dependencies. diff --git a/pdm/builders/base.py b/pdm/builders/base.py index 028819e571beaef2e89ef8a73e6715b2557d98cc..6420392815aa2ac49109cffec2dd9065695fd62b 100644 --- a/pdm/builders/base.py +++ b/pdm/builders/base.py @@ -254,8 +254,16 @@ class EnvBuilder: libs = self._prefix.lib_dirs + ([project_lib] if not self.isolated else []) if reqs: ws = WorkingSet(libs) + marker_env = self._env.marker_environment for req in reqs: parsed_req = parse_requirement(req) + if parsed_req.marker and not parsed_req.marker.evaluate(marker_env): + logger.debug( + "Skipping requirement %s: mismatching marker %s", + req, + parsed_req.marker, + ) + continue if parsed_req.identify() not in ws: missing.add(req) elif parsed_req.specifier and not parsed_req.specifier.contains(