LibreOffice und make (compilieren)
Einleitung
Möchte man LibreOffice selber kompilieren, so geht dies auch unter Windows mit cygwin. Die Anleitung findet sich auf [wiki.documentfoundation.org|https://wiki.documentfoundation.org/Development/lode].
make
Damit man das Programm debuggen kann und auch in Visual-Studio integrieren, muss man folgende Parameter mitgeben oder in der Datei autogin.input hinterlegen (dbgutil sollte eigentlich das gleiche sein wie debug):
./autogen.sh --enable-dbgutil --enable-debug --with-visual-studio=2022
Parameter für make setzen
In der Datei config_host.mk werden viele globale Einstellungen getätigt. Wird dort eine Option angepasst, muss meist ein kompletter Build erstellt werden (etwa SAL_LOG auf FALSE setzen).
verschiedene make Optionen
Mit dem folgenden Befehl wird kompiliert und gleichzeitig werden noch die Checks gemacht, ob das Programm läuft wie es sollte. Dazu wird der Output in die Logdatei geschrieben, damit man Fehler suchen kann. Unter Linux empfehlen sie, zuerst nur ein make zu machen und erst anschliessend ein make check, damit er besser durchläuft:
make check 2>&1 | tee build.log
Nach dem kompilieren (lode/dev/core) findet sich LibreOffice im Unterverzeichnis: instdir/program/soffice.exe (c:\cygwin\home\[username]\lode\dev\core\instdir\program\soffice.exe)
- Die Angabe 2>&1 bewirkt, dass Ausgaben der Fehlerkonsole (2) auf die Standardausgabe umgelenkt werden.
- tee bewirkt ein kopieren der Ausgaben aus der Pipe in die angegebene Datei und gleichzeitige Ausgabe auf die Konsole, so dass parallel geloggt wird.
Wenn man bei make den Parameter vs-ide-integration mitgibt, dann hat man nachher im core-Verzeichnis eine LibreOffice.sln, die man direkt mit VS öffnen kann, um so den Debugprozess zu starten.
make vs-ide-integration
When you want to build the debug version for a fix set of modules you can use:
./autogen.sh --enable-debug --enable-symbols="<space separated list of modules terminated with '/' >"
For details see the description of --enable-symbols in the output of ./autogen.sh --help.
Git
Damit das Verzeichnis aktualisiert wird, muss man unter /lode/dev/core folgendes aufrufen:
git pull
Nimmt man das falsche Verzeichnis kommt entweder die Meldung, dass es kein Repository gibt oder dass es schon aktuell ist, ohne dass er etwas vergleicht.
Kommt die Meldung "Bitte committen oder stashen Sie Ihre Änderungen, bevor Sie mergen.", dann hat man lokal Änderungen an Dateien gemacht, die auch Online geändert wurden. Mit commit übernimmt man die eigenen ANpassungen, während mit stash die Änderungen verworfen werden.
git commit -> Änderungen übernehmen und lokal speichern git stash -> Änderungen verwerfen -> Können später mit git stash apply wieder geholt werden
Anschliessend muss man wieder einen pull durchführen und wenn der erfolgreich war, dann kann man neu kompilieren. Man sollte aber vorher noch make clean durchführen, damit sauber kompiliert wird. Kommt beim clean die Meldung "rm: das Entfernen von 'C:/cygwin/home/grobma/lode/dev/core/instdir/program/types/offapi.rdb' ist nicht möglich: Device or resource busy", dann läuft im Hintergrund noch ein Prozess, den man abschiessen muss.
Seiten zum Compilieren
LibreOffice unter Windows compilieren
- Voraussetzungen: https://wiki.documentfoundation.org/Development/BuildingOnWindows/de
- Komilieren mit LODE: https://wiki.documentfoundation.org/Development/lode
- Debugoptionen: https://wiki.documentfoundation.org/Development/How_to_debug
- Umgebungsvariablen (Bestimmen, wie sich LO beim Starten verhalten soll): https://wiki.documentfoundation.org/Development/Environment_variables
LibreOffice unter Linux compilieren
Aufbau LibreOffice
- Übersicht Klassen: https://wiki.documentfoundation.org/Development/Code_Overview/de
- LibreOffice Modul-Liste: https://docs.libreoffice.org/
- Neuen Code zu Writer hinzufügen: https://wiki.documentfoundation.org/Development/Writer
- LO API-Dokumentation: https://api.libreoffice.org/
- Vortrag visuelle Klassen: https://conference.libreoffice.org/assets/Conference/MichaelMeeksyear-of-vcl.pdf
Zusätzliches
- Vorträge LibreOffice Conference 2013: https://conference.libreoffice.org/talks/2013/
- Writer-Training: https://speakerdeck.com/vmiklos/writer-training-number-1-2014 und https://speakerdeck.com/vmiklos/writer-training-number-2-2014
- Vortrag Probleme lösen: https://meeksfamily.uk/~michael/data/2016-04-29-solving-problems.pdf
- Vortrag Beginners Infos: https://meeksfamily.uk/~michael/data/2016-04-29-beginners-core.pdf
- Vortrag Beginners Struktur: https://meeksfamily.uk/~michael/data/2016-04-29-beginners-structure.pdf