Build Environment Effort/Split Build

From Apache OpenOffice Wiki
Jump to: navigation, search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Edit.png

Build Environment Effort

Quick Navigation

About this template


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

Based on the investigations described here I have a first proposal for an architecture supporting a split build:

Splitbuild architecture.png

I made tests on two platforms (Ubuntu Jaunty, Windows with PCH). 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)

Next steps

The huge "common" group could be split up. Here's a build dependency diagram of the modules in it:

Common dependencies.png

Personal tools