Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Issue 11412211: [sync] Componentize sync: Part Final: Target 'sync' is now its own component (Closed)

Created:
8 years ago by Raghu Simha
Modified:
7 years, 10 months ago
CC:
chromium-reviews, Aaron Boodman, chromium-apps-reviews_chromium.org, haitaol1, tim (not reviewing)
Visibility:
Public.

Description

[sync] Componentize sync: Part Final: Target 'sync' is now its own component One of the long term goals of the sync team has been to pull sync out of chrome_dll and into its own component. This should result in faster link times for component builds, and cleaner demarcation between sync code and the rest of chrome. This patch does the following: - Splits off sync.gyp into gypi files for sync_core, sync_api, sync_internal_api, sync_notifier and sync_proto. - Audits the dependencies of various targets in sync.gyp, sync_tests.gyp, and other chrome gyp files, and makes sure all dependencies are explicitly declared. - Makes targets declared in gyp files outside sync.gyp directly depend on sync.gyp:sync instead of inner sync targets. - Implements two versions of the target 'sync.gyp:sync': 1) In static mode, the public 'sync' target has a target type of 'none', and is composed of the static library targets 'sync_api', 'sync_core', 'sync_internal_api', 'sync_notifier', and 'sync_proto'. 2) In component mode, we build the public 'sync' target into a single shared library, which includes the contents of sync_api.gypi, sync_core.gypi, sync_internal_api.gypi, sync_notifier.gypi, and sync_proto.gypi. TBR=akalin,robertshield,thakis BUG=136928 TEST=Set GYP_DEFINES="component=shared_library" and build the 'all' target on all platforms. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=180034

Patch Set 1 : Add SYNC_EXPORTs, fix gyp files, greenify component build #

Patch Set 2 : Rebase on r171683 (no code changes) #

Total comments: 10

Patch Set 3 : CR Feedback + various compile fixes #

Patch Set 4 : Separate out sync.gyp into gypi files and fix chrome build #

Patch Set 5 : Component build working on all platforms #

Total comments: 12

Patch Set 6 : CR Feedback #

Patch Set 7 : Rebase + merge (for trybots only; no actual code changes) #

Patch Set 8 : Rebase + merge with net->sync dependency fix (no code changes) #

Total comments: 18

Patch Set 9 : Address CR Feedback #

Total comments: 6

Patch Set 10 : Address more CR feedback #

Total comments: 2

Patch Set 11 : Simplify change to protobuf_lite #

Patch Set 12 : sync_proto goes back to being a static_library. #

Total comments: 2

Patch Set 13 : Fix nit #

Patch Set 14 : Rebase + merge #

Patch Set 15 : Make sure sync_proto is linked into just one component #

Total comments: 2

Patch Set 16 : Don't export sync_proto from component sync. #

Patch Set 17 : Rebase + Merge + Undo copyright changes #

