Test repository to check push and ssh key
Find a file
Stephan Bergmann 8e3f4aeb40 ITERATE_ALL_LANG_DIR_LPROJ appears to be unused
The Bundle_Contents_Resources_Lang dir gids (its only use) have been unused
since f0b57c30fd "Info.plist et al were no longer
found when creating a .dmg", and those Contents/Resources/*.lproj dirs are
created on demand now, anyway.

Change-Id: Ia3e867307c4fc31180594d507721577a21cc20b1
Reviewed-on: https://gerrit.libreoffice.org/71319
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-04-26 07:46:11 +02:00
.git-hooks
accessibility Exit from search loop when condition is satisfied 2019-04-21 16:24:31 +02:00
android update references about selective debuginfo in android/README 2019-04-17 19:15:22 +02:00
animations
apple_remote
avmedia
basctl tdf#123043 make type character detection unicode-aware 2019-04-23 12:51:51 +02:00
basegfx
basic Fix typo 2019-04-25 07:05:13 +02:00
bean Fix typo 2019-04-20 07:54:23 +02:00
bin node.firstChild seen as None 2019-04-19 14:50:55 +02:00
binaryurp
bridges optimise find/insert pattern 2019-04-19 13:19:31 +02:00
canvas Cut down on -pthread/-lpthread proliferation 2019-04-25 21:27:43 +02:00
chart2 WIP: Further preparations for deeper Item changes 2019-04-25 19:59:04 +02:00
cli_ure
codemaker
comphelper Fix typo 2019-04-21 08:22:01 +02:00
compilerplugins Fix typo 2019-04-26 07:05:09 +02:00
config_host
configmgr optimise find/insert pattern 2019-04-19 13:19:31 +02:00
connectivity Resolves: rhbz#1702810 Prepare for upcoming libebook soname version bump 2019-04-25 22:10:39 +02:00
cppcanvas Fix typo 2019-04-20 07:04:06 +02:00
cppu Fix typo 2019-04-22 09:03:20 +02:00
cppuhelper Fix typo 2019-04-20 07:54:46 +02:00
cpputools Fix typo 2019-04-20 07:53:38 +02:00
cui WIP: Further preparations for deeper Item changes 2019-04-25 19:59:04 +02:00
dbaccess WIP: Further preparations for deeper Item changes 2019-04-25 19:59:04 +02:00
desktop Cut down on -pthread/-lpthread proliferation 2019-04-25 21:27:43 +02:00
dictionaries@5fe575dbcf Update git submodules 2019-04-20 11:24:57 +02:00
distro-configs
drawinglayer Fix typo 2019-04-23 09:20:54 +02:00
dtrans
editeng WIP: Further preparations for deeper Item changes 2019-04-25 19:59:04 +02:00
embeddedobj
embedserv
emfio
eventattacher
extensions tdf#42949 Fix IWYU warnings in comphelper 2019-04-19 11:31:19 +02:00
external Cut down on -pthread/-lpthread proliferation 2019-04-25 21:27:43 +02:00
extras weld ScOptSolverDlg 2019-04-18 16:32:55 +02:00
filter Fix typo in code 2019-04-26 07:04:02 +02:00
forms Fix typo 2019-04-21 08:54:48 +02:00
formula drop some unneeded includes 2019-04-19 13:57:37 +02:00
fpicker
framework tdf#45904 Move TableColumn Java tests to C++ 2019-04-25 01:21:49 +02:00
helpcompiler
helpcontent2@f52790876d Update git submodules 2019-04-23 13:03:02 +02:00
hwpfilter
i18nlangtag Re-generate from 3/13/2019 13.0 revision 2019-04-25 22:09:04 +02:00
i18npool
i18nutil
icon-themes tdf#107144 make notes icons yellow in colibre 2019-04-25 22:33:53 +02:00
idl
idlc
include Fix typo in code 2019-04-26 07:04:02 +02:00
instsetoo_native
io tdf#42949 Fix IWYU warnings in io/ 2019-04-25 11:28:15 +02:00
ios
javaunohelper
jurt Cut down on -pthread/-lpthread proliferation 2019-04-25 21:27:43 +02:00
jvmaccess
jvmfwk
l10ntools tdf#124791: Fix Gaelic (Scotland) (gd-GB) LCID in MSI installer 2019-04-24 16:45:28 +02:00
librelogo LibreLogo: fix RANGE with a single function argument 2019-04-25 20:21:16 +02:00
libreofficekit Cut down on -pthread/-lpthread proliferation 2019-04-25 21:27:43 +02:00
lingucomponent The iOS sv_SE dictionary surely works for sv_FI, too 2019-04-24 16:37:54 +03:00
linguistic
lotuswordpro
m4
nlpsolver
o3tl
odk fix usage of successful/successfully in comments 2019-04-16 12:46:55 +02:00
offapi Fix typo in code 2019-04-20 12:41:55 +02:00
officecfg tdf#120273 Ctrl-N should open a new document when a chart is selected 2019-04-17 10:43:05 +02:00
onlineupdate Cut down on -pthread/-lpthread proliferation 2019-04-25 21:27:43 +02:00
oovbaapi Add XWordBasic.FileSaveAs() and implement 2019-04-19 16:06:40 +02:00
oox ofz#14422 null deref 2019-04-25 16:08:12 +02:00
opencl
osx
package optimise find/insert pattern 2019-04-19 13:19:31 +02:00
postprocess
pyuno
qadevOOo tdf#45904 Move TableColumn Java tests to C++ 2019-04-25 01:21:49 +02:00
readlicense_oo update credits 2019-04-25 15:09:06 +02:00
registry optimise find/insert pattern 2019-04-19 13:19:31 +02:00
remotebridges
reportbuilder
reportdesign tdf#113266 slow opening XLS with 45 MB drawing 2019-04-23 14:10:38 +02:00
ridljar
sal Cut down on -pthread/-lpthread proliferation 2019-04-25 21:27:43 +02:00
salhelper
sax Further cleanup of FastSerializerHelper's startElement/singleElement[NS] 2019-04-19 21:20:46 +02:00
sc Related tdf#43309 Enable test 2019-04-26 07:11:31 +02:00
scaddins
sccomp
schema
scp2 ITERATE_ALL_LANG_DIR_LPROJ appears to be unused 2019-04-26 07:46:11 +02:00
scripting loplugin:sequentialassign in sd 2019-04-19 13:19:45 +02:00
sd Fix typo in code 2019-04-26 07:04:02 +02:00
sdext loplugin:sequentialassign in sd 2019-04-19 13:19:45 +02:00
setup_native tdf#124794: Wait for WU service stopped before launching wusa.exe 2019-04-22 04:22:57 +02:00
sfx2 WIP: Further preparations for deeper Item changes 2019-04-25 19:59:04 +02:00
shell Stop qt event loop after KDE settings have been read 2019-04-17 17:37:52 +02:00
slideshow tdf#124756 slideshow: avoid mbPaintDisabled for media windows 2019-04-17 15:43:48 +02:00
smoketest Cut down on -pthread/-lpthread proliferation 2019-04-25 21:27:43 +02:00
solenv Cut down on -pthread/-lpthread proliferation 2019-04-25 21:27:43 +02:00
soltools
sot
starmath Further cleanup of FastSerializerHelper's startElement/singleElement[NS] 2019-04-19 21:20:46 +02:00
stoc
store
svgio
svl Cut down on -pthread/-lpthread proliferation 2019-04-25 21:27:43 +02:00
svtools tdf#124572 TabBar new look, protected icon, width and height 2019-04-25 08:39:38 +02:00
svx Cut down on -pthread/-lpthread proliferation 2019-04-25 21:27:43 +02:00
sw UITest_writer_tests5: disable flaky print preview test 2019-04-25 20:25:45 +02:00
swext
sysui tdf#122244 Put InfoPlist.strings files at correct places on macOS 2019-04-25 13:27:14 +02:00
test assertXPath: disallow passing rAttribute without rExpectedValue 2019-04-25 14:42:13 +02:00
testtools
toolkit Fix typos 2019-04-26 07:35:42 +02:00
tools cleanup and rename COLORDATA_RGB to color::extractRGB 2019-04-22 05:51:44 +02:00
translations@926f46dde8 Update git submodules 2019-04-25 14:26:46 +02:00
ucb tdf#124635 MountOperation::Mount can be called with SolarMutex unlocked 2019-04-23 20:08:56 +02:00
ucbhelper Removed duplicated includes 2019-04-18 10:11:06 +02:00
udkapi
uitest
UnoControls
unodevtools optimise find/insert pattern 2019-04-19 13:19:31 +02:00
unoidl
unoil
unotest
unotools optimise find/insert pattern 2019-04-19 13:19:31 +02:00
unoxml optimise find/insert pattern 2019-04-19 13:19:31 +02:00
ure
uui Resolves: tdf#115964 force password dialog to center on parent size request 2019-04-18 22:29:17 +02:00
vbahelper Fix typo 2019-04-23 09:20:15 +02:00
vcl Fix typos 2019-04-26 00:07:31 +02:00
winaccessibility
wizards tdf#124197 Improve "Unexpected error" user-visible error message wording 2019-04-24 10:30:37 +02:00
writerfilter related tdf#123636 writerfilter: split newline also if PAGE_BREAK 2019-04-25 06:55:18 +02:00
writerperfect fix filename of a test file in writerperfect 2019-04-24 09:52:21 +02:00
xmerge
xmlhelp
xmloff xmloff: create XMLImpressMetaExportOasis instances with an uno constructor 2019-04-25 09:04:43 +02:00
xmlreader
xmlscript
xmlsecurity Properly initialize gpgme-w32spawn.exe path on Windows 2019-04-21 08:17:14 +02:00
.buckconfig
.buckversion
.clang-format
.editorconfig
.gitattributes
.gitignore
.gitmodules
.gitreview
autogen.sh
BUCK
config.guess
config.sub
config_host.mk.in
config_host_lang.mk.in
configure.ac Allow to pass JAVA_SOURCE/TARGET_VER into configure 2019-04-24 11:09:57 +02:00
COPYING
COPYING.LGPL
COPYING.MPL
download.lst extern: update xmlsec to 1.2.28 2019-04-24 08:58:39 +02:00
g
install-sh
leak-suppress.txt
Library_merged.mk
lo.xcent
logerrit
Makefile.fetch
Makefile.gbuild
Makefile.in That bin directory should no longer be there 2019-04-25 17:02:41 +02:00
README.cross
README.md
README.Solaris
Repository.mk
RepositoryExternal.mk
RepositoryFixes.mk
RepositoryModule_build.mk
RepositoryModule_host.mk
sanitize-ubsan-blacklist
setup.cfg
TEMPLATE.SOURCECODE.HEADER

LibreOffice

Coverity Scan Build Status CII Best Practices

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 2017
  • macOS:
    • Runtime: 10.10
    • Build: 10.13.2 + Xcode 9.3
  • Linux:
    • Runtime: RHEL 6 or CentOS 6
    • 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

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.