RESOLVED FIXED 110498
[GTK] Expose all dependencies to the gyp build
https://bugs.webkit.org/show_bug.cgi?id=110498
Summary [GTK] Expose all dependencies to the gyp build
Martin Robinson
Reported 2013-02-21 12:16:38 PST
With the ease of adding new dependencies in mind, we should roll them into Configuration.gypi. This is a good moment to add all the dependencies from our configuration step as well. They're necessary to build WebCore.
Attachments
Patch (14.21 KB, patch)
2013-02-21 12:50 PST, Martin Robinson
no flags
Patch (10.18 KB, patch)
2013-02-22 09:42 PST, Martin Robinson
dpranke: review+
Martin Robinson
Comment 1 2013-02-21 12:50:27 PST
Dirk Pranke
Comment 2 2013-02-21 15:34:01 PST
Comment on attachment 189579 [details] Patch Doesn't this result in multiple copies of each dependency target in the sub-makefiles?
Martin Robinson
Comment 3 2013-02-21 15:48:21 PST
Comment on attachment 189579 [details] Patch It does seem to do that.
Martin Robinson
Comment 4 2013-02-21 16:04:33 PST
It seems like there are two options to avoid this. One is to continue to manage the dependency targets in two separate files again and the other is to also run Dependencies.gyp through the autoconf preprocessor.
Dirk Pranke
Comment 5 2013-02-21 16:35:45 PST
two separate files? can't you just list the dependencies in a one file? I'm not sure I understand the comment about running Dependencies.gyp through the autoconf processor, though. I'm guessing that's probably related (and maybe does make sense). Generally, we only put variable definitions and other settings in files that are passed in via -I, not actual targets (for the reason just cited, among others).
Martin Robinson
Comment 6 2013-02-21 16:47:31 PST
(In reply to comment #5) > two separate files? can't you just list the dependencies in a one file? > > I'm not sure I understand the comment about running Dependencies.gyp through the autoconf processor, though. I'm guessing that's probably related (and maybe does make sense). > > Generally, we only put variable definitions and other settings in files that are passed in via -I, not actual targets (for the reason just cited, among others). All the template fields in Configuration.gypi.in (looking like @FOO_CFLAGS@) are filled in during './configure' and the result is written to Configuration.gypi in the build directory. Since Configuration.gypi cannot contain targets in a sane way, we'll likely need to keep targets in a separate file -- Dependencies.gyp. I think that I chose to use the variables (<(FOO_CLFAGS) etc) directly because it would avoid having to add boilerplate across more than one file. There are some important benefits to using targets to represent dependencies, but it does increase the amount of boilerplate necessary to add the n+1.
Dirk Pranke
Comment 7 2013-02-21 17:24:08 PST
(In reply to comment #6) > (In reply to comment #5) > > two separate files? can't you just list the dependencies in a one file? > > > > I'm not sure I understand the comment about running Dependencies.gyp through the autoconf processor, though. I'm guessing that's probably related (and maybe does make sense). > > > > Generally, we only put variable definitions and other settings in files that are passed in via -I, not actual targets (for the reason just cited, among others). > > All the template fields in Configuration.gypi.in (looking like @FOO_CFLAGS@) are filled in during './configure' and the result is written to Configuration.gypi in the build directory. Since Configuration.gypi cannot contain targets in a sane way, we'll likely need to keep targets in a separate file -- Dependencies.gyp. I think that I chose to use the variables (<(FOO_CLFAGS) etc) directly because it would avoid having to add boilerplate across more than one file. There are some important benefits to using targets to represent dependencies, but it does increase the amount of boilerplate necessary to add the n+1. Ah, right, two files == configuration + dependencies.
Martin Robinson
Comment 8 2013-02-22 09:42:13 PST
Martin Robinson
Comment 9 2013-02-22 09:43:46 PST
This is a simplified patch that just fills in the gaps in terms of dependencies.
Dirk Pranke
Comment 10 2013-02-22 14:07:49 PST
Comment on attachment 189784 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=189784&action=review It does seem like generating Dependencies.gyp from a Dependencies.gyp.in might make things clearer and remove some of the duplication, but this is fine for now (and up to you). > Source/WebKit/gtk/gyp/Dependencies.gyp:13 > + nit: stylistically, we don't usually separate these blocks w/ blank lines.
Martin Robinson
Comment 11 2013-02-22 21:41:51 PST
Martin Robinson
Comment 12 2013-02-22 21:43:10 PST
(In reply to comment #10) > (From update of attachment 189784 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=189784&action=review > > It does seem like generating Dependencies.gyp from a Dependencies.gyp.in might make things clearer and remove some of the duplication, but this is fine for now (and up to you). Thanks for the review! It's a little tricky right now, because things processed by configure should really end up in the build directory. That means we'd need to have some extra variables in Configuration.gypi (itself in the build directory) so that we can get the proper path for inclusion. > > > Source/WebKit/gtk/gyp/Dependencies.gyp:13 > > + > > nit: stylistically, we don't usually separate these blocks w/ blank lines. I've fixed this. :)
Note You need to log in before you can comment on or make changes to this bug.