LibreOffice: Code Structure
By Miklos Vajna
Senior Software Engineer at Collabora Productivity 2017-10-11 @CollaboraOffice www.CollaboraOffice.com
LibreOffice: Code Structure By Miklos Vajna Senior Software - - PowerPoint PPT Presentation
LibreOffice: Code Structure By Miklos Vajna Senior Software Engineer at Collabora Productivity 2017-10-11 @CollaboraOffice www.CollaboraOffice.com About Miklos From Hungary More blurb: http://vmiklos.hu/ Google Summer of Code
By Miklos Vajna
Senior Software Engineer at Collabora Productivity 2017-10-11 @CollaboraOffice www.CollaboraOffice.com
2 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
3 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
4 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
knowing its age
6 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
a k e d u m p s
e p s
n g
less) duplication of this
also part of the URE
7 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
but for now:
reused somewhere else
layer for the suite
8 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
infrastructure for C++, e.g. WeakImplHelper
createInstance() implementation leaves here
9 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
Broker, a Virtual File System abstraction
powerful way to represent languages/locales
and UNO
stuff, intentionally not part of the URE
11 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
graphic types for basic graphics
– Equivalent of UCB / sal fjle
pieces
12 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
CppUnit tests (external module)
components can be tested
available
VCL, UCB, etc.
modules
13 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
low-level UNO interfaces
SvStream conversion ↔
implementation
were in svx/sfx2 earlier
14 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
LibreOffjce graphical toolkit
supports alpha and anti-aliasing, used by slideshow
API
EMF/SVG import
15 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
loader/serializer
drivers
jdbc, odbc, Calc/Writer
provides the fast parser (a SAX API)
16 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
listener)
accessible ruler)
18 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
toolbars, menus, status bar, sidebars, task panes
logic
management
dialogs
19 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
between sc and reportdesign
hyphenating
ODF/OOXML/PDF signing
basic for MSO VBA interop
20 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
code
binary MSO support, etc.
support:
21 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
Impress)
presentations
22 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
24 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
– confjg_host.mk from confjg_host.mk.in, contains all
the environment variables
– confjg_host/*.h, C++ headers
25 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
distro=LibreOffjceAndroid
26 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
– You can build each independently after a full build – All rules are built by $(call Function,…) magic, we don’t use
any of the build-in rules
– If something is compiled, we have an explicit rule for it
somewhere, you can fjnd it
named function parameters ($(1), $(7))
27 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
28 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
– Using solenv/bin/pack_images.py – build icon theme .zip and
sort it by access pattern
– Builds confjguration fjles from offjcecfg/.
– Builds services.rdb fjle .component fjles
29 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
30 / 30 LibreOffice Conference 2017, Rome | Miklos Vajna
them.