Test repository to check push and ssh key
Find a file
Philipp Hofer b53fa6344d tdf#123936 Formatting file in module accessibility with clang
Change-Id: I9ac4df1ecc3ea1d48f3961fa95f34207dab8976e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105411
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2020-11-10 12:44:40 +01:00
.git-hooks
.github
accessibility tdf#123936 Formatting file in module accessibility with clang 2020-11-10 12:44:40 +01:00
android
animations tdf#42949 Fix new IWYU warnings in directories [ab]* 2020-11-05 14:57:25 +01:00
apple_remote
avmedia tdf#42949 Fix new IWYU warnings in directories [ab]* 2020-11-05 14:57:25 +01:00
basctl make SdrObject Identifiers SdrObjKind enum members 2020-11-06 17:16:09 +01:00
basegfx tdf#42949 Fix new IWYU warnings in directories [ab]* 2020-11-05 14:57:25 +01:00
basic BASIC : use std::make_unique instead of std::unique_ptr ( new ... ) 2020-11-05 20:39:26 +01:00
bean
bin add pdf to DRAWDOCS for bash-completion 2020-11-03 20:34:16 +01:00
binaryurp tdf#42949 Fix new IWYU warnings in directories [ab]* 2020-11-05 14:57:25 +01:00
bridges
canvas tdf#42949 Fix new IWYU warnings in directories c* 2020-11-06 08:18:45 +01:00
chart2 make SdrObject Identifiers SdrObjKind enum members 2020-11-06 17:16:09 +01:00
cli_ure
codemaker
comphelper tdf#42949 Fix new IWYU warnings in directories c* 2020-11-06 08:18:45 +01:00
compilerplugins Evaluate command: tdf#109338 2020-11-10 07:59:14 +01:00
config_host
configmgr tdf#42949 Fix new IWYU warnings in directories c* 2020-11-06 08:18:45 +01:00
connectivity tdf#130596 FIREBIRD error in query input param when referred field is SQL_LONG 2020-11-08 12:06:09 +01:00
cppcanvas convert some more long -> tools::Long 2020-10-28 12:03:48 +01:00
cppu Reinstate o3tl/cppunittraitshelper.hxx uses for C++20 2020-11-06 15:29:22 +01:00
cppuhelper tdf#42949 Fix new IWYU warnings in directories c* 2020-11-06 08:18:45 +01:00
cpputools
cui tdf#127294 - add tip about extended tooltips in dialog boxes (Shift+F1) 2020-11-10 10:06:08 +01:00
dbaccess tdf#42949 Fix new IWYU warnings in directories d* 2020-11-09 16:04:18 +01:00
desktop tdf#42949 Fix new IWYU warnings in directories d* 2020-11-09 16:04:18 +01:00
dictionaries@79fa1eebb4 Update git submodules 2020-10-29 16:28:50 +01:00
distro-configs
drawinglayer tdf#42949 Fix new IWYU warnings in directories d* 2020-11-09 16:04:18 +01:00
editeng tdf#137908 Revert "use FasterParser for LoadXMLExceptList_Imp" 2020-11-06 07:07:09 +01:00
embeddedobj
embedserv
emfio
eventattacher
extensions toolbox always has flat style 2020-11-02 09:55:20 +01:00
external tdf#135202: Mysql use openssl libs to be able to use caching_sha2_pw 2020-11-06 17:00:44 +01:00
extras update toolbarmode preview for ToD 2020-11-05 23:00:34 +01:00
filter tdf#136721 XLSX: add missing A6 paper format 2020-11-10 11:08:39 +01:00
forms toolbox always has flat style 2020-11-02 09:55:20 +01:00
formula
fpicker Resolves: tdf#137575 fpicker custom sorting setting not restored 2020-10-27 17:41:00 +01:00
framework Windows 7 support is already supported 2020-11-02 10:40:01 +01:00
helpcompiler
helpcontent2@f7f1e6064c Update git submodules 2020-11-10 12:25:13 +01:00
hwpfilter
i18nlangtag
i18npool presumably 'true' is sufficient in all cases 2020-11-03 21:56:53 +01:00
i18nutil
icon-themes Colibre: update graphic mimetypes 2020-11-05 17:21:16 +01:00
idl fix oss-fuzz build failure 2020-10-29 21:20:57 +01:00
idlc
include Don't use arbitrarily truncated pre-calculated constant 2020-11-10 11:13:38 +01:00
instsetoo_native Resolves tdf#137880 - Fix for Windows installer image 2020-11-01 14:50:43 +01:00
io
ios
javaunohelper
jurt
jvmaccess
jvmfwk
l10ntools
librelogo Fix typos 2020-11-02 20:42:17 +01:00
libreofficekit silence qa test coverity warning 2020-11-04 18:00:42 +01:00
lingucomponent
linguistic make SvXMLImport capable of mixing fast- and slow- contexts adhoc 2020-11-02 08:17:00 +01:00
lotuswordpro ofz#27012 detect deletion of XFCell 2020-11-06 15:01:21 +01:00
m4
nlpsolver
o3tl
odk
offapi
officecfg Resolves tdf#132479: Rename "equal triangle" to "regular triangle" 2020-11-05 05:47:49 +01:00
onlineupdate
oovbaapi
oox tdf#137917 Chart OOXML: fix export of TimeIncrement of Date axis 2020-11-06 11:30:57 +01:00
opencl
osx
package loplugin:reducevarscope in package 2020-11-05 17:19:42 +01:00
pch
postprocess
pyuno Revert "loplugin:stringbuffer" 2020-11-06 10:44:44 +01:00
qadevOOo
readlicense_oo
registry loplugin:reducevarscope in registry 2020-11-05 12:58:52 +01:00
remotebridges
reportbuilder
reportdesign tdf#124176 Use pragma once instead of inclusive guards 2020-11-09 12:03:24 +01:00
ridljar
sal Extend loplugin:elidestringvar to OString 2020-10-28 08:03:52 +01:00
salhelper
sax ofz#26944 2020-11-08 14:23:22 +01:00
sc tdf#117948 Do not treat hidden rows as zero in ODF export 2020-11-10 12:12:43 +01:00
scaddins
sccomp
schema tdf#137627 sw top page border orientation: add ODF 2020-10-29 17:52:48 +01:00
scp2 ScriptForge - Update build files 2020-11-07 07:33:06 +01:00
scripting loplugin:reducevarscope in scripting 2020-11-05 14:10:12 +01:00
sd uitest: fix comments 2020-11-09 16:13:33 +01:00
sdext
setup_native
sfx2 Small code clean-up 2020-11-10 09:26:39 +01:00
shell
slideshow
smoketest
solenv tdf#123936 Formatting file in module accessibility with clang 2020-11-10 12:44:40 +01:00
soltools
sot
starmath Evaluate command: tdf#109338 2020-11-10 07:59:14 +01:00
stoc
store
svgio
svl remove pimpl in SfxBroadcaster/SfxListener 2020-11-03 16:49:49 +01:00
svtools remove duplicate initialisation 2020-11-02 11:12:14 +01:00
svx Fix typo 2020-11-09 19:40:08 +01:00
sw sw user field type: fix failing string to double conversion 2020-11-10 09:16:22 +01:00
swext
sysui Don't try to include hicolor SVG mimetypes icons in rpm 2020-11-01 11:39:14 +01:00
test tdf#130546 sw autocorrect: don't replace redlining 2020-11-06 22:38:33 +01:00
testtools
toolkit convert some more long -> tools::Long 2020-10-28 12:03:48 +01:00
tools tdf#123476 filter: try to detect 0-byte files based on extension 2020-10-28 19:34:45 +01:00
translations@21ea3a68e4 Update git submodules 2020-10-27 15:04:09 +01:00
ucb Revert questionable tools::Long in commented-out code 2020-10-29 20:01:29 +01:00
ucbhelper
udkapi
uitest Make order of UITest *.py test file processing deterministic 2020-11-05 10:17:33 +01:00
UnoControls
unodevtools
unoidl Revert "loplugin:stringbuffer" 2020-11-06 10:44:44 +01:00
unoil
unotest python test shutdown robustness 2020-10-29 09:05:10 +01:00
unotools ucbGet needs a non-null interaction handler after all 2020-11-03 14:48:03 +01:00
unoxml
ure
uui
vbahelper loplugin:reducevarscope in vbahelper 2020-11-05 13:50:05 +01:00
vcl tdf#136962 only do implicit SetUpdateMode optimization if the widget is hidden 2020-11-09 21:19:45 +01:00
winaccessibility
wizards copy_paste_error data1 looks like a copy-paste error 2020-11-09 10:12:08 +01:00
writerfilter DOCX import: fix <w:spacing w:before="..."/> for more than 58cm 2020-11-10 09:03:18 +01:00
writerperfect
xmerge
xmlhelp
xmloff Evaluate command: tdf#109338 2020-11-10 07:59:14 +01:00
xmlreader
xmlscript
xmlsecurity xmlsecurity: reject a few dangerous annotation types during pdf sig verify 2020-11-05 09:04:29 +01:00
.buckconfig
.buckversion
.clang-format
.editorconfig
.git-blame-ignore-revs
.gitattributes
.gitignore
.gitmodules
.gitpod.dockerfile
.gitpod.yml
.gitreview
antivirusDetection.vbs
autogen.sh
BUCK
config.guess
config.sub
config_host.mk.in
config_host_lang.mk.in
configure.ac lok:configure: replace obsolete configuration links 2020-11-09 12:03:33 +01:00
COPYING
COPYING.LGPL
COPYING.MPL
download.lst external: update pdfium to 4306 2020-11-04 08:05:28 +01:00
g
hardened_runtime.xcent.in
install-sh
leak-suppress.txt
Library_merged.mk
lo.xcent
logerrit
Makefile.fetch
Makefile.gbuild
Makefile.in
README.cross
README.md
README.Solaris
Repository.mk ScriptForge - Update build files 2020-11-07 07:33:06 +01:00
RepositoryExternal.mk
RepositoryFixes.mk
RepositoryModule_build.mk build-tools: default to system PCH setting 2020-10-30 12:46:42 +01:00
RepositoryModule_host.mk
sanitize-ubsan-excludelist
setup.cfg
TEMPLATE.SOURCECODE.HEADER

LibreOffice

Coverity Scan Build Status CII 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 here and here. 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:
    • Runtime: Windows 7
    • Build: Cygwin + Visual Studio 2019 version 16.4
  • macOS:
    • Runtime: 10.10
    • Build: 10.14.4 + Xcode 11.3
  • Linux:
    • Runtime: RHEL 7 or CentOS 7
    • Build: either GCC 7.0.0; or Clang 5.0.2 with libstdc++ 7.3.0
  • iOS (only for LibreOfficeKit):
    • Runtime: 11.4 (only support for newer i devices == 64 bit)
    • Build: Xcode 9.3 and iPhone SDK 11.4
  • Android:
    • Build: NDK r19c and SDK 22.6.2

If you want to use Clang with the LibreOffice compiler plugins, the minimal version of Clang is 5.0.2. 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 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 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.freenode.net - 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.