summaryrefslogtreecommitdiffstats
path: root/build/SConscript.main
Commit message (Collapse)AuthorAgeFilesLines
* Initial generation of native Visual Studio solution filessgk@google.com2008-12-191-5/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (project files still to come). To wit: * Solution file configuration is in *_sln.scons files (base\base_sln.scons, chrome\chrome_sln.scons). * Individual Project file configuration is in the the .scons file for the relevant target (base\base_unittests.scons, third_party\libxml\libxml.scons, etc.)--that is, where their file lists will live. * MSVSProject() calls are currently placeholders that establish the existence of Project Nodes (and Project dependencies) but don't yet have actual Project configuration information (file lists, .vsprops, etc.). * Configuraiton is very manual. In particular, the entries in the .sln file will be written out in exactly the order specified in the configuration(s). The current ordering is taken from our existing .sln files, so we can generate virtually the same configurations on output. * Generated solution files are nearly byte-for-byte identical with our existing .sln files, modulo: * net\dump_cache has a WebsiteProperties sections (making that configurable per project isn't important right now); * sandbox\sandbox.sln was missing a dependency of base.vcproj on on debug_message.vcproj (present in other .sln files) * webkit\webkit.sln was missing dependencies of WebCore.vcproj on libxml_config.vcproj and libxslt_config.vcproj (present in chrome.sln); * add a handful of other miscellaneous missing dependencies on various .vcproj definitions in chrome.sln (present in other .sln files). * remove stats_viewer.csproj from chrome.sln (sorry, mbelshe), which was complicating the solution configuration with unnecessary (for us) "Mixed Platform" types; * All MSVSFolder(), MSVSProject() and MSVSSolution() calls have hard-wired guid= values taken from our existing configuration, so we can: 1) verify generation of working configs; 2) minimize diffs when checking in generated .sln files. We can remove these in the future in favor of extracting them from existing .sln files if we wish. * Add ChromeMSVSFolder(), ChromeMSVSProject() and ChromeMSVSSolution() wrappers to chromium_builders.py, that gate the underlying call to the env.MSVS*() builders based on whether env.Bit('msvs') is set (i.e., we're in --mode=msvs). * Remove platform-specific gating of to-be-ported .scons files that we now need to load on any platform to generate coheren MSVS files. Move the env.Bit('windows') tests for actually building their executables into the individual .scons files. Review URL: http://codereview.chromium.org/14472 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7297 0039d316-1c4b-4281-b951-d872f2087c98
* Underlying functionality for generating native Visual Studio solution files:sgk@google.com2008-12-171-2/+18
| | | | | | | | | | | | | | | | * New _Node_MSVS.py module (from rspangler) with new MSVSFolder(), MSVSProject() and MSVSSolution() Nodes. This will eventually become a new SCons/Node/MSVS.py module in upstream SCons. * New MSVSNew.py Tool module imports MSVS.py (either from SCons.Node or from our temporary _Node_MSVS.py module) and attaches the appropriate environment methods. * MSVSSolution().Write() will generate a solution file based on explicit configuration in the SConscript files. * While we're here, define $SQLITE_DIR, which will be used by the next checkins. Review URL: http://codereview.chromium.org/14467 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7120 0039d316-1c4b-4281-b951-d872f2087c98
* Remove few more errors in mac scons build.phajdan.jr@chromium.org2008-12-151-0/+2
| | | | | | | BUG=5525 Review URL: http://codereview.chromium.org/14113 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6981 0039d316-1c4b-4281-b951-d872f2087c98
* Removing VERBOSE=1 option, superceeded by standard hammer --verbose option.bradnelson@chromium.org2008-12-131-10/+0
| | | | | | Review URL: http://codereview.chromium.org/14082 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6962 0039d316-1c4b-4281-b951-d872f2087c98
* First step to unbreak scons build on Mac.phajdan.jr@chromium.org2008-12-111-0/+3
| | | | | | Review URL: http://codereview.chromium.org/13354 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6790 0039d316-1c4b-4281-b951-d872f2087c98
* Support gprof and symbols options to the Linux build.deanm@chromium.org2008-12-101-0/+9
| | | | | | | | Both will work in either dbg or opt. SYMBOLS=1 is useful when building an opt build with debugging symbols. PROFILE=1 builds with gprof instrumentation. Review URL: http://codereview.chromium.org/13337 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6700 0039d316-1c4b-4281-b951-d872f2087c98
* Remove -Wno-unknown-pragmas from global compiler flags on Linux.evanm@google.com2008-12-091-1/+0
| | | | | | | | | | BUG=2053 Review URL: http://codereview.chromium.org/13175 Patch from Paweł Hajdan jr <phajdan.jr@gmail.com>. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6597 0039d316-1c4b-4281-b951-d872f2087c98
* Stop filtering out the 'gears' SConscript on linux and mac.mpcomplete@chromium.org2008-12-041-2/+0
| | | | | | Review URL: http://codereview.chromium.org/12929 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6341 0039d316-1c4b-4281-b951-d872f2087c98
* Allows scons build to use local copy of platformsdk if one is not bundled ↵bradnelson@chromium.org2008-12-031-2/+8
| | | | | | | | side-by-side. Review URL: http://codereview.chromium.org/12915 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6305 0039d316-1c4b-4281-b951-d872f2087c98
* Parameterize the "Hammer" subdirectory name in which we build assgk@google.com2008-12-031-14/+15
| | | | | | | | | | $BUILD_TARGET_DIR, so it can be set to "Debug" or "Release' to mimic Visual Studio, or whatever other subdirectory the user prefers. Fix PROGRESS= on Linux so the messages go to /dev/tty. Remove the now-unnecessary in-SCons support for --clobber. Review URL: http://codereview.chromium.org/13087 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@6301 0039d316-1c4b-4281-b951-d872f2087c98
* Fixes and enhancementssgk@google.com2008-12-021-17/+39
| | | | | | | | | | | | | | | | | | * 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
* Remove dependancies on gcc/perl etc. This saves a bunch of stats andagl@chromium.org2008-11-251-0/+5
| | | | | | | | | full rebuilds whenever changing compilers etc. Review URL: http://codereview.chromium.org/12436 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5983 0039d316-1c4b-4281-b951-d872f2087c98
* Purify support:sgk@google.com2008-11-221-2/+11
| | | | | | | | | | | | | | | * Add third_party/purify/pure_api.c to the base\base_lib.scons sources. * Support specification of CHROME_BUILD_TYPE (and CHROMIUM_BUILD while we're here) either on the command line or as an external environment variable. * Fix syntax error in release_impl_purify.scons (previously unused). * Add a central $CHROMIUM_CC_OPT_FLAGS variable (included in $CCFLAGS) that can be used to set explicitly the optimization level without having to worry about optimization flags being pulled in from other settings files. Review URL: http://codereview.chromium.org/11368 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5887 0039d316-1c4b-4281-b951-d872f2087c98
* Fix use of LOAD= with WantSystemLib() (we could blow up if a variablesgk@google.com2008-11-211-130/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | hadn't been added to the config) and extend use of LOAD= into submodules: * Add a ChromeLoadSConscriptModules() method that encapsulates the conditional logic, and makes things more readable by specifying component names as keyword arguments, not hard-coding the logic as a series of if-tests. * Put the ChromeLoadSConscriptModules() logic in a Tool module in site_scons/site_tools, so it doesn't clutter up build/SConscript.main directly. * Move env.WantSystemLib() calls into the individual *.scons files, so we call them each time (or not, based one LOAD=) and the config itself just returns if the system library is requested and we don't need to build anything locally. * Move the settings where a library name changes based on whether or not the system lib is being used into the using_*.scons files, so they're available to clients independently of whether or not the component's *.scons configuration is loaded. * While here: rename the affected third_party SConscript files: third_party/libjpeg/SConscript => third_party/libjpeg/libjpeg.scons third_party/libxml/SConscript => third_party/libxml/libxml.scons third_party/libxslt/SConscript => third_party/libxslt/libxslt.scons * While here: move the Chrome{Program,SharedLibrary}() etc. builder definitions from build/SConscript.main to a new too Ad the ChromeLoadSConscriptModules() logic in a Tool module, to remove more clutter from build/SConscript.main. Review URL: http://codereview.chromium.org/11430 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5820 0039d316-1c4b-4281-b951-d872f2087c98
* Finish release (opt) builds on Windows, including the parallelsgk@google.com2008-11-201-70/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | build\*.scons structure (mirroring build\*.vsprops files): * Use env.ApplySConscript() instead of env.SConscript with a hand-crafted dictionary defining 'env'. * Move various CPPPATH, CCFLAGS, CPPDEFINES, LIBS and LIBPATH definitions from build/SConscript.main and target-specific *.scons files into the build\*.scons files that mirror the existing build\*.vsprops hierarchy. * Use the new build\{debug,release}.scons files to update the windows_dbg and windows_opt construction environments. * Mirror current support for CHROME_BUILD_TYPE and CHROMIUM_BUILD external environment variables. * Remove hard-coded /TP options. * Massage $CXXFLAGS to remove $CCFLAGS, avoiding duplication of options on command lines. Handle the ripple effect in $PCHCOM by adding $CCFLAGS back to that command line. * Delete hammer's default settings of {CC,LINK}FLAGS_{DEBUG,OPTIMIZED} so they don't pollute our construction environments. * Update chrome config to link against v8 for opt, v8_g for dbg. * Get rid of fragile by-hand order of using_net.scons before other using_*.scons files. We're now using --start-group and --end-group on Linux to deal with dependency cycles in libraries. Review URL: http://codereview.chromium.org/11478 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5741 0039d316-1c4b-4281-b951-d872f2087c98
* Don't build with exception support, we don't use exceptions.deanm@chromium.org2008-11-191-1/+1
| | | | | | | | This makes the output executable substantially smaller because it won't emit .eh_frame and .eh_frame_hdr header sections. These were previously ~1.2mb for an opt test_shell. Review URL: http://codereview.chromium.org/11265 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5675 0039d316-1c4b-4281-b951-d872f2087c98
* Move dmg_fp in scons build to compile fromtc@google.com2008-11-151-2/+0
| | | | | | | | base/third_party/dmg_fp and compile it into base_lib. Review URL: http://codereview.chromium.org/10769 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5521 0039d316-1c4b-4281-b951-d872f2087c98
* Add a webkit.scons file in between build\SConscript.main andsgk@google.com2008-11-141-1/+1
| | | | | | | | | | webkit\SConscript, as a place for calling renamed *.scons files. Add 'webkit' and 'chrome' COMPONENT_PROGRAM_GROUPS and COMPONENT_TEST_PROGRAM_GROUPS so the generated .exe files get copied correctly into the Hammer\ build subdirectory. Review URL: http://codereview.chromium.org/10768 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5518 0039d316-1c4b-4281-b951-d872f2087c98
* More *.scons renaming:sgk@google.com2008-11-141-7/+7
| | | | | | | | | | | | * Rename SConscript to *.scons in the following directories: third_party\{bspatch,bsdiff,lzma_dsk} chrome\installer\{setup,mini_installer,util} * Split mini_installer and installer_unittests into separate *.scons files. * Add using_bspatch.scons and using_lzma_sdk.scons "properties" files, modifying other *.scons files to use them as appropriate. Review URL: http://codereview.chromium.org/10952 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5515 0039d316-1c4b-4281-b951-d872f2087c98
* Recommit of media project files due to a mistake in media_unittest.vcprojscherkus@chromium.org2008-11-141-0/+4
| | | | | | | | | | | | | that worked in Visual Studio but broke on IncrediBuild. Also updated to include dmg_fp dependency. Trying ONE MORE TIME because I think gcl breaks with "A +" files (I used "svn merge -c REV ." to un-rollback my change). Original: http://codereview.chromium.org/10683 Rollback: http://codereview.chromium.org/10908 Review URL: http://codereview.chromium.org/10733 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5490 0039d316-1c4b-4281-b951-d872f2087c98
* Fixes for Visual Studio solution + project file generation:sgk@google.com2008-11-141-0/+4
| | | | | | | | | | | | * Fix the grit tool so it works with Repository() directories (and tap gspencer to upstream the changes). * Fix the evaluation of $PRE_EVALUATE_DIRS, which was interfering with sucking up the source files for listing in the .vcproj files. * Set AlwaysBuild() on the project files so they're always evaluated for up-to-dateness when 'all_solutions' is the target. Review URL: http://codereview.chromium.org/10725 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5440 0039d316-1c4b-4281-b951-d872f2087c98
* Allow optimized builds on Linux.evanm@google.com2008-11-131-11/+21
| | | | | | | Review URL: http://codereview.chromium.org/10857 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5406 0039d316-1c4b-4281-b951-d872f2087c98
* * Revert "Checking in the media project files (layout based on net/base ↵agl@chromium.org2008-11-131-4/+0
| | | | | | | | | | | libraries)." This reverts commit fdeb8575309055ad23803b376659c236099348ac. Review URL: http://codereview.chromium.org/10908 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5392 0039d316-1c4b-4281-b951-d872f2087c98
* Checking in the media project files (layout based on net/base libraries).scherkus@chromium.org2008-11-131-0/+4
| | | | | | | | | Added a dummy media.cc file in order to produce media.lib so there are no linker errors when building media_unittests.exe. Currently chrome_dll does NOT depend on media so it will not be linked in, which is OK for now :) Review URL: http://codereview.chromium.org/10683 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5389 0039d316-1c4b-4281-b951-d872f2087c98
* Add extra pass throughs for enforge.agl@chromium.org2008-11-131-4/+6
| | | | | | | | | | | | Add march flag to builds. Our system compilers are assuming > i386 already, but not all gcc installations will do this. Without an march flag, gcc assumes only a 386 and then some atomic operations are compiled to undefined references which break linking. Review URL: http://codereview.chromium.org/10689 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5363 0039d316-1c4b-4281-b951-d872f2087c98
* Allow chromium to be built with some system libs by introducingevanm@google.com2008-11-121-10/+63
| | | | | | | | | | | | | | a variable called SYSTEM_LIBS, consisting of a comma-separated list of system libraries. So far, bzip2, libpng, libjpeg, libxml, libxslt, lzma_sdk, zlib, hunspell, sqlite, libevent are recognized. BUG=4321 Review URL: http://codereview.chromium.org/10626 Patch from Fabien Tassin <fta@sofaraway.org>. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5320 0039d316-1c4b-4281-b951-d872f2087c98
* Make unit_tests pass with pt_BR.UTF-8 locale.tc@google.com2008-11-121-0/+2
| | | | | | | | | | | BUG=3675 Patch from Paweł Hajdan jr <phajdan.jr@gmail.com> original issue: http://codereview.chromium.org/9509 Review URL: http://codereview.chromium.org/11002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5319 0039d316-1c4b-4281-b951-d872f2087c98
* add distcc_dir to the list of pass through varstc@google.com2008-11-121-1/+1
| | | | | | | Review URL: http://codereview.chromium.org/10658 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5316 0039d316-1c4b-4281-b951-d872f2087c98
* Some changes necessary to build an optimized binary on Linux.evanm@google.com2008-11-111-1/+1
| | | | | | | | | | | | | | | | | Two other speedup changes that I'm not including: root_env = Environment( tools = ['component_setup'], + RPATH=[], And linux_env.Tool('target_platform_linux') -linux_env.Tool('target_debug') +linux_env.Tool('target_optimized') Review URL: http://codereview.chromium.org/10292 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5193 0039d316-1c4b-4281-b951-d872f2087c98
* Serialize links on Linux. Should fix ↵dkegel@google.com2008-11-101-0/+4
| | | | | | | | http://code.google.com/p/chromium/issues/detail?id=3805 Review URL: http://codereview.chromium.org/9463 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5131 0039d316-1c4b-4281-b951-d872f2087c98
* Adding in new solution builder pattern.bradnelson@chromium.org2008-11-081-31/+51
| | | | | | Review URL: http://codereview.chromium.org/10231 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5047 0039d316-1c4b-4281-b951-d872f2087c98
* Set cpus=1 on systems where we don't (yet) know how to deducesgk@google.com2008-11-071-2/+2
| | | | | | | | | | | the number of CPUs. This at least allows the build to function on unknown systems. Remove a now-unnecessary addition of $V8_DIR to LIBPATH. The v8 libraries now get installed in $LIBS_DIR like everyone else. Review URL: http://codereview.chromium.org/10208 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5007 0039d316-1c4b-4281-b951-d872f2087c98
* A more friendly build error on linuxtc@google.com2008-11-061-3/+12
| | | | | | | | | when packages are not found by pkg-config. Review URL: http://codereview.chromium.org/9618 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4856 0039d316-1c4b-4281-b951-d872f2087c98
* Make better (and more efficient) use of Hammer functionalitysgk@google.com2008-11-051-0/+13
| | | | | | | | | | | | | in base, net and sandbox: * Remove by-hand Install() and Alias() calls. * Set $COMPONENT_PROGRAM_GROUPS and $COMPONENT_TEST_PROGRAM_GROUPS (with in each foo\foo.scons file) so executables get added automatically to the appropriate Alias. * Set $TESTS_DIR and $STAGING_DIR so executables get linked directly in their final resting place ($TARGET_ROOT). Review URL: http://codereview.chromium.org/9188 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4805 0039d316-1c4b-4281-b951-d872f2087c98
* Unrollback the Scons changes, they weren't the cause of the problem.brettw@google.com2008-11-051-3/+18
| | | | | | Review URL: http://codereview.chromium.org/9184 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4783 0039d316-1c4b-4281-b951-d872f2087c98
* Rollback r4734 to see if it fixes the crashing I experience when starting ↵brettw@google.com2008-11-051-18/+3
| | | | | | | | chrome, as well as the 1MB regression in chrome.dll size. Review URL: http://codereview.chromium.org/8226 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4781 0039d316-1c4b-4281-b951-d872f2087c98
* Adding better project generation (source and build targets).bradnelson@chromium.org2008-11-051-3/+18
| | | | | | | | | Adding fix to targets_msvs to work with chrome hammer.bat in depot_tools. Review URL: http://codereview.chromium.org/9149 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4734 0039d316-1c4b-4281-b951-d872f2087c98
* Take Hammer out of the default target list.bradnelson@chromium.org2008-11-041-1/+2
| | | | | | Review URL: http://codereview.chromium.org/9142 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4673 0039d316-1c4b-4281-b951-d872f2087c98
* Adding visual studio solution files.bradnelson@chromium.org2008-11-041-5/+26
| | | | | | | | | Sandbox is currently having a problem with this so it is disabled. Fixed a few stray items. Review URL: http://codereview.chromium.org/9259 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4525 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor building unit_tests with SCons for the new structure:sgk@google.com2008-11-031-1/+1
| | | | | | | | | | | | | | | | | | | | * Rename SConscript.unit_tests to test/unit/unit_tests.scons. * Add a new chrome/chrome.scons "master" for building everything chrome. Have it just load the existing SConscript file, and the new test/unit/unit_tests.scons file. We'll move things from SConscript (or elsewhere) into chrome.scons as they get convertd. * Change build/SConscript.main to load chrome/chrome.scons. * Add new using_libjpeg.scons, using_libxml.scons, and using_libxslt.scons "properties" files. * Convert test/unit/unit_tests.scons to use the available using_*.scons files. * Combine settings that were scattered throught test/unit/unit_tests.scons to make it a little more readable. * Add $CHROME_DIR/ to the beginning of the file listed in test/unit/unit_tests.scons, since they're now being interpreted from a SConscript file down two directory levels. Review URL: http://codereview.chromium.org/9005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4448 0039d316-1c4b-4281-b951-d872f2087c98
* Get fonts to render in a somewhat recognisable form on Linux.agl@chromium.org2008-10-311-0/+1
| | | | | | | Review URL: http://codereview.chromium.org/8936 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4325 0039d316-1c4b-4281-b951-d872f2087c98
* Fixing use of built_component from SConstructs.bradnelson@chromium.org2008-10-291-1/+1
| | | | | | Review URL: http://codereview.chromium.org/8724 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4189 0039d316-1c4b-4281-b951-d872f2087c98
* Adding in BuildComponents to allow things like Defer and publishing.bradnelson@google.com2008-10-291-145/+173
| | | | | | Review URL: http://codereview.chromium.org/8666 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4153 0039d316-1c4b-4281-b951-d872f2087c98
* Fixing clobber which was broken by r4051.bradnelson@google.com2008-10-281-1/+1
| | | | | | Review URL: http://codereview.chromium.org/8842 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4082 0039d316-1c4b-4281-b951-d872f2087c98
* Splitting apart the environments to build in.bradnelson@google.com2008-10-281-179/+210
| | | | | | | | This will let use incrementally introduce BuildComponents in SConscript.main Review URL: http://codereview.chromium.org/8807 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4051 0039d316-1c4b-4281-b951-d872f2087c98
* speed up sconstc@google.com2008-10-271-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I did some profiling and found that we spend a lot of time in SCons/Subst.py resolving paths with $ vars in them. By pre-resolving some common $ vars, we can get a 16% speed up of an empty build (running hammer Hammer when everything is already built). On my work desktop, this is a saving from ~180s to do an empty build to ~150s to do an empty build. I found which symbols to pre-resolve by gathering stats on what symbols were resolved during a single run. Originally, these were the top 10 calls to StringSubber.substitute: 91466 /src/gclient-git/src/chrome 89457 $MAIN_DIR/Hammer 89457 $DESTINATION_ROOT 89447 $TARGET_ROOT/obj 65514 $OBJ_ROOT/webkit 18169 $OBJ_ROOT/third_party 8991 -I/src/gclient-git/src/webkit/pending 5700 $THIRD_PARTY_DIR/WebKit 4488 -I/src/gclient-git/src/webkit/port/platform/network 4488 -I/src/gclient-git/src/webkit/port/platform Afterwards, the top 10 calls were: 65514 /src/gclient-git/src/chrome/Hammer/obj/webkit 23933 /src/gclient-git/src/chrome/Hammer/obj 18169 $OBJ_ROOT/third_party 8991 -I/src/gclient-git/src/webkit/pending 5700 $THIRD_PARTY_DIR/WebKit 4488 -I/src/gclient-git/src/webkit/port/platform/network 4488 -I/src/gclient-git/src/webkit/port/platform 3813 $OBJ_ROOT/skia 3498 $THIRD_PARTY_DIR/icu38 3456 $THIRD_PARTY_WEBKIT_DIR/JavaScriptCore Adding these rules cuts the total number of calls to StringSubber.substitute from 1001817 to 665933. Review URL: http://codereview.chromium.org/8608 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4010 0039d316-1c4b-4281-b951-d872f2087c98
* Add CCACHE_DIR to the list of environment variablestc@google.com2008-10-271-6/+9
| | | | | | | | | | that get passed to the build environment. This allows us to have our CCACHE_DIR off of NFS. Review URL: http://codereview.chromium.org/8610 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4002 0039d316-1c4b-4281-b951-d872f2087c98
* Fix SCons build of the sandbox module, splitting out the individualsgk@google.com2008-10-271-1/+1
| | | | | | | targets into the new *.scons file naming scheme. Review URL: http://codereview.chromium.org/8616 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4000 0039d316-1c4b-4281-b951-d872f2087c98
* Fix SCons modules build on Windows:sgk@google.com2008-10-251-1/+8
| | | | | | | | | | | | | | | * Add 'midl' Tool module. * Filter out the default OS_WINDOWS= definition from the Hammer modules, which messes up our build. * Fix the $PLATFORMSDK_VISTA definition. * Remove the current directory from the 'base' Alias (avoid cycles). * Remove by-hand addition of .lib, .pdb and .ilk files to the target list when build shared libraries (multiple places). * Comment out a post-action Touch() of the themes/default resource. (Thanks to bradnelson for many of the above individual fixes.) Review URL: http://codereview.chromium.org/8207 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3980 0039d316-1c4b-4281-b951-d872f2087c98
* Actually adding the new scons toolkit (hammer) base tools to the builtbradnelson@google.com2008-10-241-60/+41
| | | | | | | | | environment. Things have been rigged temporarily so they emit to the same directories. Review URL: http://codereview.chromium.org/8139 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3908 0039d316-1c4b-4281-b951-d872f2087c98