Build Environment Effort/Split Build
From Apache OpenOffice Wiki
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 |