On Fri, Oct 17, 2008 at 3:33 PM, Steven Knight <[EMAIL PROTECTED]> wrote:
> We're getting ready to start going live (really) with the Hammer build > configuration for Chromium. This is to give everyone a heads up, and allow > for feedback. > Testing the default SCons generation of Visual Studio project and solution > files turned up some usability issues, mainly around how you figure out > (from within Visual Studio) which SCons configuration file you have to edit > to affect the build of a specific target. > > Out of this, we have some CLs teed up with some significant changes to the > overall structure of the SCons config files. The general goal is to make it > easier for people to work with the SCons configuration through Visual Studio > and XCode. If any of these changes seems problematic, let me know > (especially if already been working with the SCons build): > > - Change the build output directory names from "Debug" and "Release" to > platform-specific names: > > debug-linux > release-linux > debug-mac > release-mac > debug-win > release-win > > The rationale here is that we need platform-specific build directory names > for builds in working directories cross-mounted on multiple platforms. All > lower case will be easier typing on case-sensitive systems. > > The main impact here will be on the buildbots, but you would also have to > update personal scripts that hard-code references to "Debug" or "Release". > Let me know if that would cause a lot of pain. > > > - Change the names of "SConscript*" files to "*.scons" files. In > addition to being a little more flexible with the naming, this will let us > turn on syntax coloring in various IDEs for "*.scons" files. > > > - Have each "*.scons" file build one target, with one construction > environment per "*.scons" file. The current structure has (for example) > one "net\SConscript" file that builds "net.lib" and its various test > executables. This would get replaced with the following set of " > *.scons" files: > > net\net.scons > net\net_lib.scons > net\net_resources.scons > net\net_perftests.scons > net\net_unittests.scons > net\crash_cache.scons > net\stress_cache.scons > > Did you consider putting the target-specific scons files in a subdirectory? Maybe in a subdirectory named build? Or, does having them at the root of net/ like this make some things better? What is the difference between net.scons and net_lib.scons in this example? -Darin > > The idea here, of course, is to make it easier to navigate to the proper > build configuration when you need to make a change to what gets linked in to > a specific target, or to what flags it's built with. As an additional > benefit, this makes the actual contents of the "*.scons" files much more > readable, because you don't have to distinguish between configuration items > for multiple targets all jammed into one location. > > (Note that one-target-per-*.scons-file will be a guideline, not a > hard-and-fast rule. If there is a good reason to build several common > targets from one "*.scons" file, that'll be okay. This is all about > practicality.) > > > - We'll create "using_*.scons" files as analogues to the current " > using_*.vsprops" files. This cleans up and centralizes a lot of > configuration in the rest of the "*.scons" files. > > Note that the Mac build currently uses fewer coarser-grained "*.xcconfig" > settings > for similar configuration. If it makes sense, we can always add a > analogous "*.scons" files to collect multiple settings in a similar way. > I think, however, that the finer-grained settings should end up working as > well on Mac as they will on Linux, say. > > > - We're going to change the project hierarchy on the SCons-generated > Visual Studio project and solution files. There seems to be reasonable > consensus that a project hierarchy that mirrors the file system will be > easier for people to navigate than the current App / Browser / Installer / > Libraries division. (The Mac team already structure their XCode projects > like the file system, for example.) We'll test it out, figure out if it > works well for people in practice, and adjust accordingly. > > +1 :) > > - > > > - Generated XCode project files are in the works and will follow (I > hope sooner rather than later). > > Modulo feedback-induced changes, we'll be going ahead roughly as follows > (with some of these steps going on in parallel): > > 1. Check in the CLs that restructure the SCons config as described > above for the base, net and googleurl modules. > 2. Get feedback on the Visual Studio experience from some early > tire-kickers. > 3. Switch the "Modules*" buildbot slaves to build the SCons build, not > the legacy Visual Studio build. You'll still be able to use the legacy > Visual Studio project files, but this will start encouraging adoption of > the > new build configuration. > 4. Restructure the webkit and chrome SCons configs per above. > 5. Switch the remaining buildbots to using SCons-generated config. > > Any and all feedback welcome, > > --SK > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Chromium-dev" group. To post to this group, send email to chromium-dev@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/chromium-dev?hl=en -~----------~----~----~----~------~----~------~--~---