The gyp build doesn't do that only because it would mean parsing the input twice.
On Mon, May 4, 2015 at 3:29 PM, Scott Graham <sco...@chromium.org> wrote:The gyp build doesn't do that only because it would mean parsing the input twice.No, the gyp build doesn't do that because xcode and vc couldn't do that historically. Gyp already parses the input twice for release and debug.
The gyp build doesn't do that only because it would mean parsing the input twice.I'd like it if gn defaulted Debug to shared and Release to static.
On Mon, May 4, 2015 at 2:45 PM, Nico Weber <tha...@chromium.org> wrote:Personally, I think that both Debug and Release should be component by default.More generally, I think gn should match gyp until the transition is complete to make things less confusing for everyone.On Mon, May 4, 2015 at 2:44 PM, Brett Wilson <bre...@chromium.org> wrote:I'm finishing up the Windows component build. Normally we would toggle the debug bots over so this configuration is tested.But then I started to wonder whether a debug build should always just be a component build by default. Almost everybody sets this, and I can't think of a strong reason to do otherwise. The option to do a non-component debug build would still be there, but you'd have to explicitly turn it off.Does anybody have strong opinions to the contrary?Brett
To unsubscribe from this group and stop receiving emails from it, send an email to gn-dev+un...@chromium.org.
I don't think release should default to component. The main reason to do a release build is for perf testing or something
, and component build is inappropriate for that. Few people do release builds
I think it's because Windows has a debugger, whereas on other platforms it never seems worth it.So assuming we don't want table driven defaults, I guess static by default for all configs (in service of matching gyp) is probably best.
On Mon, May 4, 2015 at 3:51 PM, Brett Wilson <bre...@chromium.org> wrote:I don't think release should default to component. The main reason to do a release build is for perf testing or somethingI do all my development builds in Release on all platforms. They link faster.
On Mon, May 4, 2015 at 3:54 PM, Nico Weber <tha...@chromium.org> wrote:On Mon, May 4, 2015 at 3:51 PM, Brett Wilson <bre...@chromium.org> wrote:I don't think release should default to component. The main reason to do a release build is for perf testing or somethingI do all my development builds in Release on all platforms. They link faster.Is this due to the debug info in the .o's?
On Mon, May 4, 2015 at 3:54 PM, Nico Weber <tha...@chromium.org> wrote:On Mon, May 4, 2015 at 3:51 PM, Brett Wilson <bre...@chromium.org> wrote:I don't think release should default to component. The main reason to do a release build is for perf testing or somethingI do all my development builds in Release on all platforms. They link faster.Is this due to the debug info in the .o's? I recall gyp has some "fastbuild" thing that disables debug info but also disables optimizations.
Perhaps it's useful to take a step back from this notion that there must be exactly two build types and that their names are debug and release. It seems to me you want one which is "I am hackin' on the code", where you want fast build times and debug info if possible, and you also certainly need some way to build the one that users get, and then finally you want some way to build states that are in between the above two.PS: I think google3 debug mode builds tests in components but non-tests as single files.