Test repository to check push and ssh key
Find a file
David Ostrovsky 1fd41f43eb Add build toolchain to upload LibreOffice API to Maven Central
Set up the toolchain to create sources and javadocs artifacts in
addition to JARs created during the build. Use Buck build tool for
that: [1]. This is a fork of Google's build tool Blaze, created by
Xooglers at Facebook. This build tool (like Blaze itself) uses
Python to write build files.

Add needed tools and build files to install LibreOffice API artifacts
to local Maven repository or deploy them to Maven Central.

To build all needed artifacts LibreOffice must be built regularly
with GNU make first. To build the rest of the API (sources and
javadocs):

  $> buck build api

To replace version number with upcoming release version:

  $> solenv/bin/version.py 5.1.0

To install the API to local Maven repository:

  $> buck build api_install

To deploy the API to Maven Central:

  $> buck build api_deploy

Detailed documentation is added to document the prerequisites and
the workflow to upload LibreOffice API to Maven Central.

* [1] https://buckbuild.com

Change-Id: Ibdd552a01110836703bc069abe829b9921491cac
Reviewed-on: https://gerrit.libreoffice.org/20343
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2015-12-03 23:32:11 +00:00
.git-hooks git-hooks: Info how to install them manually. 2015-09-08 14:50:48 +02:00
accessibility Use comphelper::containerToSequence() 2015-12-03 13:57:22 +02:00
android android: remove duplicated bitmaps 2015-11-23 13:47:31 +01:00
animations use initialiser for Sequence<OUString> 2015-11-15 11:31:23 +00:00
apple_remote loplugin:nullptr (automatic rewrite; Mac-specific code) 2015-11-10 16:20:33 +01:00
avmedia Use Get/SetWindowLongPtr, for 64-bit build 2015-11-28 08:44:40 +01:00
basctl loplugin:unusedfields in include/svx 2015-11-25 08:25:10 +02:00
basebmp loplugin:unreffun 2015-11-24 22:58:35 +01:00
basegfx loplugin:unusedfields in basegfx 2015-11-20 13:08:33 +00:00
basic Get order of expected/actual args to CPPUNIT_ASSERT_EQUAL right 2015-11-30 11:49:15 +01:00
bean Add build toolchain to upload LibreOffice API to Maven Central 2015-12-03 23:32:11 +00:00
bin Add build toolchain to upload LibreOffice API to Maven Central 2015-12-03 23:32:11 +00:00
binaryurp loplugin:nullptr (automatic rewrite) 2015-11-10 10:31:17 +01:00
bridges Work around missing __CxxDetectRethrow in clang-cl 2015-12-02 08:02:20 +01:00
canvas Use comphelper::containerToSequence() 2015-12-03 13:57:22 +02:00
chart2 WaE: comparison between signed and unsigned integer expressions 2015-12-03 14:44:50 +02:00
clew
cli_ure cli_ure: fix build 2015-11-02 23:59:43 +01:00
codemaker Reduce space needed for string literals 2015-12-01 09:32:59 +01:00
comphelper That SB variable was a temporary debugging aid 2015-11-26 12:39:03 +01:00
compilerplugins loplugin:stringconcat: Also look through O[U]String ctors 2015-12-02 14:01:56 +01:00
config_host Bin outdated #if and unnecessary <config_mingw.h> 2015-11-24 12:58:57 +02:00
configmgr cppcheck:useInitializationList 2015-11-22 12:14:53 +00:00
connectivity protected -> private 2015-11-30 15:02:36 +01:00
cppcanvas VirtualDevices either match another device depth, or are 1 bit 2015-11-23 14:25:59 +00:00
cppu Adapt to true wchar_t in clang-cl 2015-11-28 08:44:52 +01:00
cppuhelper inline one-liner static method 2015-12-02 08:47:30 +02:00
cpputools loplugin:nullptr (automatic rewrite) 2015-11-10 10:31:21 +01:00
cui uno::Sequence->std::vector in SfxIntegerListItem 2015-12-03 13:57:23 +02:00
dbaccess tdf#74608 dbaccess: Constructor feature for ODatabaseSource 2015-12-03 21:07:35 +01:00
desktop uno::Sequence -> std::vector 2015-12-03 13:57:22 +02:00
dictionaries@b4f9255af0 Updated core 2015-10-27 22:31:47 +00:00
distro-configs update jenkins' profile 2015-11-27 10:24:24 -08:00
drawinglayer Missing includes 2015-11-27 17:45:34 +01:00
dtrans allocate and initialise FormatEntry table at compile-time 2015-11-30 13:06:35 +02:00
editeng loplugin:unusedfields 2015-11-30 10:34:38 +02:00
embeddedobj -Werror,-Wunused-function 2015-11-28 08:44:46 +01:00
embedserv -Werror,-Wint-to-pointer-cast 2015-12-02 08:02:21 +01:00
eventattacher loplugin:nullptr (automatic rewrite) 2015-11-10 10:31:24 +01:00
extensions uno::Sequence->std::vector, and fix method name 2015-12-03 13:57:22 +02:00
external upload libetonyek 0.1.5 2015-12-03 18:32:16 +01:00
extras update emoji autocorrect files from po-files 2015-11-25 02:47:02 -05:00
filter uno::Sequence->std::vector 2015-12-03 13:57:22 +02:00
forms use comphelper::containerToSequence() 2015-12-03 13:57:23 +02:00
formula loplugin:unusedfields forms,formula,fpicker,framework 2015-11-20 15:07:05 +02:00
fpicker -Werror,-Wunused-private-field 2015-12-02 08:02:17 +01:00
framework Save Remote File isn't supported in all modules 2015-12-01 00:56:40 +02:00
helpcompiler loplugin:unusedfields 2015-11-30 10:34:38 +02:00
helpcontent2@343ae098d5 Updated core 2015-12-01 22:46:52 +00:00
hwpfilter Adapt to true wchar_t in clang-cl 2015-11-28 08:44:52 +01:00
i18nlangtag cppcheck: noExplicitConstructor 2015-11-24 10:35:44 +00:00
i18npool Adding native number support for Cyrillic numerals 2015-11-27 13:00:31 +00:00
i18nutil loplugin:nullptr (automatic rewrite) 2015-11-10 10:31:28 +01:00
icon-themes 8 bit palettes are on the slow path for quartz/svp/gtk3 2015-12-02 13:44:23 +00:00
idl loplugin:unusedfields 2015-11-30 10:34:38 +02:00
idlc FD_complex is unused 2015-11-30 14:55:35 +01:00
include vcl: cleanup indents, add doxygen comments 2015-12-03 22:52:14 +00:00
instsetoo_native Revert "gengal: create an ini / rc file - to bootstrap services properly." 2015-11-28 11:51:58 +00:00
io loplugin:unusedfields 2015-11-30 10:34:38 +02:00
ios Link in calc, draw and edit stuff here, too, like for Android 2015-10-07 17:46:04 +03:00
javaunohelper Add build toolchain to upload LibreOffice API to Maven Central 2015-12-03 23:32:11 +00:00
jurt Add build toolchain to upload LibreOffice API to Maven Central 2015-12-03 23:32:11 +00:00
jvmaccess Don't assume sal_Unicode is unsigned short 2015-11-17 10:39:06 +01:00
jvmfwk cppcheck: noExplicitConstructor 2015-11-24 10:35:44 +00:00
l10ntools loplugin:unusedfields various 2015-11-25 13:57:29 +02:00
librelogo fix broken PICTURE (group handling) of LibreLogo 2015-08-18 00:58:37 +02:00
libreofficekit cid#1340232 uncaught exception 2015-11-26 09:45:45 +01:00
lingucomponent cppcheck: noExplicitConstructor 2015-11-24 10:35:44 +00:00
linguistic loplugin:unusedfields 2015-11-30 10:34:38 +02:00
lotuswordpro cppcheck: noExplicitConstructor 2015-11-24 10:35:44 +00:00
m4 configure: filter -L/usr/lib etc. out of *_LIBS 2015-11-04 16:58:26 +00:00
mysqlc loplugin:unusedfields 2015-11-30 10:34:38 +02:00
nlpsolver coverity#1327027 SIC: Inner class could be made static 2015-11-04 13:55:53 +00:00
o3tl Fix binary ops with two o3tl::type_flags<E>::Wrap params 2015-09-15 12:31:50 +00:00
odk -Werror,-Wstring-plus-int 2015-11-28 08:44:50 +01:00
offapi No need to extend css.awt.XToolkitExperimental 2015-11-27 18:46:18 +01:00
officecfg sc interperter: Turn it on for a subset of operations by default. 2015-12-03 16:14:03 +01:00
onlineupdate onlineupdate: -Werror=unused-but-set-variable 2015-11-04 13:22:27 +01:00
oovbaapi coverity#707022 Uncaught exception 2014-09-02 15:41:12 +01:00
oox oox: better warning message on unhandled element in docprophandler 2015-11-30 15:36:18 +01:00
opencl new loplugin: memoryvar 2015-11-11 07:16:20 +00:00
osx
package loplugin:unusedfields in include/package,include/registry 2015-11-25 08:25:09 +02:00
postprocess Silence "Skipping non-existent ... StartModule/toolbar/standardbar.xml" 2015-11-22 13:49:37 +02:00
pyuno use comphelper::containerToSequence 2015-11-19 09:33:29 +02:00
qadevOOo coverity#1327143 UrF: Unread field 2015-11-24 10:35:44 +00:00
readlicense_oo update credits 2015-12-04 00:15:57 +01:00
registry loplugin:unusedfields in include/package,include/registry 2015-11-25 08:25:09 +02:00
remotebridges cppcheck: noExplicitConstructor 2015-11-24 10:35:44 +00:00
reportbuilder coverity#1327068 SIC: Inner class could be made static 2015-11-04 13:55:53 +00:00
reportdesign loplugin:unusedfields 2015-11-30 10:34:38 +02:00
ridljar Add build toolchain to upload LibreOffice API to Maven Central 2015-12-03 23:32:11 +00:00
rsc loplugin:unusedfields various 2015-11-25 13:57:29 +02:00
sal sal: add SAL_DEBUG_TRACE debugging API for Windows, with UNX stub. 2015-12-02 16:47:16 +00:00
salhelper 5th step to remove tools/rtti.hxx 2015-11-11 10:49:30 +00:00
sax remove unused typedefs and inline use-once typedefs 2015-11-18 10:38:08 +00:00
sc uno::Sequence->std::vector in SfxIntegerListItem 2015-12-03 13:57:23 +02:00
scaddins new loplugin: memoryvar 2015-11-11 07:16:20 +00:00
sccomp use initialiser for Sequence<OUString> 2015-11-15 12:20:39 +00:00
scp2 gengal script calling gengal.bin is not needed on Mac 2015-11-27 15:43:37 +01:00
scripting mark UNO structs as SAL_WARN_UNUSED, where possible 2015-11-26 13:26:25 +02:00
sd sd: replace embedded mDNSResponder code with proper external tarball 2015-11-30 13:11:10 +00:00
sdext loplugin:unusedfields 2015-11-30 10:34:38 +02:00
setup_native -Werror,-Wwritable-strings 2015-11-18 17:19:15 +01:00
sfx2 Resolves: tdf#95960 displaced field value in user-defined properties 2015-12-03 09:12:57 +00:00
shell -Werror,-Wdelete-non-virtual-dtor 2015-11-28 08:44:51 +01:00
slideshow tdf#96083 slide transitions wrong with appearing shapes 2015-12-03 12:28:20 +00:00
smoketest Use -ldl -pthread only on Linux 2015-11-30 13:54:56 +02:00
solenv Add build toolchain to upload LibreOffice API to Maven Central 2015-12-03 23:32:11 +00:00
soltools loplugin:unusedfields in soltools/ 2015-11-23 13:30:54 +02:00
sot mark UNO structs as SAL_WARN_UNUSED, where possible 2015-11-26 13:26:25 +02:00
starmath Fix typo in comment 2015-12-01 18:05:25 +09:00
stoc use comphelper::containerToSequence 2015-11-19 09:33:29 +02:00
store loplugin:unusedfields in store/ 2015-11-23 13:30:54 +02:00
svgio Fast PCH generator and optimized PCH files 2015-11-15 20:31:35 +00:00
svl uno::Sequence->std::vector in SfxIntegerListItem 2015-12-03 13:57:23 +02:00
svtools tdf#92925 Remove XPM export 2015-12-02 06:34:54 +00:00
svx uno:Sequence->std::vector in SmartTagMgr 2015-12-03 13:57:23 +02:00
sw tdf#34957 - don't push multi-page table to next page. 2015-12-03 19:11:46 +00:00
swext Killed the 'lastedited' element, it's useless, we have git. 2015-11-12 09:54:45 +01:00
sysui fix/update AppData files 2015-11-30 19:58:48 +01:00
test mark UNO structs as SAL_WARN_UNUSED, where possible 2015-11-26 13:26:25 +02:00
testtools use initialiser syntax for Sequence<OUString> 2015-11-15 10:13:08 +00:00
toolkit uno::Sequence->std::vector in vcl::Throbber 2015-12-03 13:57:23 +02:00
tools tdf#57950 Replace chained O(U)StringBuffer::append() with operator+ 2015-11-29 14:36:04 +00:00
translations@0fec96207a Updated core 2015-12-03 23:02:29 +00:00
tubes remove untyped Link<> 2015-10-21 07:44:43 +00:00
ucb Add/change some logs in WebDAV ucb.ucp layer. 2015-12-02 14:23:31 +00:00
ucbhelper loplugin:unusedfields various 2015-11-26 13:26:25 +02:00
udkapi Resolves: #i126627# wrong type description in @see tag 2015-11-04 14:09:06 +00:00
UnoControls no need to take a mutex when only dealing with stack-local data 2015-11-16 11:37:11 +00:00
unodevtools loplugin:nullptr (automatic rewrite) 2015-11-10 10:31:56 +01:00
unoidl loplugin:nullptr (automatic rewrite; Mac-specific code) 2015-11-10 16:20:39 +01:00
unoil Add build toolchain to upload LibreOffice API to Maven Central 2015-12-03 23:32:11 +00:00
unotest loplugin:nullptr (automatic rewrite) 2015-11-10 10:31:57 +01:00
unotools loplugin:unusedfields various 2015-11-26 13:26:25 +02:00
unoxml loplugin:unusedfields various 2015-11-26 13:26:25 +02:00
ure Revert cppuhelper/implbase.hxx usage in non-LIBO_INTERNAL_ONLY code, again 2015-09-15 11:10:15 +02:00
uui loplugin:unusedfields various 2015-11-26 13:26:25 +02:00
vbahelper Seems more natural to pass a homogenous list by initializer_list 2015-11-20 13:39:52 +01:00
vcl uno::Sequence->std::vector in vcl::Throbber 2015-12-03 13:57:23 +02:00
winaccessibility Silence clang-cl -Wextra-tokens in midl-generated code 2015-11-28 14:00:04 +01:00
windows Add a trivial Visual Studio solution with a single project to run soffice.bin 2015-11-12 18:47:47 +02:00
wizards Calculate substring indexes properly, avoiding an unnecessary IndexOutOfBoundsException. 2015-12-02 13:44:24 +00:00
writerfilter Use comphelper::containerToSequence() 2015-12-03 08:59:23 +01:00
writerperfect enable new file formats supported by libmwaw-0.3.7 2015-11-29 14:08:38 +01:00
xmerge CID#1326472, CID#1326473, CID#1326474 use try/finalize 2015-11-27 21:35:57 +00:00
xmlhelp -Werror,-Wunused-private-field 2015-11-26 13:47:36 +01:00
xmloff -Werror,-Wunused-private-field 2015-11-26 12:59:32 +01:00
xmlreader loplugin:nullptr (automatic rewrite) 2015-11-10 10:32:02 +01:00
xmlscript com::sun::star->css in xmlscript/ 2015-11-26 12:21:24 +00:00
xmlsecurity -Werror,-Wwritable-strings 2015-11-28 14:00:06 +01:00
.buckconfig Add build toolchain to upload LibreOffice API to Maven Central 2015-12-03 23:32:11 +00:00
.buckversion Add build toolchain to upload LibreOffice API to Maven Central 2015-12-03 23:32:11 +00:00
.gitattributes .gitattributes: treat .svg and .jcs as binary 2013-09-05 22:35:00 +02:00
.gitignore Add build toolchain to upload LibreOffice API to Maven Central 2015-12-03 23:32:11 +00:00
.gitmodules binfilter.die.die.die 2012-11-09 07:58:02 +00:00
.gitreview git-review integration: .gitreview for core repository added 2012-07-06 01:13:14 +02:00
autogen.sh autogen.sh: Display arguments for configure without apostrophes 2015-09-22 11:22:46 +02:00
BUCK Add build toolchain to upload LibreOffice API to Maven Central 2015-12-03 23:32:11 +00:00
config.guess Update config.{guess,sub} 2014-06-18 11:26:35 +02:00
config.sub Update config.{guess,sub} 2014-06-18 11:26:35 +02:00
config_host.mk.in Do use libo_CHECK_SYSTEM_MODULE for GLYPHY after all 2015-11-19 14:56:41 +02:00
config_host_lang.mk.in gbuild: allow to react on change in configured langs 2015-03-25 17:52:20 +01:00
configure.ac Where to find ATL files doesn't depend on --enable-activex 2015-12-02 08:02:21 +01:00
COPYING Licencing files 2011-01-11 21:49:39 +00:00
COPYING.LGPL Licencing files 2011-01-11 21:49:39 +00:00
COPYING.MPL Targetted text updates, with seasonable changes before l10n freeze. 2013-12-13 17:00:07 +00:00
download.lst upload libetonyek 0.1.5 2015-12-03 18:32:16 +01:00
g 'g' doesn't work correctly when config_host.mk contains non-ascii characters. 2015-06-18 11:19:23 +00:00
install-sh update install-sh to the automake-1.11 version 2012-02-26 13:39:54 -05:00
leak-suppress.txt
Library_merged.mk Add i18nlangtag and ucbhelper to libmerged 2015-11-28 08:04:14 +01:00
lo.xcent.in Add the entitlement for app-scope security bookmarks 2013-08-22 22:02:08 +03:00
logerrit add ./logerrit testfeature 2015-06-10 18:05:34 +02:00
Makefile.fetch sd: replace embedded mDNSResponder code with proper external tarball 2015-11-30 13:11:10 +00:00
Makefile.gbuild remove SOLARENV variable 2013-11-02 22:07:53 +01:00
Makefile.in tdf#84628 Generated eclipse setting file for per module. 2015-11-27 22:06:49 +01:00
README.cross lokdocview: adapt Android path 2015-05-21 17:57:38 +01:00
README.md README: Describe what LibreOffice is about 2015-11-28 11:34:19 +00:00
README.Solaris drop gconf integration as per ESC decision 2015-10-16 13:50:28 +00:00
Repository.mk merged graphic import/export into a single library 2015-11-06 11:42:36 +00:00
RepositoryExternal.mk sd: replace embedded mDNSResponder code with proper external tarball 2015-11-30 13:11:10 +00:00
RepositoryFixes.mk gengal script calling gengal.bin is not needed on Mac 2015-11-27 15:43:37 +01:00
RepositoryModule_build.mk Set up the instdir_for_build URE unorc file when cross-compiling 2014-09-17 16:29:34 +03:00
RepositoryModule_host.mk online update: Add MAR library creation capability 2015-06-29 17:43:30 +02:00
sanitize-ubsan-blacklist file for ci-based ubsan build 2015-10-31 01:32:18 -05:00
TEMPLATE.SOURCECODE.HEADER Targetted text updates, with seasonable changes before l10n freeze. 2013-12-13 17:00:07 +00:00
unusedcode.easy Simplify down to a single appendSQLWCHARs function 2015-11-17 13:33:44 +01:00
unusedcode.exclude Add comphelper/configuration.hxx functions to unusedcode.exclude 2012-11-20 13:32:21 +01:00
unusedcode.README bugs.freedesktop.org -> bugs.libreoffice.org 2013-11-17 08:33:01 +01:00

LibreOffice

Coverity Scan Build 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 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:

http://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
basebmp/ enables a VCL compatible rendering API to render to bitmaps, as used for LibreOffice Online, Android, iOS, etc.
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.

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.