LibreOffice IDE integration Bjoern Michaelsen member, Board of Directors, the Document Foundation bjoern.michaelsen@documentfoundation.org LibreOffice Ubuntu maintainer bjoern.michaelsen@canonical.com
Agenda Building LibreOffice (from the command line) Interlude: LibreOffice Build System Developing LibreOffice from an IDE Leftovers, Outlook and Ideas
Building LibreOffice
The Chord: Building 1990ies unix style ./configure make make install
The Chord: Building LibreOffice ./configure make https://wiki.documentfoundation.org/Development/BuildingOnLinux
The Chord: Building LibreOffice master git clone git://anongit.freedesktop.org/libreoffice/core ./autogen.sh make https://wiki.documentfoundation.org/Development/BuildingOnLinux
The Chord: Building LibreOffice master git clone git://anongit.freedesktop.org/libreoffice/core ./autogen.sh make make debugrun https://wiki.documentfoundation.org/Development/BuildingOnLinux
LibreOffice modules make sw cat sw/README cd sw/ && make sw ./nlpsolver ./o3tl ./odk ./offapi ./officecfg ./oovbaapi ./oox ./opencl ./osx ./package ./padmin ./postprocess ./pyuno ./qadevOOo ./readlicense_oo ./registry ./remotebridges ./reportbuilder ./reportdesign ./ridljar ./rsc ./sal ./salhelper ./sax ./sc ./scaddins ./sccomp ./scp2 ./scripting ./sd ./sdext ./setup_native ./sfx2 ./shell ./slideshow ./smoketest ./solenv ./soltools ./sot ./starmath ./stoc ./store ./svgio ./svl ./svtools ./svx ./sw ./swext ./sysui make sw cat sw/README cd sw/ && make sw ./editeng ./embeddedobj ./embedserv ./eventattacher ./extensions ./external ./ext-projects ./extras ./filter ./forms ./formula ./fpicker ./framework ./helpcompiler ./helpcontent2 ./hwpfilter ./i18nlangtag ./i18npool ./i18nutil ./icon-themes ./idl ./idlc ./include ./instdir ./instsetoo_native ./io ./ios ./javaunohelper ./jurt ./jvmaccess ./jvmfwk ./.kdev4 ./l10ntools ./librelogo ./libreofficekit ./lingucomponent ./linguistic ./lotuswordpro ./m4 ./mysqlc ./accessibility ./android ./animations ./apple_remote ./autom4te.cache ./avmedia ./basctl ./basebmp ./basegfx ./basic ./bean ./bin ./binaryurp ./bridges ./builddir ./callcatcher ./canvas ./ccache ./chart2 ./clew ./cli_ure ./codemaker ./comphelper ./compilerplugins ./config_host ./configmgr ./connectivity ./cppcanvas ./cppu ./cppuhelper ./cpputools ./cui ./dbaccess ./desktop ./dictionaries ./distro-configs ./drawinglayer ./dtrans ./tarballs ./test ./testtools ./toolkit ./tools ./translations ./tubes ./ucb ./ucbhelper ./udkapi ./UnoControls ./unodevtools ./unoidl ./unoil ./unotest ./unotools ./unoxml ./ure ./uui ./vbahelper ./vcl ./winaccessibility ./wizards ./workdir ./writerfilter ./writerperfect ./xmerge ./xmlhelp ./xmloff ./xmlreader ./xmlscript ./xmlsecurity
LibreOffice testsuites make unitcheck runs quick unittests run for each module or full build make slowcheck runs slow unittests run for each full build make subsequentcheck runs integration tests (need a full install) run for each 'make check'
LibreOffice testsuites make check on toplevel: runs quick unittests runs slow unittests runs integration tests in module:
Running LibreOffice ./instdir/program/soffice
Debugging LibreOffice ./autogen.sh --enable-dbgutil builds all of LibreOffice with extra debugging code ./autogen.sh --enable-debug builds all of LibreOffice with standard debug symbols ./autogen.sh –enable-debug \ --enable-selective-debuginfo=”all -sw -Library_sc” builds a subset of modules with debugging code make sw.clean && make sw debug=T rebuilds a LibreOffice module ad-hoc with debugging code make debugrun
Interlude: LibreOffice Build System
LibreOffice Build System abstract description of build targets: $(eval $(call gb_Library_Library,fwk)) $(eval $(call gb_Library_set_componentfile,fwk,framework/util/fwk)) $(eval $(call gb_Library_set_include,fwk,\ -I$(SRCDIR)/framework/source/inc \ -I$(SRCDIR)/framework/inc \ $$(INCLUDE) \ )) $(eval $(call gb_Library_use_sdk_api,fwk)) $(eval $(call gb_Library_use_libraries,fwk,comphelper cppu cppuhelper …)) $(eval $(call gb_Library_add_exception_objects,fwk,\ framework/source/accelerators/acceleratorcache \ …
Generate IDE projects from LibreOffice Build System make kdevelop-ide-integration make vs2013-ide-integration make vim-ide-integration volunteers wanted for e.g. GNOME Builder, Eclipse, Netbeans, XCode
Developing LibreOffice from an IDE
Build Scenarios: Running module tests https://wiki.documentfoundation.org/Development/BuildingOnLinux
Build Scenarios: Running all tests https://wiki.documentfoundation.org/Development/BuildingOnLinux
Build Scenarios: Running LibreOffice interactively https://wiki.documentfoundation.org/Development/BuildingOnLinux
Build Scenarios: Debugging from IDE https://wiki.documentfoundation.org/Development/BuildingOnWindows
Leftovers, Outlook and Ideas
I have a patch, how do I get it upstream? send a patch to libreoffice@lists.freedesktop.org ./logerrit setup run this once to push directly to gerrit ./logerrit submit sends your patch for code review
Outlook and Ideas moar IDE targets: Eclipse, Builder, XCode ... integrate online docs: http://docs.libreoffice.org http://api.libreoffice.org http://opengrok.libreoffice.org
Contact me Sweetshark on #libreoffice-dev/#libreoffice-qa on freenode Sweet5hark on twitter Contact me