aboutsummaryrefslogtreecommitdiffstats
path: root/scons/wcesdk.py
diff options
context:
space:
mode:
authorJosé Fonseca <[email protected]>2008-07-24 20:09:54 +0900
committerJosé Fonseca <[email protected]>2008-07-24 21:24:58 +0900
commit4ec4ea14a587300041799c5269295ba7e160ab65 (patch)
tree7d6089511cc388f0b6260e2de088a7066aabd9fa /scons/wcesdk.py
parent101d1a658a614d1e2ec02b1e697f6161291af653 (diff)
scons: Lookup WINDDK and WINCE SDK directories in the registry.
Diffstat (limited to 'scons/wcesdk.py')
-rw-r--r--scons/wcesdk.py50
1 files changed, 34 insertions, 16 deletions
diff --git a/scons/wcesdk.py b/scons/wcesdk.py
index bdaab7d19fd..bf73c2d73f0 100644
--- a/scons/wcesdk.py
+++ b/scons/wcesdk.py
@@ -76,6 +76,27 @@ def get_wce500_paths(env):
exe_path = string.join(exe_paths, os.pathsep )
return (include_path, lib_path, exe_path)
+def get_wce600_root(env):
+ try:
+ return os.environ['_WINCEROOT']
+ except KeyError:
+ pass
+
+ if SCons.Util.can_read_reg:
+ key = r'SOFTWARE\Microsoft\Platform Builder\6.00\Directories\OS Install Dir'
+ try:
+ path, t = SCons.Util.RegGetValue(SCons.Util.HKEY_LOCAL_MACHINE, key)
+ except SCons.Util.RegError:
+ pass
+ else:
+ return path
+
+ default_path = os.path.join(r'C:\WINCE600', version)
+ if os.path.exists(default_path):
+ return default_path
+
+ return None
+
def get_wce600_paths(env):
"""Return a 3-tuple of (INCLUDE, LIB, PATH) as the values
of those three environment variables that should be set
@@ -87,16 +108,19 @@ def get_wce600_paths(env):
# See also C:\WINCE600\public\common\oak\misc\wince.bat
- os_version = os.environ.get('_winceosver', '600')
- wince_root = os.environ.get('_winceroot', r'C:\WINCE600')
- platform_root = os.environ.get('_platformroot', os.path.join(wince_root, 'platform'))
- sdk_root = os.environ.get('_sdkroot' ,os.path.join(wince_root, 'sdk'))
+ wince_root = get_wce600_root(env)
+ if wince_root is None:
+ raise SCons.Errors.InternalError, "Windows CE 6.0 SDK not found"
+
+ os_version = os.environ.get('_WINCEOSVER', '600')
+ platform_root = os.environ.get('_PLATFORMROOT', os.path.join(wince_root, 'platform'))
+ sdk_root = os.environ.get('_SDKROOT' ,os.path.join(wince_root, 'sdk'))
- platform_root = os.environ.get('_platformroot', os.path.join(wince_root, 'platform'))
- sdk_root = os.environ.get('_sdkroot' ,os.path.join(wince_root, 'sdk'))
+ platform_root = os.environ.get('_PLATFORMROOT', os.path.join(wince_root, 'platform'))
+ sdk_root = os.environ.get('_SDKROOT' ,os.path.join(wince_root, 'sdk'))
- host_cpu = os.environ.get('_hostcputype', 'i386')
- target_cpu = os.environ.get('_tgtcpu', 'x86')
+ host_cpu = os.environ.get('_HOSTCPUTYPE', 'i386')
+ target_cpu = os.environ.get('_TGTCPU', 'x86')
if env['debug']:
build = 'debug'
@@ -104,7 +128,7 @@ def get_wce600_paths(env):
build = 'retail'
try:
- project_root = os.environ['_projectroot']
+ project_root = os.environ['_PROJECTROOT']
except KeyError:
# No project root defined -- use the common stuff instead
project_root = os.path.join(wince_root, 'public', 'common')
@@ -147,12 +171,6 @@ def generate(env):
pass
def exists(env):
- if not msvc_sa.exits(env):
- return 0
- if not mslib_sa.exits(env):
- return 0
- if not mslink_sa.exits(env):
- return 0
- return 1
+ return get_wce600_root(env) is not None
# vim:set ts=4 sw=4 et: