netframework.py (SCons-4.3.0) | : | netframework.py (SCons-4.4.0) | ||
---|---|---|---|---|
# MIT License | ||||
# | # | |||
# __COPYRIGHT__ | # Copyright The SCons Foundation | |||
# | # | |||
# Permission is hereby granted, free of charge, to any person obtaining | # Permission is hereby granted, free of charge, to any person obtaining | |||
# a copy of this software and associated documentation files (the | # a copy of this software and associated documentation files (the | |||
# "Software"), to deal in the Software without restriction, including | # "Software"), to deal in the Software without restriction, including | |||
# without limitation the rights to use, copy, modify, merge, publish, | # without limitation the rights to use, copy, modify, merge, publish, | |||
# distribute, sublicense, and/or sell copies of the Software, and to | # distribute, sublicense, and/or sell copies of the Software, and to | |||
# permit persons to whom the Software is furnished to do so, subject to | # permit persons to whom the Software is furnished to do so, subject to | |||
# the following conditions: | # the following conditions: | |||
# | # | |||
# The above copyright notice and this permission notice shall be included | # The above copyright notice and this permission notice shall be included | |||
# in all copies or substantial portions of the Software. | # in all copies or substantial portions of the Software. | |||
# | # | |||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY | |||
# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE | # KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE | |||
# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | |||
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE | # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE | |||
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | |||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | |||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" | """ | |||
MS Compilers: .Net Framework support | ||||
__doc__ = """ | ||||
""" | """ | |||
import os | import os | |||
import re | import re | |||
import SCons.Util | ||||
from .common import read_reg, debug | from .common import read_reg, debug | |||
# Original value recorded by dcournapeau | # Original value recorded by dcournapeau | |||
_FRAMEWORKDIR_HKEY_ROOT = r'Software\Microsoft\.NETFramework\InstallRoot' | _FRAMEWORKDIR_HKEY_ROOT = r'Software\Microsoft\.NETFramework\InstallRoot' | |||
# On SGK's system | # On SGK's system | |||
_FRAMEWORKDIR_HKEY_ROOT = r'Software\Microsoft\Microsoft SDKs\.NETFramework\v2.0 \InstallationFolder' | _FRAMEWORKDIR_HKEY_ROOT = r'Software\Microsoft\Microsoft SDKs\.NETFramework\v2.0 \InstallationFolder' | |||
def find_framework_root(): | def find_framework_root(): | |||
# XXX: find it from environment (FrameworkDir) | # XXX: find it from environment (FrameworkDir) | |||
try: | try: | |||
froot = read_reg(_FRAMEWORKDIR_HKEY_ROOT) | froot = read_reg(_FRAMEWORKDIR_HKEY_ROOT) | |||
debug("Found framework install root in registry: {}".format(froot)) | debug("Found framework install root in registry: %s", froot) | |||
except OSError: | except OSError: | |||
debug("Could not read reg key {}".format(_FRAMEWORKDIR_HKEY_ROOT)) | debug("Could not read reg key %s", _FRAMEWORKDIR_HKEY_ROOT) | |||
return None | return None | |||
if not os.path.exists(froot): | if not os.path.exists(froot): | |||
debug("{} not found on fs".format(froot)) | debug("%s not found on fs", froot) | |||
return None | return None | |||
return froot | return froot | |||
def query_versions(): | def query_versions(): | |||
froot = find_framework_root() | froot = find_framework_root() | |||
if froot: | if froot: | |||
contents = os.listdir(froot) | contents = os.listdir(froot) | |||
l = re.compile('v[0-9]+.*') | l = re.compile('v[0-9]+.*') | |||
End of changes. 7 change blocks. | ||||
8 lines changed or deleted | 7 lines changed or added |