[chromium-dev] Re: Let's make build system history!
bump. On Wed, Feb 25, 2009 at 2:27 PM, Mark Mentovaim...@chromium.org wrote: Over the past month, some of us have been working on a not-so-well-kept secret project to create a build system system. Our goal is to have something Generate Your Projects (GYP) in a variety of formats, all from the same source. Today, we're ready to allow Mac developers to begin testing this experimental system. If you're on a Mac, I encourage you to try this out. From the src/build directory in a Chromium working copy, run: ../tools/gyp/gyp and in less than 10 seconds, a whole bunch of new Xcode projects will be generated for you. For the most part, they follow the same structure as the existing Xcode projects you're familiar with, so if you've been working with chrome.xcodeproj or test_shell.xcodeproj, you'll have no problem finding and using chrome_gyp.xcodeproj and test_shell_gyp.xcodeproj. Similarly, build results go into xcodebuild_gyp. The _gyp suffix is temporary, and keeps us from clobbering the old checked-in project files. Right now, Generating Your Projects is voluntary and manual. If a .gyp file changes because you've edited it or because of a sync, you'll need to re-run the above command to regenerate your project files. Before we go live, we'll add a hook to gclient to Generate Your Projects automatically when .gyp files change during a sync. I believe that the generated projects are now at parity with the old checked-in project files, but the .gyp files do suffer from becoming outdated pretty quickly. If you're adding or removing files from the tree, I'd appreciate it if you could help me out by making the appropriate modifications to our .gyp files. For the time being, please Cc me on all reviews involving a .gyp file. I think you'll all find that maintaining .gyp files is far easier than working with Xcode projects. We have some work-in-progress documentation available at http://code.google.com/p/gyp/w/list to help orient yourself. I'll be working more on the documentation in the days to come. We've also made significant progress on gyp-based Visual Studio, SCons, and Makefile generation, so those of you who aren't using Macs won't miss out for too long. Have fun! Mark --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] Re: Let's make build system history!
The GYP-based build is now automatic, mandatory, and totally awesome on the Mac. I just checked in a change to remove our old Xcode projects and have GYP generate project files for you every time you gclient sync. If you participated in the test on Friday, please remove the hooks section from your .gclient file. Project file generation is now automatic on all Macs via a hook in the DEPS file. In order to maintain the Mac build now, you must edit the .gyp files checked in throughout the tree. Some of you have been doing this already (thanks!) and all of the feedback I've received with respect to .gyp file maintenance has been very positive. Additional documentation will be coming soon. In the mean time, you no longer need to Cc me on reviews involving trivial changes to .gyp files (such as adding or removing files), although I will keep up with changes to those files after they've been committed for at least the next week. If you have more complicated .gyp file changes to make, or you just want peace of mind, please do send the review to me. When you make a change to a .gyp file locally and want to regenerate new Xcode projects, you can use gclient runhooks --force. This is a new command that will cause the GYP hook in the DEPS file to run. Please use this instead of invoking GYP directly as I had previously advised. If you have made any local modifications to the old set of Xcode projects, just revert them. Mark --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] Re: Let's make build system history!
Awesome! Thanks for getting this together, Mark. Do you have any idea what the ETA for Linux and Windows is? -Ben On Sun, Mar 1, 2009 at 4:32 PM, Mark Mentovai m...@chromium.org wrote: The GYP-based build is now automatic, mandatory, and totally awesome on the Mac. I just checked in a change to remove our old Xcode projects and have GYP generate project files for you every time you gclient sync. If you participated in the test on Friday, please remove the hooks section from your .gclient file. Project file generation is now automatic on all Macs via a hook in the DEPS file. In order to maintain the Mac build now, you must edit the .gyp files checked in throughout the tree. Some of you have been doing this already (thanks!) and all of the feedback I've received with respect to .gyp file maintenance has been very positive. Additional documentation will be coming soon. In the mean time, you no longer need to Cc me on reviews involving trivial changes to .gyp files (such as adding or removing files), although I will keep up with changes to those files after they've been committed for at least the next week. If you have more complicated .gyp file changes to make, or you just want peace of mind, please do send the review to me. When you make a change to a .gyp file locally and want to regenerate new Xcode projects, you can use gclient runhooks --force. This is a new command that will cause the GYP hook in the DEPS file to run. Please use this instead of invoking GYP directly as I had previously advised. If you have made any local modifications to the old set of Xcode projects, just revert them. Mark --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] Re: Let's make build system history!
Mark rocks! Send him your money. :DG On Sun, Mar 1, 2009 at 5:39 PM, Ben Goodger (Google) b...@chromium.org wrote: Awesome! Thanks for getting this together, Mark. Do you have any idea what the ETA for Linux and Windows is? -Ben On Sun, Mar 1, 2009 at 4:32 PM, Mark Mentovai m...@chromium.org wrote: The GYP-based build is now automatic, mandatory, and totally awesome on the Mac. I just checked in a change to remove our old Xcode projects and have GYP generate project files for you every time you gclient sync. If you participated in the test on Friday, please remove the hooks section from your .gclient file. Project file generation is now automatic on all Macs via a hook in the DEPS file. In order to maintain the Mac build now, you must edit the .gyp files checked in throughout the tree. Some of you have been doing this already (thanks!) and all of the feedback I've received with respect to .gyp file maintenance has been very positive. Additional documentation will be coming soon. In the mean time, you no longer need to Cc me on reviews involving trivial changes to .gyp files (such as adding or removing files), although I will keep up with changes to those files after they've been committed for at least the next week. If you have more complicated .gyp file changes to make, or you just want peace of mind, please do send the review to me. When you make a change to a .gyp file locally and want to regenerate new Xcode projects, you can use gclient runhooks --force. This is a new command that will cause the GYP hook in the DEPS file to run. Please use this instead of invoking GYP directly as I had previously advised. If you have made any local modifications to the old set of Xcode projects, just revert them. Mark --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] Re: Let's make build system history!
Ben Goodger wrote: Awesome! Thanks for getting this together, Mark. Do you have any idea what the ETA for Linux and Windows is? My pleasure! I know that the MSVS and Linux SCons generators are up as far as WebKit, or nearly so. WebKit's really the difficult piece of the puzzle, so once that's solid, it shouldn't be long. Perhaps bradn (MSVS) and sgk (SCons) can provide better estimates of when they think their generators will be ready to begin wider testing. evanm has also been working on a Linux Makefile generator, which is newer and I think not quite as far along, but I hear it's pretty zippy. Mark --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] Re: Let's make build system history!
Mac users, help me test out GYP's integration with gclient. Please add this to the end of your .gclient file, which lives in the parent of your src directory: hooks = [ { pattern: \\.gypi?$, action: [python, src/tools/gyp/gyp, src/build/all.gyp], } ] This tells gclient to run GYP any time a .gyp or .gypi file changes. (.gypi files are ones that get included into other .gyp files.) gclient will run GYP during sync and revert operations as needed. When you check out an updated .gyp file, you'll wind up with a corresponding updated .xcodeproj. I'm also planning on adding something to process hooks on files that you have modified in your own tree. Until then, you'll still need to run GYP manually when you change .gyp files to get your Xcode projects regenerated. Just use the command I sent out before, run ../tools/gyp/gyp from the src/build directory. This .gclient modification is temporary. When we go live with this, within the next few days, the hook will move into the DEPS file, so you won't need to specify it manually. At that point, I'll ask everyone who has put the hook in their .gclient to remove it. Mark --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---
[chromium-dev] Re: Let's make build system history!
Matt Perry wrote: Does this mean the checked-in xcode project files are obsolete? Not yet, but they will be soon. Or do we need to update both .gyp and .xcodeproj files now? If you only update one, it has to be the checked-in .xcodeproj for now. That's still the official build for the Mac. Ideally you'd update the .gyp too and Cc me on the review. You don't have to wait for a response from me for simple changes, I just want to keep tabs on what's changing because I'm still working pretty heavily on some parts. The more that people start updating .gyp files when they change things now, the less I'll have to play catch-up. That leaves me with more time to finish the actual conversion so that we can svn remove the old xcodeprojs and switch to GYP-only on the Mac. I think that this is in everyone's best interest, but especially mine. Mark --~--~-~--~~~---~--~~ Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev -~--~~~~--~~--~--~---