Difference between revisions of "Build Environment Effort/Split Build"

From Apache OpenOffice Wiki
Jump to: navigation, search
(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 AM
+
|-
+
|total
“nothing to do” 00:02:31 00:21:12
+
|02:56:20
00:06:24
+
|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)
Personal tools