Unified diffs Side-by-side diffs Delta from patch set Stats (+631 lines, -1608 lines) Patch
M chrome/chrome.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +2 lines, -2 lines 0 comments Download
M chrome/chrome_browser.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 3 chunks +5 lines, -7 lines 0 comments Download
M chrome/chrome_browser_chromeos.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +2 lines, -6 lines 0 comments Download
M chrome/chrome_browser_extensions.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +2 lines, -2 lines 0 comments Download
M chrome/chrome_browser_ui.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +2 lines, -6 lines 0 comments Download
M chrome/chrome_tests.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 12 chunks +10 lines, -17 lines 0 comments Download
M chrome/chrome_tests_unit.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 3 chunks +4 lines, -4 lines 0 comments Download
M chrome_frame/chrome_frame.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 3 chunks +3 lines, -3 lines 0 comments Download
M jingle/jingle.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +1 line, -0 lines 0 comments Download
M sync/base/sync_export.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +1 line, -2 lines 0 comments Download
M sync/internal_api/public/base/unique_position.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +2 lines, -1 line 0 comments Download
M sync/internal_api/public/delete_journal.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +2 lines, -1 line 0 comments Download
D sync/protocol/sync_proto.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +0 lines, -49 lines 0 comments Download
M sync/sync.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +80 lines, -1007 lines 0 comments Download
A sync/sync_api.gypi View 1 2 3 4 5 6 7 1 chunk +33 lines, -0 lines 0 comments Download
A sync/sync_core.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +190 lines, -0 lines 0 comments Download
A sync/sync_internal_api.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +111 lines, -0 lines 0 comments Download
A sync/sync_notifier.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +64 lines, -0 lines 0 comments Download
A sync/sync_proto.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +51 lines, -0 lines 0 comments Download
A + sync/sync_tests.gypi View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 chunks +51 lines, -495 lines 0 comments Download
M sync/syncable/syncable_base_transaction.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +3 lines, -3 lines 0 comments Download
M sync/syncable/syncable_base_transaction.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +8 lines, -0 lines 0 comments Download
M sync/syncable/syncable_delete_journal.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +2 lines, -1 line 0 comments Download
M sync/syncable/syncable_read_transaction.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +1 line, -1 line 0 comments Download
M sync/syncable/syncable_write_transaction.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 43 (0 generated)
Raghu Simha
Guys, please review. Thanks. Fred: Overall review. Ryan: I'd like to avoid the dummy file ...
8 years ago (2012-11-28 02:23:27 UTC) #1
akalin
On 2012/11/28 02:23:27, rsimha wrote: > Guys, please review. Thanks. > > Fred: Overall review. ...
8 years ago (2012-11-28 02:27:59 UTC) #2
Ryan Sleevi
On 2012/11/28 02:23:27, rsimha wrote: > Guys, please review. Thanks. > > Fred: Overall review. ...
8 years ago (2012-11-28 03:55:51 UTC) #3
Raghu Simha
On 2012/11/28 02:27:59, akalin wrote: > Mmm, how does this work with the component build? ...
8 years ago (2012-11-28 23:05:56 UTC) #4
akalin
On 2012/11/28 23:05:56, rsimha wrote: > On 2012/11/28 02:27:59, akalin wrote: > > Mmm, how ...
8 years ago (2012-11-28 23:27:48 UTC) #5
Raghu Simha
Fred, sorry about the delay in updating this, but I believe I've cleaned things up ...
8 years ago (2012-12-06 06:20:39 UTC) #6
Raghu Simha
Hit send too soon. Replies inline. On 2012/11/28 23:27:48, akalin wrote: > Hmm, I tried ...
8 years ago (2012-12-06 06:23:28 UTC) #7
Ryan Sleevi
On 2012/12/06 06:23:28, rsimha wrote: > Hit send too soon. Replies inline. > > On ...
8 years ago (2012-12-07 03:01:16 UTC) #8
Ryan Sleevi
I have not closely paid attention to the SYNC_EXPORTs and whether some should be a ...
8 years ago (2012-12-07 03:16:31 UTC) #9
Raghu Simha
Ryan, thanks for the review. PTAL. On 2012/12/07 03:16:31, Ryan Sleevi wrote: > I have ...
8 years ago (2012-12-07 06:08:33 UTC) #10
Raghu Simha
After chatting with Fred, I'm splitting off the numerous SYNC_EXPORT annotations into their own patch ...
8 years ago (2012-12-10 22:50:49 UTC) #11
Raghu Simha
Fred, PTAL. I've significantly reworked this patch based on the advice on chromium-dev, and following ...
8 years ago (2012-12-22 02:08:13 UTC) #12
Raghu Simha
Fred, Tim: PTAL. Sending this out once again, now that all the prerequisite CLs for ...
7 years, 11 months ago (2013-01-07 12:28:39 UTC) #13
akalin
https://codereview.chromium.org/11412211/diff/130027/chrome/chrome_browser.gypi File chrome/chrome_browser.gypi (right): https://codereview.chromium.org/11412211/diff/130027/chrome/chrome_browser.gypi#newcode36 chrome/chrome_browser.gypi:36: '../sql/sql.gyp:sql', i assume you found a direct include of ...
7 years, 11 months ago (2013-01-07 20:14:51 UTC) #14
Raghu Simha
Fred, PTAL. Responses below. https://codereview.chromium.org/11412211/diff/130027/chrome/chrome_browser.gypi File chrome/chrome_browser.gypi (right): https://codereview.chromium.org/11412211/diff/130027/chrome/chrome_browser.gypi#newcode36 chrome/chrome_browser.gypi:36: '../sql/sql.gyp:sql', On 2013/01/07 20:14:51, akalin ...
7 years, 11 months ago (2013-01-08 11:27:48 UTC) #15
Ryan Sleevi
https://codereview.chromium.org/11412211/diff/130027/net/net.gyp File net/net.gyp (left): https://codereview.chromium.org/11412211/diff/130027/net/net.gyp#oldcode1907 net/net.gyp:1907: '../sync/protocol/sync_proto.gyp:sync_proto', On 2013/01/08 11:27:48, rsimha wrote: > On 2013/01/07 ...
7 years, 11 months ago (2013-01-08 19:16:12 UTC) #16
Raghu Simha
Fred, Ryan, Tim: PTAL. Fred: All your comments should now be addressed. Tim: General review, ...
7 years, 11 months ago (2013-01-22 08:03:44 UTC) #17
Raghu Simha
https://codereview.chromium.org/11412211/diff/130027/net/net.gyp File net/net.gyp (left): https://codereview.chromium.org/11412211/diff/130027/net/net.gyp#oldcode1907 net/net.gyp:1907: '../sync/protocol/sync_proto.gyp:sync_proto', On 2013/01/08 11:27:48, rsimha wrote: > You're right ...
7 years, 11 months ago (2013-01-22 09:25:41 UTC) #18
tim (not reviewing)
At a high level this patch LGTM with the nits below, but I didn't review ...
7 years, 11 months ago (2013-01-22 23:29:58 UTC) #19
Ryan Sleevi
https://codereview.chromium.org/11412211/diff/167003/chrome/chrome_browser.gypi File chrome/chrome_browser.gypi (right): https://codereview.chromium.org/11412211/diff/167003/chrome/chrome_browser.gypi#newcode42 chrome/chrome_browser.gypi:42: '../sync/sync.gyp:sync_proto', If I understand your CL description, this should ...
7 years, 11 months ago (2013-01-23 01:05:20 UTC) #20
Raghu Simha
Ryan, Tim, PTAL. Ryan: Thanks for the useful feedback. In addition to addressing the fixes ...
7 years, 11 months ago (2013-01-23 03:43:46 UTC) #21
Ryan Sleevi
https://codereview.chromium.org/11412211/diff/159030/sync/base/sync_export.h File sync/base/sync_export.h (right): https://codereview.chromium.org/11412211/diff/159030/sync/base/sync_export.h#newcode18 sync/base/sync_export.h:18: // TODO(rsimha): Include a link to a doc on ...
7 years, 11 months ago (2013-01-23 04:06:21 UTC) #22
Raghu Simha
Ryan, your comments are addressed below. PTAL. https://codereview.chromium.org/11412211/diff/159030/sync/base/sync_export.h File sync/base/sync_export.h (right): https://codereview.chromium.org/11412211/diff/159030/sync/base/sync_export.h#newcode18 sync/base/sync_export.h:18: // TODO(rsimha): ...
7 years, 11 months ago (2013-01-23 08:04:06 UTC) #23
Ryan Sleevi
All the other GYP changes look good but the one below https://codereview.chromium.org/11412211/diff/161035/third_party/protobuf/protobuf.gyp File third_party/protobuf/protobuf.gyp (right): ...
7 years, 11 months ago (2013-01-23 19:34:36 UTC) #24
Raghu Simha
Ryan, your last comment is addressed below. PTAL. https://codereview.chromium.org/11412211/diff/161035/third_party/protobuf/protobuf.gyp File third_party/protobuf/protobuf.gyp (right): https://codereview.chromium.org/11412211/diff/161035/third_party/protobuf/protobuf.gyp#newcode210 third_party/protobuf/protobuf.gyp:210: ], ...
7 years, 11 months ago (2013-01-23 20:23:29 UTC) #25
Ryan Sleevi
On 2013/01/23 20:23:29, rsimha wrote: > Ryan, your last comment is addressed below. PTAL. > ...
7 years, 11 months ago (2013-01-23 20:44:16 UTC) #26
Raghu Simha
+Dirk, who advised me about this change in the past. Dirk, could you please review ...
7 years, 11 months ago (2013-01-23 20:57:23 UTC) #27
Raghu Simha
I investigated further into changing the target type of protobuf_lite to '<(component)', and it appears ...
7 years, 11 months ago (2013-01-23 23:13:40 UTC) #28
Raghu Simha
+Tommy for sync/android/DEPS. There was a deps warning due to src/sync/android/java/src/org/chromium/sync/internal_api/pub/base/ModelType.java. See http://build.chromium.org/p/tryserver.chromium/builders/linux_chromeos_asan/builds/3742/steps/check_deps/logs/stdio
7 years, 11 months ago (2013-01-24 03:09:40 UTC) #29
Raghu Simha
On 2013/01/23 23:13:40, rsimha wrote: > I investigated further into changing the target type of ...
7 years, 11 months ago (2013-01-24 10:55:15 UTC) #30
Ryan Sleevi
GYP changes LGTM. The whole protobufs-in-a-DLL-interface seems quite messy, so I think this is a ...
7 years, 11 months ago (2013-01-24 17:14:40 UTC) #31
Raghu Simha
Thanks for the review, Ryan. https://codereview.chromium.org/11412211/diff/166020/sync/sync.gyp File sync/sync.gyp (right): https://codereview.chromium.org/11412211/diff/166020/sync/sync.gyp#newcode163 sync/sync.gyp:163: }, On 2013/01/24 17:14:40, ...
7 years, 11 months ago (2013-01-24 19:31:35 UTC) #32
nyquist
sync/android/DEPS lgtm
7 years, 11 months ago (2013-01-24 21:35:32 UTC) #33
Raghu Simha
+thakis@ for OWNERS approval of chrome/chrome*.gypi +robertshield@ for OWNERS approval of chrome_frame.gyp
7 years, 11 months ago (2013-01-25 06:24:00 UTC) #34
Raghu Simha
@timsteele: I had to exclude a handful of sync unit tests from linux component builds ...
7 years, 11 months ago (2013-01-25 07:51:31 UTC) #35
Raghu Simha
On 2013/01/25 07:51:31, rsimha wrote: > @timsteele: I had to exclude a handful of sync ...
7 years, 11 months ago (2013-01-25 21:01:20 UTC) #36
Ryan Sleevi
https://codereview.chromium.org/11412211/diff/191001/sync/sync.gyp File sync/sync.gyp (right): https://codereview.chromium.org/11412211/diff/191001/sync/sync.gyp#newcode136 sync/sync.gyp:136: 'export_dependent_settings': [ 'sync_proto' ], If you're doing this, then ...
7 years, 11 months ago (2013-01-26 04:59:26 UTC) #37
Raghu Simha
The crashes were being caused by the fact that we were linking multiple instances of ...
7 years, 10 months ago (2013-01-29 20:05:48 UTC) #38
Ryan Sleevi
On 2013/01/29 20:05:48, rsimha wrote: > The crashes were being caused by the fact that ...
7 years, 10 months ago (2013-01-29 20:13:10 UTC) #39
Raghu Simha
On 2013/01/29 20:13:10, Ryan Sleevi wrote: > Then you'll need to make sure that all ...
7 years, 10 months ago (2013-01-29 20:27:27 UTC) #40
Raghu Simha
On 2013/01/29 20:27:27, rsimha wrote: > I'm working on componentizing protobuf_lite in a separate patch ...
7 years, 10 months ago (2013-01-30 00:00:36 UTC) #41
Raghu Simha
Ryan, this CL is good to land, now that protobuf_lite is a component. Figured I'd ...
7 years, 10 months ago (2013-01-31 06:44:27 UTC) #42
Raghu Simha
7 years, 10 months ago (2013-01-31 23:08:45 UTC) #43
Landing this once trybots are happy.

Powered by Google App Engine
This is Rietveld 408576698