summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Fonseca <[email protected]>2008-06-23 12:49:45 +0900
committerJosé Fonseca <[email protected]>2008-06-23 19:44:37 +0900
commitf78cc24c4b4f253223044b7019daf3e954f38a07 (patch)
tree9f7b34997f0a887b693f6aa27fb6d8e8fe75167f
parentf08da6b8214f1bf1d4a33e19dac4eeb155302481 (diff)
scons: Update to target WinCE 6.0.
-rw-r--r--scons/gallium.py31
-rw-r--r--scons/wcesdk.py (renamed from scons/evc.py)62
2 files changed, 78 insertions, 15 deletions
diff --git a/scons/gallium.py b/scons/gallium.py
index 1787adb3123..217a1d61d36 100644
--- a/scons/gallium.py
+++ b/scons/gallium.py
@@ -94,7 +94,7 @@ def generate(env):
if platform == 'winddk':
env.Tool('winddk')
elif platform == 'wince':
- env.Tool('evc')
+ env.Tool('wcesdk')
else:
env.Tool('default')
@@ -165,16 +165,20 @@ def generate(env):
cppdefines += [('DBG', 1)]
if platform == 'wince':
cppdefines += [
- ('_WIN32_WCE', '500'),
- 'WCE_PLATFORM_STANDARDSDK_500',
- '_i386_',
- ('UNDER_CE', '500'),
+ '_CRT_SECURE_NO_DEPRECATE',
+ '_USE_32BIT_TIME_T',
'UNICODE',
'_UNICODE',
- '_X86_',
+ ('UNDER_CE', '600'),
+ ('_WIN32_WCE', '0x600'),
+ 'WINCEOEM',
+ 'WINCEINTERNAL',
+ 'WIN32',
+ 'STRICT',
'x86',
- '_USRDLL',
- 'TEST_EXPORTS' ,
+ '_X86_',
+ 'INTERNATIONAL',
+ ('INTLMSG_CODEPAGE', '1252'),
]
if platform == 'windows':
cppdefines += ['PIPE_SUBSYSTEM_WINDOWS_USER']
@@ -262,9 +266,18 @@ def generate(env):
#'/Z7', #enable old-style debug info
]
if platform == 'wince':
+ # See also C:\WINCE600\public\common\oak\misc\makefile.def
cflags += [
- '/Gs8192',
'/GF', # enable read-only string pooling
+ '/GR-', # disable C++ RTTI
+ '/GS', # enable security checks
+ # Allow disabling language conformance to maintain backward compat
+ #'/Zc:wchar_t-', # don't force wchar_t as native type, instead of typedef
+ #'/Zc:forScope-', # don't enforce Standard C++ for scoping rules
+ #'/wd4867',
+ #'/wd4430',
+ #'/MT',
+ #'/U_MT',
]
# Automatic pdb generation
# See http://scons.tigris.org/issues/show_bug.cgi?id=1656
diff --git a/scons/evc.py b/scons/wcesdk.py
index 22a92607e50..bdaab7d19fd 100644
--- a/scons/evc.py
+++ b/scons/wcesdk.py
@@ -1,6 +1,6 @@
-"""evc
+"""wcesdk
-Tool-specific initialization for Microsoft eMbedded Visual C++.
+Tool-specific initialization for Microsoft Window CE SDKs.
"""
@@ -44,7 +44,7 @@ import msvc_sa
import mslib_sa
import mslink_sa
-def get_evc_paths(env, version=None):
+def get_wce500_paths(env):
"""Return a 3-tuple of (INCLUDE, LIB, PATH) as the values
of those three environment variables that should be set
in order to execute the MSVC tools properly."""
@@ -76,6 +76,58 @@ def get_evc_paths(env, version=None):
exe_path = string.join(exe_paths, os.pathsep )
return (include_path, lib_path, exe_path)
+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
+ in order to execute the MSVC tools properly."""
+
+ exe_paths = []
+ lib_paths = []
+ include_paths = []
+
+ # 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'))
+
+ 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')
+
+ if env['debug']:
+ build = 'debug'
+ else:
+ build = 'retail'
+
+ try:
+ 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')
+
+ exe_paths.append( os.path.join(sdk_root, 'bin', host_cpu) )
+ exe_paths.append( os.path.join(sdk_root, 'bin', host_cpu, target_cpu) )
+ exe_paths.append( os.path.join(wince_root, 'common', 'oak', 'bin', host_cpu) )
+ exe_paths.append( os.path.join(wince_root, 'common', 'oak', 'misc') )
+
+ include_paths.append( os.path.join(project_root, 'sdk', 'inc') )
+ include_paths.append( os.path.join(project_root, 'oak', 'inc') )
+ include_paths.append( os.path.join(project_root, 'ddk', 'inc') )
+ include_paths.append( os.path.join(sdk_root, 'CE', 'inc') )
+
+ lib_paths.append( os.path.join(project_root, 'sdk', 'lib', target_cpu, build) )
+ lib_paths.append( os.path.join(project_root, 'oak', 'lib', target_cpu, build) )
+ lib_paths.append( os.path.join(project_root, 'ddk', 'lib', target_cpu, build) )
+
+ include_path = string.join( include_paths, os.pathsep )
+ lib_path = string.join(lib_paths, os.pathsep )
+ exe_path = string.join(exe_paths, os.pathsep )
+ return (include_path, lib_path, exe_path)
+
def generate(env):
msvc_sa.generate(env)
@@ -86,10 +138,8 @@ def generate(env):
env['ENV'] = {}
try:
- include_path, lib_path, exe_path = get_evc_paths(env)
+ include_path, lib_path, exe_path = get_wce600_paths(env)
- # since other tools can set these, we just make sure that the
- # relevant stuff from WINDDK is in there somewhere.
env.PrependENVPath('INCLUDE', include_path)
env.PrependENVPath('LIB', lib_path)
env.PrependENVPath('PATH', exe_path)