No description
  • C++ 82.5%
  • Java 5.1%
  • Rich Text Format 2.4%
  • Python 2%
  • PostScript 1.9%
  • Other 5.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Bryan Fred ac5440e5f1 Anchor: LibreOffice HEAD@2026-06-08
Single-commit anchor at upstream tag/ref HEAD@2026-06-08 (sha 1c3504e63098fb14011a3136db5a10f5a5af7aca).
History before this anchor lives at upstream (https://github.com/LibreOffice/core).
Forward-only merges from upstream are tracked from this anchor onward
per UPSTREAM-MERGE-DISCIPLINE.md.
2026-06-08 22:06:12 +00:00
.config Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
.cspell Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
.git-hooks Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
.github Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
.vscode Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
android Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
animations Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
apple_remote Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
avmedia Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
basctl Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
basegfx Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
basic Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
bean Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
bin Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
binaryurp Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
bridges Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
canvas Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
chart2 Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
cli_ure Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
codemaker Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
comphelper Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
compilerplugins Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
config_host Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
configmgr Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
connectivity Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
cppcanvas Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
cppu Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
cppuhelper Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
cpputools Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
cui Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
dbaccess Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
desktop Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
dictionaries@e4ad186234 Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
distro-configs Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
docmodel Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
drawinglayer Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
editeng Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
embeddedobj Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
embedserv Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
emfio Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
eventattacher Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
extensions Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
external Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
extras Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
filter Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
forms Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
formula Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
fpicker Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
framework Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
helpcompiler Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
helpcontent2@3c4a626c18 Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
hwpfilter Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
i18nlangtag Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
i18npool Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
i18nutil Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
icon-themes Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
idl Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
idlc/test/parser Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
include Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
instsetoo_native Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
io Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
ios Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
javaunohelper Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
jsuno Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
jurt Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
jvmaccess Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
jvmfwk Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
l10ntools Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
librelogo Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
libreofficekit Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
lingucomponent Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
linguistic Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
lotuswordpro Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
m4 Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
msicreator Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
net_ure Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
nlpsolver Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
o3tl Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
odk Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
offapi Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
officecfg Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
oovbaapi Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
oox Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
opencl Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
osx Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
package Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
pch Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
postprocess Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
pyuno Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
qadevOOo Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
readlicense_oo Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
registry Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
remotebridges Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
reportbuilder Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
reportdesign Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
ridljar Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
rust_uno Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
sal Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
salhelper Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
sax Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
sc Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
scaddins Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
sccomp Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
schema Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
scp2 Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
scripting Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
sd Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
sdext Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
setup_native Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
sfx2 Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
shell Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
slideshow Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
smoketest Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
solenv Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
soltools Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
sot Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
starmath Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
static Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
stoc Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
store Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
svgio Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
svl Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
svtools Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
svx Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
sw Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
swext Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
sysui Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
test Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
testtools Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
toolkit Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
tools Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
translations@effc4dd935 Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
ucb Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
ucbhelper Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
udkapi Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
uitest Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
UnoControls Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
unodevtools Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
unoidl Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
unoil Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
unotest Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
unotools Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
unoxml Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
ure Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
uui Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
vbahelper Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
vcl Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
winaccessibility Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
wizards Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
writerperfect Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
xmlhelp Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
xmloff Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
xmlreader Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
xmlscript Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
xmlsecurity Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
.buckconfig Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
.buckversion Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
.clang-format Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
.editorconfig Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
.git-blame-ignore-revs Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
.gitattributes Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
.gitignore Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
.gitmodules Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
.gitpod.dockerfile Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
.gitpod.yml Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
.gitreview Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
.vsconfig Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
antivirusDetection.vbs Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
autogen.sh Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
BUCK Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
config.guess Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
config.sub Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
config_host.mk.in Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
config_host_lang.mk.in Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
configure.ac Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
COPYING Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
COPYING.LGPL Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
COPYING.MPL Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
cpp.hint Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
download.lst Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
g Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
install-sh Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
install_deps.sh Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
leak-suppress.txt Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
Library_merged.mk Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
logerrit Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
Makefile.fetch Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
Makefile.gbuild Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
Makefile.in Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
README.cross Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
README.help.md Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
README.md Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
README.Solaris Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
README.yrs Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
Repository.mk Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
RepositoryExternal.mk Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
RepositoryFixes.mk Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
RepositoryModule_build.mk Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
RepositoryModule_host.mk Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
sanitize-ubsan-excludelist Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
setup.cfg Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
TEMPLATE.SOURCECODE.HEADER Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00
tsan-suppress.txt Anchor: LibreOffice HEAD@2026-06-08 2026-06-08 22:06:12 +00:00

LibreOffice

Coverity Scan Build Status OpenSSF Best Practices Translation status

LibreOffice is an integrated office suite based on copyleft licenses and compatible with most document formats and standards. Libreoffice is backed by The Document Foundation, which represents a large independent community of enterprises, developers and other volunteers moved by the common goal of bringing to the market the best software for personal productivity. LibreOffice is open source, and free to download, use and distribute.

A quick overview of the LibreOffice code structure.

Overview

You can develop for LibreOffice in one of two ways, one recommended and one much less so. First the somewhat less recommended way: it is possible to use the SDK to develop an extension, for which you can read the API docs and Developers Guide. This re-uses the (extremely generic) UNO APIs that are also used by macro scripting in StarBasic.

The best way to add a generally useful feature to LibreOffice is to work on the code base however. Overall this way makes it easier to compile and build your code, it avoids any arbitrary limitations of our scripting APIs, and in general is far more simple and intuitive - if you are a reasonably able C++ programmer.

The Build Chain and Runtime Baselines

These are the current minimal operating system and compiler versions to run and compile LibreOffice, also used by the TDF builds:

  • Windows:
  • macOS:
    • Runtime: 11
    • Build: 13 or later + Xcode 14.3 or later (using latest version available for a given version of macOS)
  • Linux:
    • Runtime: RHEL 9 or CentOS 9 and comparable
    • Build: either GCC 13; or Clang 18 with libstdc++ 11
  • iOS (only for LibreOfficeKit):
    • Runtime: 14.5 (only support for newer i devices == 64 bit)
    • Build: Xcode 12.5 and iPhone SDK 14.5
  • Android:
    • Build: NDK 27 and SDK 30.0.3
  • Emscripten / WASM:
    • Runtime: a browser with SharedMemory support (threads + atomics)
    • Build: Qt 5.15 with Qt supported Emscripten 1.39.8
    • See README.wasm

Java is required for building many parts of LibreOffice. In TDF Wiki article Development/Java, the exact modules that depend on Java are listed.

The baseline for Java is Java Development Kit (JDK) Version 17 or later.

The baseline for Python is version 3.11. It follows the version available in SUSE Linux Enterprise Desktop and the Maintenance Support version of Red Hat Enterprise Linux.

If you want to use Clang with the LibreOffice compiler plugins, the minimal version of Clang is 18. Since Xcode doesn't provide the compiler plugin headers, you have to compile your own Clang to use them on macOS.

You can find the TDF configure switches in the distro-configs/ directory.

To setup your initial build environment on Windows and macOS, we provide the LibreOffice Development Environment (LODE) scripts.

For more information see the build instructions for your platform in the TDF wiki.

The Important Bits of Code

Each module should have a README.md file inside it which has some degree of documentation for that module; patches are most welcome to improve those. We have those turned into a web page here:

https://docs.libreoffice.org/

However, there are two hundred modules, many of them of only peripheral interest for a specialist audience. So - where is the good stuff, the code that is most useful. Here is a quick overview of the most important ones:

Module Description
sal/ this provides a simple System Abstraction Layer
tools/ this provides basic internal types: Rectangle, Color etc.
vcl/ this is the widget toolkit library and one rendering abstraction
framework/ UNO framework, responsible for building toolbars, menus, status bars, and the chrome around the document using widgets from VCL, and XML descriptions from /uiconfig/ files
sfx2/ legacy core framework used by Writer/Calc/Draw: document model / load/save / signals for actions etc.
svx/ drawing model related helper code, including much of Draw/Impress

Then applications

Module Description
desktop/ this is where the main() for the application lives, init / bootstrap. the name dates back to an ancient StarOffice that also drew a desktop
sw/ Writer
sc/ Calc
sd/ Draw / Impress

There are several other libraries that are helpful from a graphical perspective:

Module Description
basegfx/ algorithms and data-types for graphics as used in the canvas
canvas/ new (UNO) canvas rendering model with various backends
cppcanvas/ C++ helper classes for using the UNO canvas
drawinglayer/ View code to render drawable objects and break them down into primitives we can render more easily.

Rules for #include Directives (C/C++)

Use the "..." form if and only if the included file is found next to the including file. Otherwise, use the <...> form. (For further details, see the mail Re: C[++]: Normalizing include syntax ("" vs <>).)

The UNO API include files should consistently use double quotes, for the benefit of external users of this API.

loplugin:includeform (compilerplugins/clang/includeform.cxx) enforces these rules.

Finding Out More

Beyond this, you can read the README.md files, send us patches, ask on the mailing list libreoffice@lists.freedesktop.org (no subscription required) or poke people on IRC #libreoffice-dev on irc.libera.chat - we're a friendly and generally helpful mob. We know the code can be hard to get into at first, and so there are no silly questions.

SAST Tools

PVS-Studio - static analyzer for C, C++, C#, and Java code.