Initial generation of native Visual Studio solution files
(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

Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 9e483ab325445c4070e2ea86e1b57beb652c2590
1 file changed