diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2017-04-07 22:07:30 -0400 |
---|---|---|
committer | Jason R. Coombs <jaraco@jaraco.com> | 2017-04-07 22:17:52 -0400 |
commit | 934d6707b1d8c55c930d458e39b11038e9276a4d (patch) | |
tree | 851507e5eeeba26a8b04a9c0d1b4b4503c2a5250 /setuptools/msvc.py | |
parent | ac59ef12d16c13533ead6401bdb4727016be77e3 (diff) | |
download | external_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.py | 26 |
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: """ |