summaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorinitial.commit <initial.commit@0039d316-1c4b-4281-b951-d872f2087c98>2008-07-26 20:52:30 +0000
committerinitial.commit <initial.commit@0039d316-1c4b-4281-b951-d872f2087c98>2008-07-26 20:52:30 +0000
commitee2815e28d408216cf94e874825b6bcf76c69083 (patch)
tree307f3af4beabc0ab8d8633489846806b2df41f5e /build
parent7e5ba5d125a2dc95132e765e949e53e1e779caaf (diff)
downloadchromium_src-ee2815e28d408216cf94e874825b6bcf76c69083.zip
chromium_src-ee2815e28d408216cf94e874825b6bcf76c69083.tar.gz
chromium_src-ee2815e28d408216cf94e874825b6bcf76c69083.tar.bz2
Add the build directory to the repository.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'build')
-rw-r--r--build/README.google15
-rw-r--r--build/SConscript.googleurl100
-rw-r--r--build/SConscript.main334
-rw-r--r--build/SConscript.v878
-rw-r--r--build/common.vsprops7
-rw-r--r--build/debug.vsprops23
-rw-r--r--build/external_code.vsprops14
-rw-r--r--build/internal/README.google24
-rw-r--r--build/internal/essential.vsprops77
-rw-r--r--build/internal/release_defaults.vsprops24
-rw-r--r--build/internal/release_impl.vsprops8
-rw-r--r--build/internal/release_impl_checksenabled.vsprops24
-rw-r--r--build/internal/release_impl_dom_stats.vsprops23
-rw-r--r--build/internal/release_impl_official.vsprops26
-rw-r--r--build/internal/release_impl_pgo_instrument.vsprops32
-rw-r--r--build/internal/release_impl_pgo_optimize.vsprops28
-rw-r--r--build/internal/release_impl_purify.vsprops19
-rw-r--r--build/output_dll_copy.rules17
-rw-r--r--build/release.vsprops8
19 files changed, 881 insertions, 0 deletions
diff --git a/build/README.google b/build/README.google
new file mode 100644
index 0000000..012df35
--- /dev/null
+++ b/build/README.google
@@ -0,0 +1,15 @@
+List of property sheets to be included by projects:
+ common.vsprops
+ Not used anymore. No-op. Kept for compatibility with current projects.
+
+ debug.vsprops
+ Enables debug settings. Must be included directly in Debug configuration. Includes internal\essential.vsprops.
+
+ external_code.vsprops
+ Contains settings made to simplify usage of external (non-Google) code. It relaxes the warning levels. Should be included after debug.vsprops or release.vsprops to override their settings.
+
+ output_dll_copy.rules
+ Run to enable automatic copy of DLL when they are as an input file in a vcproj project.
+
+ release.vsprops
+ Enables release settings. Must be included directly in Release configuration. Includes internal\essential.vsprops. Also includes "internal\release_impl$(CHROME_BUILD_TYPE).vsprops". So the behavior is dependant on the CHROME_BUILD_TYPE environment variable.
diff --git a/build/SConscript.googleurl b/build/SConscript.googleurl
new file mode 100644
index 0000000..ab9ee4c
--- /dev/null
+++ b/build/SConscript.googleurl
@@ -0,0 +1,100 @@
+# Copyright 2008, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Import('env')
+
+env = env.Clone()
+
+env.Prepend(
+ CPPPATH = [
+ '$ICU38_DIR/public/common',
+ '$ICU38_DIR/public/i18n',
+ '#/..',
+ ],
+)
+
+env.Append(
+ CPPDEFINES = [
+ 'U_STATIC_IMPLEMENTATION',
+ 'CERT_CHAIN_PARA_HAS_EXTRA_FIELDS',
+ 'WIN32_LEAN_AND_MEAN',
+ ],
+
+ CCFLAGS = [
+ '/TP',
+
+ '/Wp64',
+
+ '/wd4503',
+ '/wd4819',
+ ],
+)
+
+input_files = [
+ 'src/gurl.cc',
+ 'src/url_canon_etc.cc',
+ 'src/url_canon_fileurl.cc',
+ 'src/url_canon_host.cc',
+ 'src/url_canon_icu.cc',
+ 'src/url_canon_internal.cc',
+ 'src/url_canon_ip.cc',
+ 'src/url_canon_mailtourl.cc',
+ 'src/url_canon_path.cc',
+ 'src/url_canon_pathurl.cc',
+ 'src/url_canon_query.cc',
+ 'src/url_canon_relative.cc',
+ 'src/url_canon_stdurl.cc',
+ 'src/url_parse.cc',
+ 'src/url_parse_file.cc',
+ 'src/url_util.cc',
+]
+
+env.StaticLibrary('googleurl', input_files)
+
+
+# Commented out for now because we can't build googleurl unit tests
+# with gtest. This will apparently be fixed some day...
+#
+#env_tests = env.Clone()
+#
+#env_tests.Append(
+# CPPPATH = [
+# '$GTEST_DIR/include',
+# ],
+#)
+#
+#test_files = [
+# 'src/gurl_unittest.cc',
+# 'src/url_canon_unittest.cc',
+# 'src/url_parse_unittest.cc',
+# 'src/url_util_unittest.cc',
+#]
+#
+#env_tests.StaticLibrary('googleurl_tests', test_files)
+
diff --git a/build/SConscript.main b/build/SConscript.main
new file mode 100644
index 0000000..3290b12
--- /dev/null
+++ b/build/SConscript.main
@@ -0,0 +1,334 @@
+# Copyright 2008, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+import os
+import shutil
+import sys
+
+#TODO(rspangler): extra imports for testing
+#from SCons.Script.__init__ import *
+
+
+p = ARGUMENTS.get('PROGRESS')
+if p == 'spinner':
+ Progress(['/\r', '|\r', '\\\r', '-\r'], interval=5, file=open('con', 'w'))
+elif p == 'name':
+ Progress('$TARGET\r', overwrite=True, file=open('con', 'w'))
+
+
+SetOption('warn', ['no-missing-sconscript'] + GetOption('warn'))
+
+processors = int(os.environ.get('NUMBER_OF_PROCESSORS', 1))
+SetOption('num_jobs', processors + 1)
+
+
+msvs_env = Environment(tools=['msvc', 'mslink', 'msvs'])['ENV']
+
+
+env = Environment(
+ BUILD_TYPE = ARGUMENTS.get('BUILD_TYPE', 'Hammer'),
+ TARGET_ROOT = '#/$BUILD_TYPE',
+ OBJ_ROOT = '$TARGET_ROOT',
+
+ CSCRIPT = 'c:\\Windows\\System32\\cscript',
+
+ PLATFORMSDK_VISTA_REL = '../third_party/platformsdk_vista_6_0',
+ PLATFORMSDK_VISTA = '#/$PLATFORMSDK_VISTA_REL',
+ VISUAL_STUDIO = 'C:/Program Files/Microsoft Visual Studio 8',
+
+ BASE_DIR = '#/$BUILD_TYPE/base',
+ BREAKPAD_DIR = '#/$BUILD_TYPE/breakpad',
+ CHROME_DIR = '#/$BUILD_TYPE/chrome',
+ GEARS_DIR = '#/$BUILD_TYPE/gears',
+ GOOGLE_UPDATE_DIR = '#/$BUILD_TYPE/google_update',
+
+ # Work around a limitation (bug?) in SCons in that, when we build
+ # from a different directory, it forces the build targets defined
+ # the SConscript.googleurl file to be relative to that file (i.e.,
+ # here in the build/ directory with us), not relative to the
+ # the SConstruct directory from which SCons was launched. When
+ # we roll forward to a version of SCons that fixes this, we'll
+ # need to revert to the $BUILD_TYPE definition of GOOGLEURL_DIR.
+ #GOOGLEURL_DIR = '#/$BUILD_TYPE/googleurl',
+ GOOGLEURL_DIR = '#/../build/googleurl',
+
+ NET_DIR = '#/$BUILD_TYPE/net',
+ RLZ_DIR = '#/$BUILD_TYPE/rlz',
+ SANDBOX_DIR = '#/$BUILD_TYPE/sandbox',
+ SKIA_DIR = '#/$BUILD_TYPE/skia',
+ TESTING_DIR = '#/$BUILD_TYPE/testing',
+ THIRD_PARTY_DIR = '#/$BUILD_TYPE/third_party',
+ V8_DIR = '#/$BUILD_TYPE/v8',
+ WEBKIT_DIR = '#/$BUILD_TYPE/webkit',
+
+ GTEST_DIR = '$TESTING_DIR/gtest',
+
+ BSDIFF_DIR = '$THIRD_PARTY_DIR/bsdiff',
+ BSPATCH_DIR = '$THIRD_PARTY_DIR/bspatch',
+ BZIP2_DIR = '$THIRD_PARTY_DIR/bzip2',
+ ICU38_DIR = '$THIRD_PARTY_DIR/icu38',
+ LIBJPEG_DIR = '$THIRD_PARTY_DIR/libjpeg',
+ LIBPNG_DIR = '$THIRD_PARTY_DIR/libpng',
+ LIBXML_DIR = '$THIRD_PARTY_DIR/libxml',
+ LIBXSLT_DIR = '$THIRD_PARTY_DIR/libxslt',
+ LZMA_SDK_DIR = '$THIRD_PARTY_DIR/lzma_sdk',
+ MODP_B64_DIR = '$THIRD_PARTY_DIR/modp_b64',
+ NPAPI_DIR = '$THIRD_PARTY_DIR/npapi',
+ ZLIB_DIR = '$THIRD_PARTY_DIR/zlib',
+
+ THIRD_PARTY_WEBKIT_DIR = '$THIRD_PARTY_DIR/webkit',
+
+ CYGWIN_DIR = Dir('#../third_party/cygwin'),
+ CYGWIN_BIN_DIR = '$CYGWIN_DIR/bin',
+
+ PYTHON=sys.executable,
+
+ PERL = '$CYGWIN_BIN_DIR/perl.exe',
+ PERL_INCLUDE_FLAG = '-I ',
+ PERL_INCLUDE_SUFFIX = '',
+ _PERL_INCLUDE_FLAGS = ('${_concat(PERL_INCLUDE_FLAG, '
+ 'PERL_INCLUDE_PATH, '
+ 'PERL_INCLUDE_SUFFIX,'
+ '__env__, RDirs, TARGET, SOURCE)}'),
+
+ MSVS_ENV = msvs_env,
+
+ YACC = '$CYGWIN_BIN_DIR/bison.exe',
+
+ ARFLAGS = [
+ '/nologo',
+ ],
+
+ CCFLAGS = [
+ '/Od', # no optimization
+
+ '/RTC1',
+ '/MTd', # static link to crt, and debug version
+ '/Gy',
+ '/GR-',
+
+ '/W3',
+
+ '/Z7',
+
+ '/nologo',
+ '/errorReport:prompt',
+ ],
+
+ 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',
+ ],
+
+ CPPPATH = [
+ '$PLATFORMSDK_VISTA/files/Include',
+ '$PLATFORMSDK_VISTA/files/VC/INCLUDE',
+ '$VISUAL_STUDIO/VC/atlmfc/include',
+ ],
+
+ LIBPATH = [
+ '$PLATFORMSDK_VISTA/files/Lib',
+ '$PLATFORMSDK_VISTA/files/VC/LIB',
+ 'c:/Program Files/Microsoft Visual Studio 8/VC/atlmfc/lib',
+ ],
+
+ LINKFLAGS = [
+ '/DEBUG',
+ ],
+)
+
+if ARGUMENTS.get('VERBOSE') in (None, '0'):
+ env['CCCOMSTR'] = 'Compiling $TARGET ...'
+ env['CXXCOMSTR'] = 'Compiling $TARGET ...'
+ env['ARCOMSTR'] = 'Archiving $TARGET ...'
+ env['LINKCOMSTR'] = 'Linking $TARGET ...'
+
+
+# Place the .sconsign.dblite in the build directory.
+target_dir = env.Dir('$TARGET_ROOT')
+if not os.path.exists(target_dir.abspath):
+ Execute(Mkdir(target_dir))
+SConsignFile(target_dir.File('.sconsign').abspath)
+
+
+# Add --clobber (for the buildbot).
+# NOTE: seems to be crucial to do this before any builders are invoked.
+AddOption('--clobber', action='store_true', dest='clobber', default=False,
+ help='Delete build directory before building.')
+if GetOption('clobber'):
+ shutil.rmtree(env.Dir('$TARGET_ROOT').abspath, True)
+
+
+# Force scons to handle long include lines correctly.
+pchcom_fixed = env['PCHCOM']
+pchcom_fixed = pchcom_fixed.replace('${TARGETS[0]}', '$TARGET')
+pchcom_fixed = pchcom_fixed.replace('${TARGETS[1]}', '$TARGETS1')
+env.Replace(
+ CCCOM = "${TEMPFILE('%s')}" % env['CCCOM'],
+ CXXCOM = "${TEMPFILE('%s')}" % env['CXXCOM'],
+ SHCCCOM = "${TEMPFILE('%s')}" % env['SHCCCOM'],
+ SHCXXCOM = "${TEMPFILE('%s')}" % env['SHCXXCOM'],
+ PCHCOM = "${TEMPFILE('%s')}" % pchcom_fixed,
+ TARGETS1 = '${TARGETS[1]}',
+)
+
+env['ENV']['PROGRAMFILES'] = os.environ['PROGRAMFILES']
+env['ENV']['SystemDrive'] = os.environ['SystemDrive']
+env['ENV']['USERPROFILE'] = os.environ['USERPROFILE']
+
+# Use timestamps change, followed by MD5 for speed
+env.Decider('MD5-timestamp')
+
+# Overlay things from a layer below.
+env.Dir('$TARGET_ROOT').addRepository(Dir('..'))
+
+
+load = ARGUMENTS.get('LOAD')
+if load:
+ load = load.split(',')
+else:
+ load = []
+
+included = [c for c in load if not c.startswith('-')]
+excluded = [c[1:] for c in load if c.startswith('-')]
+if not included:
+ included = ['all']
+
+components = ['all']
+
+def LoadComponent(c):
+ components.append(c)
+ return (not GetOption('help') and
+ c in included or
+ ('all' in included and not c in excluded))
+
+sconscripts = []
+
+if LoadComponent('base'):
+ sconscripts.append('$BASE_DIR/SConscript')
+
+if LoadComponent('breakpad'):
+ sconscripts.append('$BREAKPAD_DIR/SConscript')
+
+if LoadComponent('chrome'):
+ sconscripts.append('$CHROME_DIR/SConscript')
+
+if LoadComponent('google_update'):
+ sconscripts.append('$GOOGLE_UPDATE_DIR/SConscript')
+
+if LoadComponent('googleurl'):
+ env.SConscript('SConscript.googleurl',
+ duplicate=0,
+ variant_dir='$GOOGLEURL_DIR',
+ src_dir='../googleurl',
+ exports=['env'])
+
+if LoadComponent('net'):
+ sconscripts.append('$NET_DIR/SConscript')
+
+if LoadComponent('rlz'):
+ sconscripts.append('$RLZ_DIR/SConscript')
+
+if LoadComponent('sandbox'):
+ sconscripts.append('$SANDBOX_DIR/src/SConscript')
+
+if LoadComponent('skia'):
+ sconscripts.append('$SKIA_DIR/SConscript')
+
+if LoadComponent('testing'):
+ sconscripts.append('$TESTING_DIR/SConscript.gtest')
+
+if LoadComponent('third_party'):
+ sconscripts.extend([
+ '$BSDIFF_DIR/SConscript',
+ '$BSPATCH_DIR/SConscript',
+ '$BZIP2_DIR/SConscript',
+ '$ICU38_DIR/SConscript',
+ '$LIBJPEG_DIR/SConscript',
+ '$LIBPNG_DIR/SConscript',
+ '$LIBXML_DIR/SConscript',
+ '$LIBXSLT_DIR/SConscript',
+ '$LZMA_SDK_DIR/SConscript',
+ '$MODP_B64_DIR/SConscript',
+ '$ZLIB_DIR/SConscript',
+ ])
+
+if LoadComponent('v8') and env.Dir('#/../v8').exists():
+ env.SConscript('SConscript.v8',
+ exports=['env'])
+
+if LoadComponent('webkit'):
+ sconscripts.append('$WEBKIT_DIR/SConscript')
+
+env.SConscript(sconscripts, exports=['env'])
+
+
+help_fmt = """
+Usage: hammer [SCONS_OPTIONS] [VARIABLES] [TARGET] ...
+
+Supported build variables:
+
+ BUILD_TYPE=type Build type. Also used as the subdirectory name
+ in which the build occurs.
+ LOAD=[module,...] Comma-separated list of components to load in the
+ dependency graph ('-' prefix excludes):
+%s
+ PROGRESS=type Display a progress indicator:
+ name: print each evaluated target name
+ spinner: print a spinner every 5 targets
+"""
+
+if GetOption('help'):
+ import textwrap
+ tw = textwrap.TextWrapper(
+ width = 78,
+ initial_indent = ' '*32,
+ subsequent_indent = ' '*32,
+ )
+ components = tw.fill(', '.join(components))
+
+ Help(help_fmt % components)
+
+
+Import('build_component')
+Default(build_component)
diff --git a/build/SConscript.v8 b/build/SConscript.v8
new file mode 100644
index 0000000..372f263
--- /dev/null
+++ b/build/SConscript.v8
@@ -0,0 +1,78 @@
+# Copyright 2008, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Import('env')
+
+env = env.Clone()
+
+# Grungy environment hackery to satisfy the Visual Studio that we're
+# going to execute.
+import os
+env['ENV'] = os.environ.copy()
+
+env.AppendENVPath('INCLUDE', env['MSVS_ENV']['INCLUDE'])
+env.AppendENVPath('LIB', env['MSVS_ENV']['LIB'])
+env.AppendENVPath('PATH', env['MSVS_ENV']['PATH'])
+
+
+mksnapshot_exe = File('#/../v8/bin/debug/mksnapshot.exe')
+v8_exe = File('#/../v8/Debug/v8_shell.exe')
+
+v8_scons_targets = [
+ mksnapshot_exe,
+ File('#/../v8/bin/debug/v8.lib'),
+ File('#/../v8/bin/debug/snapshot-empty.obj'),
+ File('#/../v8/vc80.pdb')
+]
+
+v8 = env.Command(v8_scons_targets,
+ [],
+ 'cd ..\\v8 && $PYTHON $SCONS $SCONSFLAGS ${TARGETS[:-1]}',
+ SCONS='..\\third_party\\scons-0.98.3\\scons.py',
+ SCONSFLAGS='-Q --warn=no-deprecated')
+env.AlwaysBuild(v8)
+env.Install('$V8_DIR', v8)
+
+i = env.Install('$TARGET_ROOT', mksnapshot_exe)
+env.Alias('webkit', i)
+
+
+v8_shell = env.Command(v8_exe,
+ [],
+ 'cd ..\\v8 && devenv /nologo v8.sln /build Debug v8_shell')
+env.AlwaysBuild(v8_shell)
+
+i = env.Install('$TARGET_ROOT', v8_exe)
+env.Alias('chrome', i)
+
+# By default, SCons deletes the target before invoking the command.
+# Tell SCons to *not* delete v8.lib and the other targets so the
+# subsidiary v8 SCons call doesn't always rebuild it (thereby causing
+# us to always rebuild things that use it).
+env.Precious(v8 + v8_shell)
diff --git a/build/common.vsprops b/build/common.vsprops
new file mode 100644
index 0000000..8fa2fc6
--- /dev/null
+++ b/build/common.vsprops
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="common (no-op)"
+ >
+</VisualStudioPropertySheet>
diff --git a/build/debug.vsprops b/build/debug.vsprops
new file mode 100644
index 0000000..d84e13c
--- /dev/null
+++ b/build/debug.vsprops
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="debug"
+ InheritedPropertySheets=".\internal\essential.vsprops"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="_DEBUG"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ LinkIncremental="2"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ />
+</VisualStudioPropertySheet>
diff --git a/build/external_code.vsprops b/build/external_code.vsprops
new file mode 100644
index 0000000..e13adde
--- /dev/null
+++ b/build/external_code.vsprops
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="external_code"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE"
+ WarnAsError="false"
+ Detect64BitPortabilityProblems="false"
+ DisableSpecificWarnings="4800"
+ />
+</VisualStudioPropertySheet>
diff --git a/build/internal/README.google b/build/internal/README.google
new file mode 100644
index 0000000..4624830
--- /dev/null
+++ b/build/internal/README.google
@@ -0,0 +1,24 @@
+Internal property sheets:
+ essential.vsprops
+ Contains the common settings used throughout the projects. Is included by either ..\debug.vsprops or ..\release.vsprops, so in general, it is not included directly.
+
+ release_defaults.vsprops
+ Included by ..\release.vsprops. Its settings are overriden by release_impl$(CHROME_BUILD_TYPE).vsprops. Uses the default VS setting which is "Maximize Speed". Results in relatively fast build with reasonable optimization level but without whole program optimization to reduce build time.
+
+ release_impl.vsprops
+ Included by ..\release.vsprops by default when CHROME_BUILD_TYPE is undefined. Includes release_defaults.vsprops.
+
+ release_impl_checksenabled.vsprops
+ Included by ..\release.vsprops when CHROME_BUILD_TYPE=_checksenabled. Matches what release_defaults.vsprops does, but doesn't actually inherit from it as we couldn't quite get that working. The only difference is that _DEBUG is set instead of NDEBUG. Used for keeping debug checks enabled with a build that is fast enough to dogfood with.
+
+ release_impl_official.vsprops
+ Included by ..\release.vsprops when CHROME_BUILD_TYPE=_official. Includes release_defaults.vsprops. Enables Whole Program Optimizations (WPO), which doubles the build time. Results in much more optimized build. Uses "Full Optimization" and "Flavor small code".
+
+ release_impl_pgo_instrument.vsprops
+ Included by ..\release.vsprops when CHROME_BUILD_TYPE=_pgo_instrument. Includes release_defaults.vsprops. Enables Profile Guided Optimization (PGO) instrumentation (first pass). Uses "Full Optimization" and "Flavor small code".
+
+ release_impl_pgo_optimize.vsprops
+ Included by ..\release.vsprops when CHROME_BUILD_TYPE=_pgo_optimize. Includes release_defaults.vsprops. Enables Profile Guided Optimization (PGO) optimization (second pass). Uses "Full Optimization" and "Flavor small code".
+
+ release_impl_purify.vsprops
+ Included by ..\release.vsprops when CHROME_BUILD_TYPE=_purify. Includes release_defaults.vsprops. Disables optimizations. Used with Purify to test without debug tools and without optimization; i.e. NDEBUG is defined but the compiler doesn't optimize the binary.
diff --git a/build/internal/essential.vsprops b/build/internal/essential.vsprops
new file mode 100644
index 0000000..f64145e
--- /dev/null
+++ b/build/internal/essential.vsprops
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="essential"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(SolutionDir)$(ConfigurationName)\obj\$(ProjectName)"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="$(SolutionDir)..;$(SDKIncludes)"
+ PreprocessorDefinitions="_WIN32_WINNT=0x0600;WINVER=0x0600;WIN32;_WINDOWS;_HAS_EXCEPTIONS=0;NOMINMAX;_CRT_RAND_S;CERT_CHAIN_PARA_HAS_EXTRA_FIELDS;WIN32_LEAN_AND_MEAN"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ RuntimeTypeInfo="false"
+ WarningLevel="3"
+ WarnAsError="true"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ DisableSpecificWarnings="4503; 4819"
+ BufferSecurityCheck="true"
+ EnableFunctionLevelLinking="true"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="$(OutDir)\lib\$(ProjectName).lib"
+ AdditionalLibraryDirectories="$(SDKLibs)"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalLibraryDirectories="$(SDKLibs)"
+ GenerateDebugInformation="true"
+ MapFileName="$(OutDir)\$(TargetName).map"
+ ImportLibrary="$(OutDir)\lib\$(TargetName).lib"
+ TargetMachine="1"
+ FixedBaseAddress="1"
+ AdditionalOptions="/safeseh /dynamicbase /ignore:4199 /nxcompat"
+ AdditionalDependencies="wininet.lib version.lib msimg32.lib ws2_32.lib usp10.lib psapi.lib"
+ DelayLoadDLLs="dwmapi.dll,uxtheme.dll"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ GenerateStublessProxies="true"
+ TypeLibraryName="$(InputName).tlb"
+ OutputDirectory="$(IntDir)"
+ HeaderFileName="$(InputName).h"
+ DLLDataFileName="dlldata.c"
+ InterfaceIdentifierFileName="$(InputName)_i.c"
+ ProxyFileName="$(InputName)_p.c"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ Culture="1033"
+ AdditionalIncludeDirectories="$(SolutionDir).."
+ />
+ <UserMacro
+ Name="SDK"
+ Value="$(SolutionDir)..\third_party\platformsdk_vista_6_0\files"
+ />
+ <UserMacro
+ Name="SDKIncludes"
+ Value="$(SDK)\Include;$(SDK)\VC\INCLUDE;$(VSInstallDir)\VC\atlmfc\include"
+ />
+ <UserMacro
+ Name="SDKLibs"
+ Value="$(SDK)\Lib;$(SDK)\VC\LIB"
+ />
+ <UserMacro
+ Name="DefaultOutputDirectory"
+ Value="$(SolutionDir)$(ConfigurationName)"
+ />
+ <UserMacro
+ Name="DefaultIntermediateDirectory"
+ Value="$(SolutionDir)$(ConfigurationName)\obj\$(ProjectName)"
+ />
+</VisualStudioPropertySheet>
diff --git a/build/internal/release_defaults.vsprops b/build/internal/release_defaults.vsprops
new file mode 100644
index 0000000..3a795b5
--- /dev/null
+++ b/build/internal/release_defaults.vsprops
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="release"
+ InheritedPropertySheets=".\essential.vsprops"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ StringPooling="true"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ LinkIncremental="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ OptimizeForWindows98="1"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ />
+</VisualStudioPropertySheet>
diff --git a/build/internal/release_impl.vsprops b/build/internal/release_impl.vsprops
new file mode 100644
index 0000000..04e490d
--- /dev/null
+++ b/build/internal/release_impl.vsprops
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="release_impl"
+ InheritedPropertySheets=".\release_defaults.vsprops"
+ >
+</VisualStudioPropertySheet>
diff --git a/build/internal/release_impl_checksenabled.vsprops b/build/internal/release_impl_checksenabled.vsprops
new file mode 100644
index 0000000..cd33e26
--- /dev/null
+++ b/build/internal/release_impl_checksenabled.vsprops
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="release_impl_checksenabled"
+ InheritedPropertySheets=".\essential.vsprops"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PreprocessorDefinitions="_DEBUG;_HAS_ITERATOR_DEBUGGING=0;_SECURE_SCL=0"
+ RuntimeLibrary="1"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ LinkIncremental="1"
+ OptimizeReferences="2"
+ OptimizeForWindows98="1"
+ EnableCOMDATFolding="2"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG;_HAS_ITERATOR_DEBUGGING=0;_SECURE_SCL=0"
+ />
+</VisualStudioPropertySheet>
diff --git a/build/internal/release_impl_dom_stats.vsprops b/build/internal/release_impl_dom_stats.vsprops
new file mode 100644
index 0000000..cd41bff
--- /dev/null
+++ b/build/internal/release_impl_dom_stats.vsprops
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="release_impl_dom_stats"
+ InheritedPropertySheets=".\essential.vsprops"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ PreprocessorDefinitions="NDEBUG;ENABLE_DOM_STATS_COUNTERS"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ LinkIncremental="1"
+ OptimizeReferences="2"
+ OptimizeForWindows98="1"
+ EnableCOMDATFolding="2"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG;ENABLE_DOM_STATS_COUNTERS"
+ />
+</VisualStudioPropertySheet>
diff --git a/build/internal/release_impl_official.vsprops b/build/internal/release_impl_official.vsprops
new file mode 100644
index 0000000..c9a4401
--- /dev/null
+++ b/build/internal/release_impl_official.vsprops
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="release_impl_official"
+ InheritedPropertySheets=".\release_defaults.vsprops"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="2"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="2"
+ OmitFramePointers="true"
+ EnableFiberSafeOptimizations="true"
+ WholeProgramOptimization="true"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ AdditionalOptions="/ltcg"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ LinkTimeCodeGeneration="1"
+ />
+</VisualStudioPropertySheet>
diff --git a/build/internal/release_impl_pgo_instrument.vsprops b/build/internal/release_impl_pgo_instrument.vsprops
new file mode 100644
index 0000000..613ac2d
--- /dev/null
+++ b/build/internal/release_impl_pgo_instrument.vsprops
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="release_impl_pgo_instrument"
+ OutputDirectory="$(DefaultOutputDirectory)_pgo"
+ IntermediateDirectory="$(DefaultOutputDirectory)_pgo\obj\$(ProjectName)"
+ InheritedPropertySheets=".\release_defaults.vsprops"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="2"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="2"
+ OmitFramePointers="true"
+ EnableFiberSafeOptimizations="true"
+ WholeProgramOptimization="true"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ AdditionalOptions="/ltcg"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ LinkTimeCodeGeneration="2"
+ />
+ <Tool
+ Name="VCPreBuildEventTool"
+ CommandLine="xcopy /D /Y &quot;$(DevEnvDir)..\..\VC\bin\pgort80.dll&quot; &quot;$(OutDir)&quot;"
+ />
+</VisualStudioPropertySheet>
diff --git a/build/internal/release_impl_pgo_optimize.vsprops b/build/internal/release_impl_pgo_optimize.vsprops
new file mode 100644
index 0000000..60233f4
--- /dev/null
+++ b/build/internal/release_impl_pgo_optimize.vsprops
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="release_impl_pgo_optimize"
+ OutputDirectory="$(DefaultOutputDirectory)_pgo"
+ IntermediateDirectory="$(DefaultOutputDirectory)_pgo\obj\$(ProjectName)"
+ InheritedPropertySheets=".\release_defaults.vsprops"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="3"
+ InlineFunctionExpansion="2"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="2"
+ OmitFramePointers="true"
+ EnableFiberSafeOptimizations="true"
+ WholeProgramOptimization="true"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ AdditionalOptions="/ltcg"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ LinkTimeCodeGeneration="3"
+ />
+</VisualStudioPropertySheet>
diff --git a/build/internal/release_impl_purify.vsprops b/build/internal/release_impl_purify.vsprops
new file mode 100644
index 0000000..497251c
--- /dev/null
+++ b/build/internal/release_impl_purify.vsprops
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="release_impl_purify"
+ InheritedPropertySheets=".\release_defaults.vsprops"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="PURIFY"
+ RuntimeLibrary="0"
+ BufferSecurityCheck="false"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ EnableCOMDATFolding="1"
+ />
+</VisualStudioPropertySheet>
diff --git a/build/output_dll_copy.rules b/build/output_dll_copy.rules
new file mode 100644
index 0000000..c6e9051
--- /dev/null
+++ b/build/output_dll_copy.rules
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<VisualStudioToolFile
+ Name="Output DLL copy"
+ Version="8.00"
+ >
+ <Rules>
+ <CustomBuildRule
+ Name="Output DLL copy"
+ CommandLine="xcopy /R /C /Y $(InputPath) $(OutDir)"
+ Outputs="$(OutDir)\$(InputFileName)"
+ FileExtensions="*.dll"
+ >
+ <Properties>
+ </Properties>
+ </CustomBuildRule>
+ </Rules>
+</VisualStudioToolFile>
diff --git a/build/release.vsprops b/build/release.vsprops
new file mode 100644
index 0000000..a36897f
--- /dev/null
+++ b/build/release.vsprops
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="release"
+ InheritedPropertySheets="internal\release_impl$(CHROME_BUILD_TYPE).vsprops"
+ >
+</VisualStudioPropertySheet>