Difference between revisions of "Build Environment Effort/Split Build"
From Apache OpenOffice Wiki
(Created page with '==Requirements== * The split parts should be buildable in an acceptable time. * The split should group modules together that have something in common. * The boundaries between th…') |
(→Proposal for a code architecture) |
||
Line 14: | Line 14: | ||
{| class="prettytable" border="1" width="100%" | {| class="prettytable" border="1" width="100%" | ||
|- | |- | ||
− | | extern | + | |extern |
− | | 00:17:29 | + | |00:17:29 |
− | | 00:23:07 | + | |00:23:07 |
|- | |- | ||
− | |ure 00:07:26 00:14:30 | + | |ure |
+ | |00:07:26 | ||
+ | |00:14:30 | ||
|- | |- | ||
− | |odk 00:03:13 00:16:34 | + | |odk |
+ | |00:03:13 | ||
+ | |00:16:34 | ||
|- | |- | ||
− | |common 00:19:05 00:25:45 | + | |common |
+ | |00:19:05 | ||
+ | |00:25:45 | ||
|- | |- | ||
− | |content 00:01:18 00:04:07 | + | |content |
+ | |00:01:18 | ||
+ | |00:04:07 | ||
|- | |- | ||
− | |deployment 00:01:23 00:03:43 | + | |deployment |
+ | |00:01:23 | ||
+ | |00:03:43 | ||
|- | |- | ||
− | |gui 00:11:04 00:15:33 | + | |gui |
+ | |00:11:04 | ||
+ | |00:15:33 | ||
|- | |- | ||
− | |framework 00:25:51 00:27:55 | + | |framework |
+ | |00:25:51 | ||
+ | |00:27:55 | ||
|- | |- | ||
− | |binfilter 00:17:37 00:28:51 | + | |binfilter |
+ | |00:17:37 | ||
+ | |00:28:51 | ||
|- | |- | ||
− | |toplevel 00:10:43 00:14:46 | + | |toplevel |
+ | |00:10:43 | ||
+ | |00:14:46 | ||
|- | |- | ||
− | |base 00:07:32 00:13:38 | + | |base |
+ | |00:07:32 | ||
+ | |00:13:38 | ||
|- | |- | ||
− | |draw 00:11:46 00:07:32 | + | |draw |
+ | |00:11:46 | ||
+ | |00:07:32 | ||
|- | |- | ||
− | |calc 00:14:40 00:23:20 | + | |calc |
+ | |00:14:40 | ||
+ | |00:23:20 | ||
|- | |- | ||
− | |writer 00:19:37 00:18:37 | + | |writer |
+ | |00:19:37 | ||
+ | |00:18:37 | ||
|- | |- | ||
− | |extensions 00:01:20 00:03:20 | + | |extensions |
+ | |00:01:20 | ||
+ | |00:03:20 | ||
|- | |- | ||
− | |packimages 00:00:53 00:03:08 | + | |packimages |
+ | |00:00:53 | ||
+ | |00:03:08 | ||
|- | |- | ||
− | |postprocess 00:00:02 00:00:43 | + | |postprocess |
+ | |00:00:02 | ||
+ | |00:00:43 | ||
|- | |- | ||
− | |instset 00:05:21 00:10:10 | + | |instset |
− | |- | + | |00:05:21 |
− | + | |00:10:10 | |
− | total 02:56:20 04:15:19 | + | |- |
− | + | |total | |
− | “nothing to do” 00:02:31 00:21:12 | + | |02:56:20 |
− | + | |04:15:19 | |
+ | |- | ||
+ | |“nothing to do” | ||
+ | |00:02:31 | ||
+ | |00:21:12 (00:06:24 without PCH) |
Revision as of 09:13, 28 October 2009
Requirements
- The split parts should be buildable in an acceptable time.
- The split should group modules together that have something in common.
- The boundaries between the groups should be along stable APIs where they exist code and non-code modules should be separated.
- There should be no cross build dependencies between groups (module A in group 1 depends on module B in group 2 and module C in group 2 depends on module D in group 1).
- There should be no cross runtime dependencies between groups (module A in group 1 depends on module B in group 2 and module C in group 2 depends on module D in group 1).
Proposal for a code architecture
File:Splitbuild architecture.jpg
I made tests on two platforms (Ubuntu Jaunty, Windows). Here are some results for Linux (all data has been collect on my Toshiba Tecra M5 notebook with 2 GHz Core 2 Duo and 4 GB RAM):
extern | 00:17:29 | 00:23:07 |
ure | 00:07:26 | 00:14:30 |
odk | 00:03:13 | 00:16:34 |
common | 00:19:05 | 00:25:45 |
content | 00:01:18 | 00:04:07 |
deployment | 00:01:23 | 00:03:43 |
gui | 00:11:04 | 00:15:33 |
framework | 00:25:51 | 00:27:55 |
binfilter | 00:17:37 | 00:28:51 |
toplevel | 00:10:43 | 00:14:46 |
base | 00:07:32 | 00:13:38 |
draw | 00:11:46 | 00:07:32 |
calc | 00:14:40 | 00:23:20 |
writer | 00:19:37 | 00:18:37 |
extensions | 00:01:20 | 00:03:20 |
packimages | 00:00:53 | 00:03:08 |
postprocess | 00:00:02 | 00:00:43 |
instset | 00:05:21 | 00:10:10 |
total | 02:56:20 | 04:15:19 |
“nothing to do” | 00:02:31 | 00:21:12 (00:06:24 without PCH) |