Index: build/SConscript.main |
=================================================================== |
--- build/SConscript.main (revision 5681) |
+++ build/SConscript.main (working copy) |
@@ -35,6 +35,9 @@ |
# All supported system libraries, for the help message |
all_system_libs = [], |
+ CHROME_BUILD_TYPE = os.environ.get('CHROME_BUILD_TYPE', ''), |
+ CHROMIUM_BUILD = os.environ.get('CHROMIUM_BUILD', ''), |
+ |
CHROME_SRC_DIR = '$MAIN_DIR/..', |
DESTINATION_ROOT = '$MAIN_DIR/Hammer', |
@@ -160,6 +163,9 @@ |
# Use timestamps change, followed by MD5 for speed |
root_env.Decider('MD5-timestamp') |
+# Incorporate settings that should apply globally (primarily to provide |
+# an obvious place for developmental experimentation). |
+root_env.ApplySConscript(['$CHROME_SRC_DIR/build/common.scons']) |
# The list of all leaf (fully described) environments. |
environment_list = [] |
@@ -273,24 +279,24 @@ |
# Windows specific |
windows_env = root_env.Clone() |
-environment_list.append(windows_env) |
windows_env.Tool('target_platform_windows') |
-windows_env.Tool('target_debug') |
windows_env.Tool('component_targets_msvs') # Per target project support. |
windows_env.Tool('midl') |
-windows_env.Replace( |
- BUILD_TYPE = 'debug-windows', |
- BUILD_TYPE_DESCRIPTION = 'Windows debug build', |
-) |
-windows_env.Append(BUILD_GROUPS = ['default']) |
-# TODO(bradnelson): this is needed for now because target_platform_windows |
-# has OS_WINDOWS defined in a weird way. |
-windows_env.FilterOut(CPPDEFINES = ['OS_WINDOWS=OS_WINDOWS']) |
+# TODO(bradnelson): target_platform_windows defines a whole bunch of |
+# flags that we don't care about, including defining OS_WINDOWS in a |
+# way that we don't want, and (most especially) adding *_DEBUG and |
+# *_OPTIMIZED constructionv variables that add magic values to |
+# CCFLAGS. We override the normal variables (CPPDEFINES, CCFLAGS, |
+# LINKFLAGS, ARFLAGS) below, but get rid of the special Hammer ones |
+# here, until Hammer can be made a little nicer about htis. |
+del windows_env['CCFLAGS_DEBUG'] |
+del windows_env['LINKFLAGS_DEBUG'] |
+del windows_env['CCFLAGS_OPTIMIZED'] |
+ |
windows_env['PDB'] = '${TARGET.base}.pdb' |
- |
# TODO(bradnelson): this should not need to be gated on host platform. |
if root_env['PLATFORM'] in ['win32', 'cygwin']: |
msvs_env = Environment(tools=['msvc', 'mslink', 'msvs'])['ENV'] |
@@ -318,110 +324,56 @@ |
MSVS_ENV = msvs_env, |
YACC = '$CYGWIN_BIN_DIR/bison.exe', |
-) |
-windows_env.Append( |
ARFLAGS = [ |
'/nologo', |
], |
CCFLAGS = [ |
'/nologo', |
- |
- '/Od', # no optimization |
- |
- '/RTC1', |
- '/MTd', # static link to crt, and debug version |
- '/Gy', |
- '/GR-', |
- |
- '/W3', |
- |
- '/Z7', |
- |
'/errorReport:prompt', |
- |
- '/wd4503', |
- '/wd4819', |
], |
CPPDEFINES = [ |
- '_CRT_SECURE_NO_DEPRECATE', |
- '_CRT_NONSTDC_NO_WARNINGS', |
- '_CRT_NONSTDC_NO_DEPRECATE', |
- '_SCL_SECURE_NO_DEPRECATE', |
- |
- '_DEBUG', |
- |
- '_CRT_RAND_S', |
- ('_WIN32_WINNT', '0x0600'), |
- ('WINVER', '0x0600'), |
- 'WIN32', |
- '_WINDOWS', |
- ('_HAS_EXCEPTIONS', 0), |
- 'NOMINMAX', |
'_UNICODE', |
'UNICODE', |
- |
- 'CERT_CHAIN_PARA_HAS_EXTRA_FIELDS', |
- 'WIN32_LEAN_AND_MEAN', |
], |
- CPPPATH = [ |
- '$PLATFORMSDK_VISTA/files/Include', |
- '$PLATFORMSDK_VISTA/files/VC/INCLUDE', |
- '$VISUAL_STUDIO/VC/atlmfc/include', |
- ], |
LIBS = [ |
'advapi32.lib', |
'comdlg32.lib', |
'gdi32.lib', |
'kernel32.lib', |
- 'msimg32.lib', |
'odbc32.lib', |
'odbccp32.lib', |
'ole32.lib', |
'oleaut32.lib', |
- 'psapi.lib', |
'shell32.lib', |
'user32.lib', |
- 'usp10.lib', |
'uuid.lib', |
- 'version.lib', |
- 'wininet.lib', |
'winspool.lib', |
- 'ws2_32.lib', |
'DelayImp.lib', |
], |
LINKFLAGS = [ |
'/nologo', |
- '/DEBUG', |
], |
ICU_LIBS = ['icu'], |
) |
-windows_env.Append( |
- LIBPATH = [ |
- '$PLATFORMSDK_VISTA/files/Lib', |
- '$PLATFORMSDK_VISTA/files/VC/LIB', |
- '$VISUAL_STUDIO/VC/atlmfc/lib', |
- ], |
-) |
- |
-# TODO(sgk): remove once we upgrade to SCons 0.98.4 |
-for var in ['INCLUDE', 'LIB', 'PATH']: |
- msvs_env[var] = msvs_env[var].split('|', 1)[0] |
- windows_env['ENV'][var] = windows_env['ENV'][var].split('|', 1)[0] |
- |
# Force scons to handle long include lines correctly. |
pchcom_fixed = windows_env['PCHCOM'] |
pchcom_fixed = pchcom_fixed.replace('${TARGETS[0]}', '$TARGET') |
pchcom_fixed = pchcom_fixed.replace('${TARGETS[1]}', '$TARGETS1') |
+# Below, we'll redefine $CXXFLAGS so its expansion doesn't include |
+# $CCFLAGS. Modify $PCHCOM, which was relying on this fact, so |
+# that $CCFLAGS still shows up in precompiled header compilations. |
+pchcom_fixed = pchcom_fixed.replace('$CXXFLAGS', '$CXXFLAGS $CCFLAGS') |
+ |
windows_env.Replace( |
CCCOM = "${TEMPFILE('%s')}" % windows_env['CCCOM'], |
CXXCOM = "${TEMPFILE('%s')}" % windows_env['CXXCOM'], |
@@ -429,6 +381,11 @@ |
SHCXXCOM = "${TEMPFILE('%s')}" % windows_env['SHCXXCOM'], |
PCHCOM = "${TEMPFILE('%s')}" % pchcom_fixed, |
TARGETS1 = '${TARGETS[1]}', |
+ |
+ # The SCons default for $CXXFLAGS contains $CCFLAGS, which is |
+ # also on the $CCCOM command line string separately. Redefine |
+ # $CXXFLAGS to avoid the duplication |
+ CXXFLAGS = '$( /TP $)', |
) |
windows_env['ENV']['PROGRAMFILES'] = os.environ.get('PROGRAMFILES', '') |
@@ -437,7 +394,25 @@ |
windows_env.AppendENVPath('PATH', ';C:\\WINDOWS\\system32') |
+windows_dbg = windows_env.Clone() |
+environment_list.append(windows_dbg) |
+windows_dbg.Replace( |
+ BUILD_TYPE = 'dbg', |
+ BUILD_TYPE_DESCRIPTION = 'Windows debug build', |
+) |
+windows_dbg.Tool('target_debug') |
+windows_dbg.ApplySConscript(['$CHROME_SRC_DIR/build/debug.scons']) |
+windows_dbg.Append(BUILD_GROUPS = ['default']) |
+windows_opt = windows_env.Clone() |
+environment_list.append(windows_opt) |
+windows_opt.Replace( |
+ BUILD_TYPE = 'opt', |
+ BUILD_TYPE_DESCRIPTION = 'Windows optimized build', |
+) |
+windows_opt.Tool('target_optimized') |
+windows_opt.ApplySConscript(['$CHROME_SRC_DIR/build/release.scons']) |
+ |
# -------------------------------------------------------------------------- |
# Linux specific |