## Compilazione e installazione con l'uso di CMake e Scribus 1.4.x

Per molti anni gli sviluppatori di Scribus hanno generato il programma a partire dal codice sorgente utilizzando autotools, ma poi hanno deciso di sostituirlo con CMake. È uno strumento molto più flessibile, e allo stesso tempo molto meno complesso, e inoltre è compatibile con gli strumenti di compilazione presenti su Linux e varianti di UNIX, Windows e Mac OS X.

Per generare un programma con CMake, ovviamente avete bisogno di CMake stesso. CMake è compreso nella maggior parte delle distribuzioni Linux e in alcune di UNIX. Se nella vostra non è presente, potete scaricarlo qui; dovreste accertarvi di prelevarne una versione recente, come la 2.8 o una superiore. Nel sito vi sono anche i pacchetti di installazione per Mac OS X, che possono anche essere ottenuti da macports.org. Scribus non usa ancora CMake per Windows, anche se questa capacità potrebbe essere aggiunta in futuro.

Uno dei vantaggi di CMake è la possibilità di generare il programma “fuori sorgenti”. Creando una cartella distinta in cui avviene la compilazione del programma, i file temporanei e i file dell'applicazione che vengono generati si trovano un una posizione diversa dai file del codice sorgente. Questo aiuta a mantenere pulite le strutture delle directory, e riduce un po' il tempo necessario per scaricare gli aggiornamenti del codice sorgente. Questo è il metodo migliore ed è fortemente consigliato dai nostri sviluppatori. Inoltre CMake è molto più semplice da mantenere in efficienza per gli sviluppatori, e gli errori sono comprensibili anche dai comuni mortali.

### Preparazione

Supponiamo che vi troviate nella seguente situazione:

- il codice sorgente di Scribus si trova nella directory `/home/username/scribussource/` (dove username è il vostro nome utente)
- CMake si trova in `/usr/bin/`
- volete installare Scribus in `/home/username/scribusinstall/`

### Iniziare la compilazione all'esterno del codice sorgente

Spostatevi nella directory del codice sorgente:

    cd /home/username/scribussource/

Create una directory in cui Scribus sarà compilato:

    mkdir builddir

Spostatevi nella directory di compilazione:

    cd builddir

Poi date il seguente comando:

    /usr/bin/cmake ../Scribus -DCMAKE_INSTALL_PREFIX:PATH=/home/username/scribusinstall/

### Passare alla fase di compilazione

Quando il comando CMake ha completato la sua esecuzione senza errori (ricordate che ha bisogno di trovare le dipendenze di Scribus e registrare la loro posizione), dovete dare il seguente comando:

    make && make install

## Opzioni avanzate

### Opzioni di compilazione

Ecco alcune opzioni presenti nei file Cmake di Scribus 1.4.x (altre ne seguiranno!):

- WANT_VERSIONING=1: fa in modo che venga usato il valore di VERSION come suffisso per le directory di installazione e l'eseguibile (ad esempio l'eseguibile potrebbe essere scribus-1.4.0). Ciò significa che potete installare più versioni con lo stesso prefisso senza conflitti.
- WANT_DEBUG=1: genera una versione di debug e usa -O0 -g3, invece di -O2 (questa è attualmente l'impostazione predefinita, e può essere disattivata solo modificando il file CMakeFiles.txt).
- WANT_CAIRO=1 (opzione predefinita): fa sì che CMake cerchi la libreria grafica Cairo e la utilizzi per la compilazione al posto di Arthur (che fa parte di Qt).
- WANT_QTARTHUR=1: fa sì che Cmake cerchi Qt Arthur e la utilizzi per la compilazione invece di Cairo.
- WANT_NOHEADERINSTALL=1: non installa i file header usati per gli sviluppatori. Le distribuzioni non dovrebbero usare questa opzione se suddividono Scribus in più pacchetti.
- WANT_NORPATH: disabilita l'impostazione di uno specifico RPATH.
- WANT_DISTROBUILD: un'opzione per i distributori di sistemi operativi da usare per le loro opzioni di compilazione.
- WANT_LIB64: forza la compilazione a 64 bit.
- WANT_RELEASEWITHDEBUG: imposta le opzioni per la compilazione come release, ma aggiunge anche le informazioni di debug.
- WANT_UNIVERSAL_BUNDLE: solo per Mac OS X, abilita la compilazione di un pacchetto .app.
- WANT_QT4MAC_COCOA: solo per Mac OS X, abilita la compilazione della versione Cocoa con Qt 4.5+.
- WANT_QT3SUPPORT: abilita l'utilizzo di Qt 3 nel caso abbiate un plugin personalizzato non convertito a Qt4. Questa opzione non è necessaria per il codice ufficiale di Scribus.
- APPLICATION_DATA_DIR: imposta la posizione delle preferenze di Scribus (invece di quella predefinita, che è ~/.scribus su *nix e /Users/username/Library/Preferences/Scribus su Mac OS X.)

Esempio: per generare una versione di debug con l'uso di Cairo, il comando da dare sarà simile al seguente (su una sola riga):

    /usr/bin/cmake . -DCMAKE_INSTALL_PREFIX:PATH=/home/username/scribusinstall -DWANT_CAIRO=1 -DWANT_DEBUG=1 -DWANT_VERSIONING=1

### Specificare le posizioni delle librerie

Quando la vostra distribuzione pubblica il proprio pacchetto per una libreria da cui Scribus dipende, esso potrebbe non essere la più recente versione stabile o instabile fornita dagli autori della libreria. A volte gli sviluppatori di Scribus hanno bisogno di usare il codice più recente per migliorare certe parti di Scribus. In questi casi è necessario che compiliate voi la versione adatta di tali librerie.

### Creare un archivio tar da distribuire

Per creare un archivio tar da distribuire, il vecchio modo sarebbe: `make dist`.

Il nuovo modo consiste nel dare il seguente comando:

    make package_source

oppure

    /usr/bin/cpack -G TBZ2 --config CPackSourceConfig.cmake

per ottenere un pacchetto del codice sorgente.

Importante: se dovete eseguire di nuovo cpack, eliminate `_CPack_Packages/` prima di lanciarlo una seconda volta.

Potete anche esportare da svn:

    /path/to/scribus/svn

in una directory temporanea, e poi inserirla in un archivio tar o zip.

### Problemi e successi

Se avete letto bene queste istruzioni ma avete ancora problemi, contattateci su IRC o scrivete alla nostra mailing list spiegando il vostro problema. Siamo anche interessati ad avere notizie da utenti che sono riusciti a compilare Scribus su piattaforme diverse da Linux. Sappiamo già che la compilazione su Mac OS X è molto affidabile.