Development/BuildingOnMac
TDF LibreOffice Document Liberation Project Blog comunitari Weblate Nextcloud Redmine Ask LibreOffice Donazione
Questa pagina descrive come configurare un ambiente di compilazione per LibreOffice su macOS 10.14.4. Building master richiede Xcode 11.3 o successivo, che richiede macOS 10.14.4 o successivo.
Prerequisiti
- Installa Xcode dall'App Store. L'intento è che LibreOffice sarà sempre compilabile con l'attuale Xcode sull'attuale macOS. Subito dopo il rilascio di una nuova versione di Xcode o dopo il rilascio di una nuova versione di macOS, potrebbero trascorrere alcuni giorni in cui ciò non sia vero. Siate pazienti in quel caso. Potrebbe funzionare anche l'utilizzo di versioni precedenti di Xcode su versioni precedenti di macOS. Quello che non dovreste assolutamente fare è scaricare specificamente una vecchia versione di Xcode o un vecchio SDK separato e usarli.
- Eseguite Xcode almeno una volta (non è necessario aprire o creare alcun progetto)
- Verificate dal menu ▸ ▸ che la voce Strumenti della riga di comando non sia vuota
- Se avete intenzione di lavorare sulle parti di LibreOffice che sono implementate in Java, principalmente il database integrato HSQLDB in Base, dovete scaricare e installare un JDK (Java SE Development Kit): com/technetwork/java/javase/downloads/index.html Java SE Development Kit di Oracle. Ma questo è del tutto facoltativo. Se volete evitare Java, usa semplicemente l'opzione --without-java nel vostro autogen.input o sulla riga di comando autogen.sh, quando arrivate così lontano.
Avviso: secondo https://lists.freedesktop.org/archives/libreoffice/2021-April/087205.html, tutto dovrebbe essere a posto per la compilazione con il processore Mac contenente Apple Silicon M1 tranne un problema noto con JVM in-process (si veda https://lists.freedesktop.org/archives/libreoffice/2020-December/086490.html)
Compilazione
Si consiglia di utilizzare Development/lode per l'installazione e la configurazione.
Se non usate Lode dovrete installare le dipendenze secondo necessità (ad es. brew install autoconf automake libtool). Sarà inoltre necessario configurare i flag pertinenti in autogen.input per rendere possibile la creazione.
Suggerimenti per la compilazione
Si veda suggerimenti indipendenti dalla piattaforma su Development/GenericBuildingHints
Compilazione in una sessione ssh
In alcuni casi sembra che se state compilando in una sessione ssh, alcuni unit test falliscano a meno che non abbiate anche una sessione di finestra aperta sulla macchina, sulla console fisica o tramite Condivisione schermo.
Prestazioni
La compilazione di LibreOffice richiede tempo, molto tempo. Esattamente quanto dipende da quanto è potente la vostra macchina. Ma ci sono strumenti che potete usare per accelerare le cose.
ccache
ccache è l'abbreviazione di cache del compilatore - ed è esattamente questo. Risparmia un sacco di tempo non eseguendo il compilatore vero e proprio quando poco è cambiato nel codice sorgente tra due rilasci. Ma notate che a meno che non facciate esplicitamente "ripulire" spesso, non è in genere il caso, e usare ccache solo perché pensiate che forse aiuta non è una buona idea.
Prendetelo da qui: [1]
Compilatelo così:
./configure
make
make install
Dovrete anche assicurarvi che sia definito quanto segue, ad es. in .bash_profile nella vostra cartella home, se usate ccache (si veda Development/Building LibreOffice con Clang per tutti i dettagli), altrimenti clang riporterà errori e mostrerà avvisi non necessari:
export CCACHE_CPP2=YES
Il limite di cache predefinito (5 GB) non è abbastanza grande da essere utile per una compilazione di LibreOffice, ma potete aumentarlo, ad esempio a 30 GB:
ccache --max-size 30 G
Per verificare qual è il limite corrente della cache e vedere le statistiche ccache, eseguitelo con l'opzione della riga di comando -s:
ccache -s
Aggiornamento a un macOS recente su macchine non supportate
Utilizzando vari strumenti di terze parti non ufficiali, potrebbe essere possibile eseguire versioni di macOS più recenti su macchine più vecchie di quelle supportate da quella versione di macOS. Se ne avete bisogno, cercatelo. Non è rilevante duplicare tali informazioni qui.