summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Tool/msvs.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2006-02-12 19:56:03 (GMT)
committerSteven Knight <knight@baldmt.com>2006-02-12 19:56:03 (GMT)
commit92e52b195125e7fc89721570c0b9237105d635da (patch)
tree56208f374c81c91b572cd0fc3cf28223ef80a732 /src/engine/SCons/Tool/msvs.py
parent7bc5b0f51a17b8ea1e49cfe917a98610791d67aa (diff)
downloadSCons-92e52b195125e7fc89721570c0b9237105d635da.zip
SCons-92e52b195125e7fc89721570c0b9237105d635da.tar.gz
SCons-92e52b195125e7fc89721570c0b9237105d635da.tar.bz2
Add support for Visual Studio 2005 Professional. Windows portability fixes for various tests. (Baptiste Lepilleur)
Diffstat (limited to 'src/engine/SCons/Tool/msvs.py')
-rw-r--r--src/engine/SCons/Tool/msvs.py35
1 files changed, 28 insertions, 7 deletions
diff --git a/src/engine/SCons/Tool/msvs.py b/src/engine/SCons/Tool/msvs.py
index 074733a..f00aca9 100644
--- a/src/engine/SCons/Tool/msvs.py
+++ b/src/engine/SCons/Tool/msvs.py
@@ -1135,7 +1135,9 @@ def get_default_visualstudio_version(env):
if not env.has_key('MSVS') or not SCons.Util.is_Dict(env['MSVS']):
env['MSVS'] = {}
- if SCons.Util.can_read_reg:
+ if env['MSVS'].has_key('VERSIONS'):
+ versions = env['MSVS']['VERSIONS']
+ elif SCons.Util.can_read_reg:
v = get_visualstudio_versions()
if v:
versions = v
@@ -1275,11 +1277,28 @@ def get_visualstudio8_suites():
suites = []
- # ToDo: add tests for better suits than VS8 Express here.
+ # Detect Standard, Professional and Team edition
+ try:
+ idk = SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_LOCAL_MACHINE,
+ r'Software\Microsoft\VisualStudio\8.0')
+ id = SCons.Util.RegQueryValueEx(idk, 'InstallDir')
+ editions = { 'PRO': r'Setup\VS\Pro' } # ToDo: add standard and team editions
+ edition_name = 'STD'
+ for name, key_suffix in editions.items():
+ try:
+ idk = SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_LOCAL_MACHINE,
+ r'Software\Microsoft\VisualStudio\8.0' + '\\' + key_suffix )
+ edition_name = name
+ except SCons.Util.RegError:
+ pass
+ suites.append(edition_name)
+ except SCons.Util.RegError:
+ pass
- idk = SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_LOCAL_MACHINE,
- r'Software\Microsoft\VCExpress\8.0')
+ # Detect Expression edition
try:
+ idk = SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_LOCAL_MACHINE,
+ r'Software\Microsoft\VCExpress\8.0')
id = SCons.Util.RegQueryValueEx(idk, 'InstallDir')
suites.append('EXPRESS')
except SCons.Util.RegError:
@@ -1315,10 +1334,12 @@ def get_msvs_install_dirs(version = None):
version_num, suite = msvs_parse_version(version)
+ K = 'Software\\Microsoft\\VisualStudio\\' + str(version_num)
if (version_num >= 8.0):
- K = 'Software\\Microsoft\\VCExpress\\' + str(version_num)
- else:
- K = 'Software\\Microsoft\\VisualStudio\\' + str(version_num)
+ try:
+ SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_LOCAL_MACHINE, K )
+ except SCons.Util.RegError:
+ K = 'Software\\Microsoft\\VCExpress\\' + str(version_num)
# vc++ install dir
rv = {}