0

Fixes and enhancements

* Configurable CHROME_BUILD_TYPE command line or external environment
  variable for selecting appropriate release_impl*.scons settings
  (_checksenabled, _coverage, _dom_stats, _official, _purify).
* Configurable CHROMIUM_BUILD command line or external environment
  variable for selecting appropriate chromium_build*.scons settings
  (_google_chrome).
* Configurable /INCREMENTAL linking via command line or external
  environment variable ($INCREMENTAL), through appropriate setting
  of an internal $CHROMIUM_INCREMENTAL_FLAGS construction variable.
* Full link of release builds by default.
* Alphabetize *.scons files in the mac_env.FilterOut() list.
* Explicitly set _checksenabled.scons link flags.
Review URL: http://codereview.chromium.org/13039

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6210 0039d316-1c4b-4281-b951-d872f2087c98
This commit is contained in:
sgk@google.com
2008-12-02 07:36:03 +00:00
parent 7ae14832d7
commit 527c739c43
9 changed files with 77 additions and 37 deletions

@ -25,12 +25,6 @@ if env['PLATFORM'] in ('posix', 'darwin'):
'$LIBEVENT_DIR/using_libevent.scons',
])
env.Prepend(
CPPDEFINES = [
'GOOGLE_CHROME_BUILD',
],
)
if env['PLATFORM'] == 'win32':
env.Prepend(
CCFLAGS = [

@ -19,19 +19,43 @@ default_warnings = ['no-no-parallel-support']
SetOption('warn', default_warnings + GetOption('warn'))
chrome_build_type = ARGUMENTS.get('CHROME_BUILD_TYPE')
if chrome_build_type is None:
chrome_build_type = os.environ.get('CHROME_BUILD_TYPE', ''),
chromium_build = ARGUMENTS.get('CHROMIUM_BUILD')
if chromium_build is None:
chromium_build = os.environ.get('CHROMIUM_BUILD', ''),
# Variables for controlling the build.
#
# The following variables can be set either on the command line
# or in the external environment when executing SCons, with the
# command line overriding any environment setting.
#
# CHROME_BUILD_TYPE
# When set, applies settings from the file
# build\internal\release_impl${CHROME_BUILD_TYPE}.scons
# to be applied to the construction environment.
#
# CHROMIUM_BUILD
# When set, applies settings from the file
# build\internal\chromium_build${CHROMIUM_BUILD}.scons
# to be applied to the construction environment.
#
# INCREMENTAL
# Controls whether or not libraries and executable programs are
# linked incrementally. When set to any True value (1, T, y, True),
# uses the /INCREMENTAL flag to the Microsoft linker. An
# explicit False value (0, f, N, false) uses the /INCREMENTAL:NO.
# When not set, the default is to link debug (developer) builds
# incrementally, but release builds use full links.
#
clvars = Variables('scons.opts', ARGUMENTS)
clvars.AddVariables(
('CHROME_BUILD_TYPE', '', os.environ.get('CHROME_BUILD_TYPE', '')),
('CHROMIUM_BUILD', '', os.environ.get('CHROMIUM_BUILD', '')),
BoolVariable('INCREMENTAL', '', os.environ.get('INCREMENTAL')),
)
root_env = Environment(
tools = ['component_setup',
'chromium_builders',
'chromium_load_component'],
variables = clvars,
# Requested list of system (shared) libraries, from the comma separated
# SYSTEM_LIBS command-line argument
@ -39,9 +63,6 @@ root_env = Environment(
# All supported system libraries, for the help message
all_system_libs = [],
CHROME_BUILD_TYPE = chrome_build_type,
CHROMIUM_BUILD = chromium_build,
CHROME_SRC_DIR = '$MAIN_DIR/..',
DESTINATION_ROOT = '$MAIN_DIR/Hammer',
@ -214,6 +235,7 @@ del windows_env['LINKFLAGS_DEBUG']
del windows_env['CCFLAGS_OPTIMIZED']
windows_env['PDB'] = '${TARGET.base}.pdb'
windows_env['MSVC_BATCH'] = True
# TODO(bradnelson): this should not need to be gated on host platform.
if root_env['PLATFORM'] in ['win32', 'cygwin']:
@ -504,19 +526,19 @@ mac_env.Replace(
mac_env.FilterOut(
BUILD_SCONSCRIPTS = [
'$BSPATCH_DIR/bspatch.scons',
'$BSDIFF_DIR/bsdiff.scons',
'$LIBJPEG_DIR/SConscript',
'$LIBXML_DIR/SConscript',
'$LIBXSLT_DIR/SConscript',
'$BREAKPAD_DIR/SConscript',
'$CHROME_DIR/SConscript',
'$BSDIFF_DIR/bsdiff.scons',
'$BSPATCH_DIR/bspatch.scons',
'$CHROME_DIR/chrome.scons',
'$GEARS_DIR/SConscript',
'$GOOGLE_UPDATE_DIR/SConscript',
'$LIBJPEG_DIR/libjpeg.scons',
'$LIBXML_DIR/libxml.scons',
'$LIBXSLT_DIR/libxslt.scons',
'$RLZ_DIR/SConscript',
'$SANDBOX_DIR/sandbox.scons',
'build/SConscript.v8',
'$WEBKIT_DIR/SConscript',
'build/SConscript.v8',
],
)

@ -22,6 +22,12 @@ env.Append(
)
if env['PLATFORM'] == 'win32':
if env.get('INCREMENTAL') is None:
# INCREMENTAL was not specified on the command line or in the
# external environment; debug default is incremental link.
env['INCREMENTAL'] = True
env['CHROMIUM_INCREMENTAL_FLAGS'] = '/INCREMENTAL'
env.Append(
CCFLAGS = [
'/Od', # VCCLCompilerTool.Optimization="0"
@ -29,7 +35,6 @@ if env['PLATFORM'] == 'win32':
'/MTd', # VCCLCompilerTool.RuntimeLibrary="1"
],
LINKFLAGS = [
'/INCREMENTAL', # VCLinkerTool.LinkIncremental="2"
'/DEBUG',
],
)

@ -17,10 +17,17 @@ env.Append(
],
LINKFLAGS = [
'$CHROMIUM_LINK_OPT_FLAGS',
'$CHROMIUM_INCREMENTAL_FLAGS',
],
)
if env['PLATFORM'] == 'win32':
incremental = env.get('INCREMENTAL')
if incremental is not None:
if incremental:
env['CHROMIUM_INCREMENTAL_FLAGS'] = '/INCREMENTAL'
else:
env['CHROMIUM_INCREMENTAL_FLAGS'] = '/INCREMENTAL:NO'
env.Append(
ARFLAGS = [
'/ignore:4221',

@ -21,6 +21,12 @@ env.Append(
)
if env.Bit('windows'):
if env.get('INCREMENTAL') is None:
# INCREMENTAL was not specified on the command line or in the
# external environment; release default is full link.
env['INCREMENTAL'] = False
env['CHROMIUM_INCREMENTAL_FLAGS'] = '/INCREMENTAL:NO'
env.Replace(
CHROMIUM_CC_OPT_FLAGS = [
'/O2', # VCCLCompilerTool.Optimization="2"

@ -19,6 +19,13 @@ env.Append(
)
if env.Bit('windows'):
env.Replace(
CHROMIUM_LINK_OPT_FLAGS = [
'/OPT:REF', # VCLinkerTool.OptimizeReferences="2"
'/OPT:NOICF', # VCLinkerTool.EnableCOMDATFolding="2"
'/OPT:NOWIN98', # VCLinkerTool.OptimizeForWindows98="1"
],
),
env.Append(
CCFLAGS = [
'/Oy-',
@ -26,8 +33,5 @@ if env.Bit('windows'):
],
LINKFLAGS = [
'/INCREMENTAL:NO', # VCLinkerTool.LinkIncremental="1"
'/OPT:REF', # VCLinkerTool.OptimizeReferences="2"
'/OPT:ICF', # VCLinkerTool.EnableCOMDATFolding="2"
'/OPT:NOWIN98', # VCLinkerTool.OptimizeForWindows98="1"
],
)

@ -25,9 +25,6 @@ env.Prepend(
# TODO(port)
if env_res['PLATFORM'] == 'win32':
env_res.Append(
CPPDEFINES = [
'GOOGLE_CHROME_BUILD',
],
CPPPATH = [
'.',
'$CHROME_SRC_DIR',
@ -75,7 +72,6 @@ env_dll.Prepend(
'U_STATIC_IMPLEMENTATION',
'PNG_USER_CONFIG',
'CHROME_PNG_WRITE_SUPPORT',
'GOOGLE_CHROME_BUILD',
'LIBXSLT_STATIC',
'LIBXML_STATIC',
'_WINDLL',

@ -35,9 +35,6 @@ env.Prepend(
# generated from history/history_indexer.idl.
'history',
],
CPPDEFINES = [
'GOOGLE_CHROME_BUILD',
],
)
if env['PLATFORM'] == 'win32':

@ -10,11 +10,17 @@ customization we need to make to the different things we build.
def generate(env):
def ChromeProgram(env, *args, **kw):
return env.ComponentProgram(*args, **kw)
result = env.ComponentProgram(*args, **kw)
if env.get('INCREMENTAL'):
env.Precious(result)
return result
env.AddMethod(ChromeProgram)
def ChromeTestProgram(env, *args, **kw):
return env.ComponentTestProgram(*args, **kw)
result = env.ComponentTestProgram(*args, **kw)
if env.get('INCREMENTAL'):
env.Precious(*result)
return result
env.AddMethod(ChromeTestProgram)
def ChromeStaticLibrary(env, *args, **kw):
@ -24,7 +30,10 @@ def generate(env):
def ChromeSharedLibrary(env, *args, **kw):
kw['COMPONENT_STATIC'] = False
return [env.ComponentLibrary(*args, **kw)[0]]
result = [env.ComponentLibrary(*args, **kw)[0]]
if env.get('INCREMENTAL'):
env.Precious(result)
return result
env.AddMethod(ChromeSharedLibrary)
def ChromeObject(env, *args, **kw):