diff options
author | sgk@google.com <sgk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-02 21:08:06 +0000 |
---|---|---|
committer | sgk@google.com <sgk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-10-02 21:08:06 +0000 |
commit | 1de8c2bb57349ddc8773e4a659ea0c9c18ee61e1 (patch) | |
tree | ce940b89b24f1d35ea87ff08b77e20a22b846f0d /build | |
parent | e94e20d82b671fe026fd84301627ccbb4c6ab403 (diff) | |
download | chromium_src-1de8c2bb57349ddc8773e4a659ea0c9c18ee61e1.zip chromium_src-1de8c2bb57349ddc8773e4a659ea0c9c18ee61e1.tar.gz chromium_src-1de8c2bb57349ddc8773e4a659ea0c9c18ee61e1.tar.bz2 |
Re-catch-up SCons webkit build (r2734) plus:
* Have v8 build v8.lib with snapshot=off.
* Call the v8 build again to build copies of libraries-empty.obj
and snapshot.obj with which we build v8_snapshot.lib.
Review URL: http://codereview.chromium.org/6403
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2810 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'build')
-rw-r--r-- | build/SConscript.v8 | 84 |
1 files changed, 51 insertions, 33 deletions
diff --git a/build/SConscript.v8 b/build/SConscript.v8 index ddf5cea..8eeef09 100644 --- a/build/SConscript.v8 +++ b/build/SConscript.v8 @@ -4,48 +4,68 @@ Import('env') -env = env.Clone() +# Grab the -j flag from the outer environment, if available. +try: + cpus = env.GetOption('num_jobs') + cpu_flag = ' -j%d' % cpus +except AttributeError: + cpu_flag = '' + +env = env.Clone( + V8_MODE = 'release', + V8_SRC_DIR = '#/../v8', + V8_MODE_DIR = '$V8_SRC_DIR/obj/$V8_MODE', + V8_SCONS_COM = 'cd ../v8 && $PYTHON $SCONS $SCONSFLAGS mode=$V8_MODE', + SCONS='../third_party/scons/scons.py', + SCONSFLAGS = ('-Q ' + '--warn=no-deprecated ' + '--warn=no-no-parallel-support' + cpu_flag), +) -# Rather than build v8 here, we just shell out to v8's own SCons-based -# build, since their build system is complicated. +# Rather than build v8 with our own commands, we just shell out to v8's +# own SCons-based build, since their build system is complicated. # This SConscript just declares dependencies on the outputs of that build. -mksnapshot_bin = env.File('#/../v8/obj/release/mksnapshot${PROGSUFFIX}') -v8_bin = env.File('#/../v8/shell${PROGSUFFIX}') -v8_lib = env.File('#/../v8/${LIBPREFIX}v8${LIBSUFFIX}'), +mksnapshot_exe = env.File('$V8_MODE_DIR/mksnapshot${PROGSUFFIX}') +libraries_obj = env.File('$V8_MODE_DIR/libraries${OBJSUFFIX}') +libraries_empty_obj = env.File('$V8_MODE_DIR/libraries-empty${OBJSUFFIX}') +snapshot_obj = env.File('$V8_MODE_DIR/snapshot${OBJSUFFIX}') +snapshot_empty_obj = env.File('$V8_MODE_DIR/snapshot-empty${OBJSUFFIX}') +v8_bin = env.File('$V8_SRC_DIR/shell${PROGSUFFIX}') +v8_lib = env.File('$V8_SRC_DIR/${LIBPREFIX}v8${LIBSUFFIX}'), -v8_scons_targets = [ - mksnapshot_bin, - v8_bin, - v8_lib, +v8_scons_targets_off = [ + mksnapshot_exe, + libraries_obj, + snapshot_empty_obj, + v8_bin, + v8_lib, +] + +v8_scons_targets_on = [ + libraries_empty_obj, + snapshot_obj, ] if env['PLATFORM'] == 'win32': - v8_scons_targets.append([ - env.File('#/../v8/obj/release/snapshot-empty.obj'), - env.File('#/../v8/vc80.pdb') + v8_scons_targets_off.extend([ + env.File('#/../v8/vc80.pdb') ]) -# Grab the -j flag from the outer environment, if available. -try: - cpus = env.GetOption('num_jobs') - cpu_flag = ' -j%d' % cpus -except AttributeError: - cpu_flag = '' - -v8 = env.Command(v8_scons_targets, +v8 = env.Command(v8_scons_targets_off + v8_scons_targets_on, [], - 'cd ../v8 && $PYTHON $SCONS $SCONSFLAGS snapshot=on ' + - 'sample=shell', - SCONS='../third_party/scons/scons.py', - SCONSFLAGS=('-Q ' - '--warn=no-deprecated ' - '--warn=no-no-parallel-support' + cpu_flag)) + ['$V8_SCONS_COM snapshot=off sample=shell', + '$V8_SCONS_COM snapshot=on ${TARGETS[-%d:]}' + % len(v8_scons_targets_on)]) env.AlwaysBuild(v8) + +# Tell our SCons invocation to *not* delete v8.lib and the other targets +# before building them, so the subsidiary v8 SCons call doesn't always +# rebuild them (thereby causing us to always rebuild their dependents). +env.Precious(v8) + env.Install('$V8_DIR', v8) -i = env.Install('$TARGET_ROOT', mksnapshot_bin) -env.Alias('webkit', i) i = env.Install('$LIBS_DIR', v8_lib) env.Alias('webkit', i) @@ -59,7 +79,5 @@ if env['PLATFORM'] == 'win32': i = env.InstallAs('$TARGET_ROOT/v8_shell_sample${PROGSUFFIX}', v8_bin) env.Alias('chrome', i) -# Tell our SCons invocation to *not* delete v8.lib and the other targets -# before building them, so the subsidiary v8 SCons call doesn't always -# rebuild them (thereby causing us to always rebuild their dependents). -env.Precious(v8) +env.ChromeStaticLibrary('v8_snapshot', + [libraries_empty_obj, snapshot_obj]) |