aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/msvc.py
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2017-04-07 22:07:30 -0400
committerJason R. Coombs <jaraco@jaraco.com>2017-04-07 22:17:52 -0400
commit934d6707b1d8c55c930d458e39b11038e9276a4d (patch)
tree851507e5eeeba26a8b04a9c0d1b4b4503c2a5250 /setuptools/msvc.py
parentac59ef12d16c13533ead6401bdb4727016be77e3 (diff)
downloadexternal_python_setuptools-934d6707b1d8c55c930d458e39b11038e9276a4d.tar.gz
external_python_setuptools-934d6707b1d8c55c930d458e39b11038e9276a4d.tar.bz2
external_python_setuptools-934d6707b1d8c55c930d458e39b11038e9276a4d.zip
Extract method for finding .Net in the framework folder. Ref #995.
Diffstat (limited to 'setuptools/msvc.py')
-rw-r--r--setuptools/msvc.py26
1 files changed, 15 insertions, 11 deletions
diff --git a/setuptools/msvc.py b/setuptools/msvc.py
index cf556ad3..1588cd2e 100644
--- a/setuptools/msvc.py
+++ b/setuptools/msvc.py
@@ -753,17 +753,9 @@ class SystemInfo:
Platform number of bits: 32 or 64.
"""
# Find actual .NET version in registry
- ver = self.ri.lookup(self.ri.vc, 'frameworkver%d' % bits) or ''
-
- # If nothing in registry, look in Framework folder
- if not ver:
- dot_net_dir = (self.FrameworkDir32 if bits == 32 else
- self.FrameworkDir64)
- for dir_name in reversed(os.listdir(dot_net_dir)):
- if (os.path.isdir(os.path.join(dot_net_dir, dir_name)) and
- dir_name.startswith('v')):
- ver = dir_name
- break
+ reg_ver = self.ri.lookup(self.ri.vc, 'frameworkver%d' % bits)
+ dot_net_dir = getattr(self, 'FrameworkDir%d' % bits)
+ ver = reg_ver or self._find_dot_net_in(dot_net_dir) or ''
# Set .NET versions for specified MSVC++ version
if self.vc_ver >= 12.0:
@@ -777,6 +769,18 @@ class SystemInfo:
frameworkver = ('v3.0', 'v2.0.50727')
return frameworkver
+ def _find_dot_net_in(self, dot_net_dir):
+ """
+ Find .Net in the Framework folder
+ """
+ matching_dirs = (
+ dir_name
+ for dir_name in reversed(os.listdir(dot_net_dir))
+ if os.path.isdir(os.path.join(dot_net_dir, dir_name))
+ and dir_name.startswith('v')
+ )
+ return next(matching_dirs, None)
+
class EnvironmentInfo:
"""