diff options
author | initial.commit <initial.commit@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-07-26 20:52:30 +0000 |
---|---|---|
committer | initial.commit <initial.commit@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-07-26 20:52:30 +0000 |
commit | ee2815e28d408216cf94e874825b6bcf76c69083 (patch) | |
tree | 307f3af4beabc0ab8d8633489846806b2df41f5e | |
parent | 7e5ba5d125a2dc95132e765e949e53e1e779caaf (diff) | |
download | chromium_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
-rw-r--r-- | build/README.google | 15 | ||||
-rw-r--r-- | build/SConscript.googleurl | 100 | ||||
-rw-r--r-- | build/SConscript.main | 334 | ||||
-rw-r--r-- | build/SConscript.v8 | 78 | ||||
-rw-r--r-- | build/common.vsprops | 7 | ||||
-rw-r--r-- | build/debug.vsprops | 23 | ||||
-rw-r--r-- | build/external_code.vsprops | 14 | ||||
-rw-r--r-- | build/internal/README.google | 24 | ||||
-rw-r--r-- | build/internal/essential.vsprops | 77 | ||||
-rw-r--r-- | build/internal/release_defaults.vsprops | 24 | ||||
-rw-r--r-- | build/internal/release_impl.vsprops | 8 | ||||
-rw-r--r-- | build/internal/release_impl_checksenabled.vsprops | 24 | ||||
-rw-r--r-- | build/internal/release_impl_dom_stats.vsprops | 23 | ||||
-rw-r--r-- | build/internal/release_impl_official.vsprops | 26 | ||||
-rw-r--r-- | build/internal/release_impl_pgo_instrument.vsprops | 32 | ||||
-rw-r--r-- | build/internal/release_impl_pgo_optimize.vsprops | 28 | ||||
-rw-r--r-- | build/internal/release_impl_purify.vsprops | 19 | ||||
-rw-r--r-- | build/output_dll_copy.rules | 17 | ||||
-rw-r--r-- | build/release.vsprops | 8 |
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 "$(DevEnvDir)..\..\VC\bin\pgort80.dll" "$(OutDir)"" + /> +</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> |