## Kompilieren und installieren mit CMake

Nachdem viele Jahre lang das Autotools-System verwendet wurde, haben die Scribus-Entwickler sich für CMake als Ersatz entschieden, denn es ist wesentlich flexibler und weniger komplex. Es ist außerdem kompatibel mit den Standardwerkzeugen unter Linux, UNIX, Windows, OS/2 und Mac OS X.

Um mit CMake zu kompilieren, benötigen Sie natürlich CMake selbst. Die meisten Linux- und einige UNIX-Distributionen bieten Standardpakete des Programms an. Falls nicht, laden Sie den Quellcode herunter, und stellen Sie sicher, daß Sie eine halbwegs aktuelle Version erwischt haben (2.8 oder höher). Mac OS X-Anwender finden unter der o.g. Adresse oder bei Macports auch fertige Installationspakete.

Einer der Vorzüge von CMake ist, daß man damit außerhalb des Quellcodeverzeichnisses kompilieren kann, d.h. die Anwendungsdaten sowie die beim Kompilieren erzeugten temporären Dateien kommen nie mit den Dateien in Berührung, die sich im Quellcodeverzeichnis befinden. Dadurch bleibt die Verzeichnisstruktur sauber und reduziert die Downloadzeiten, wenn Sie einen SVN-Zweig aktualisieren. Diese Art des Kompilierens wird vom Scribus-Team unbedingt empfohlen. CMake ist für die Entwickler außerdem leichter zu pflegen, und Fehlermeldungen können auch von einfachen Sterblichen verstanden werden.

### Vorbereitungen

Nehmen wir folgendes an:

- Der Scribus-Quellcode befindet sich in einem Verzeichnis namens `/home/username/scribussource/` (wobei username Ihr Benutzername ist).
- CMake ist installiert unter `/usr/bin/`
- Sie wollen Scribus nach `/home/username/scribusinstall/` installieren

### Außerhalb des Quellcodeverzeichnisses kompilieren

Wechseln in das Quellcodeverzeichnis:

    cd /home/username/scribussource/

Erstellen Sie in Verzeichnis, in dem Scribus kompiliert wird:

    mkdir builddir

Wechseln Sie in das Kompilationsverzeichnis:

    cd builddir

Nun geben Sie folgenden Befehl ein:

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

Sobald CMake erfolgreich war (denken Sie daran, daß es die Abhängigkeiten finden muß), starten Sie den eigentlichen Kompilierungsprozeß:

    make && make install

## Fortgeschrittene Optionen

### Kompilierungsoptionen

Einige Optionen, von denen die CMake-Dateien in Scribus 1.4.x wissen (In der Zukunft werden noch mehr dazukommen):

- WANT_VERSIONING=1: Veranlaßt den Compiler dazu, die Scribus-Version an die Installationsverzeichnisse und die ausführbare Binärdatei anzuhängen, z.B. `scribus-1.4.0`. Dies bedeutet, daß Sie mehrere Versionen nebeneinander installieren können, ohne daß diese sich ins Gehege kommen.
- WANT_DEBUG=1: Veranlaßt den Compiler, eine Debug-Version zu erzeugen und -O0 -g3 statt -O2 zu verwenden. (Dies ist momentan die Voreinstellung und kann nicht abestellt werden, es sei denn, Sie bearbeiten die Datei CMakeFiles.txt per Hand).
- WANT_CAIRO=1 (Voreinstellung): Läßt CMake nach der Cairo-Grafikbibliothek suchen und Scribus mit dieser statt mit der Qt-Bibliothek Arthur kompilieren.
- WANT_QTARTHUR=1: Läßt CMake nach der Qt-Bibliothek Arthur suchen und mit dieser statt mit Cairo kompilieren.
- WANT_NOHEADERINSTALL=1: Verhindert, daß Header-Dateien installiert werden. Distributoren sollten diese Option nicht verwenden, wenn sie Scribus in mehrere Pakete aufteilen.
- WANT_NORPATH: Schaltet einen spezifischen RPATH aus.
- WANT_DISTROBUILD: Eine Option für Distributoren.
- WANT_LIB64: Erzwingt 64-Bit-Versionen.
- WANT_RELEASEWITHDEBUG: Setzt einerseits Release-Flags, schließt aber trotzdem Debug-Informationen mit ein.
- WANT_UNIVERSAL_BUNDLE: Nur für Mac OS X; ermöglicht das Kompilieren eines *.app-Pakets.
- WANT_QT4MAC_COCOA: Nur für Mac OS X; ermöglicht das Kompilieren einer Cocoa-Version mit Qt4.5+.
- WANT_QT3SUPPORT: Aktiviert Qt3-Unterstützung, falls Sie ein Plug-in benutzen, daß noch nicht vollständig nach Qt4 portiert worden ist. Wird nicht für offizielle Scribus-Versionen benötigt.
- APPLICATION_DATA_DIR: Legt den Namen des Scribus-Konfigurationsverzeichnisses fest (anstelle der Voreinstellung ~/.scribus unter *nix und /Users/username/Library/Preferences/Scribus unter Mac OS X.)

Beispiel: Um eine Debug-Version mit Cairo zu kompilieren würden Sie etwa folgendes verwenden (alles in einer Zeile):

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

### Hinweise zu Bibliotheken

Sobald eine Distribution eine neue Version einer Bibliothek veröffentlicht, die von Scribus benötigt wird, kann es sein, daß dies längst nicht die allerneueste Version ist. Manchmal müssen die Scribus-Entwickler auf eine solche brandaktuelle Version zurückgreifen, um Scribus zu verbessern. In einem solchen Fall müssen Sie die Bibliothek selbst kompilieren, wenn Sie in den Genuß der Verbesserung kommen wollen.

### Erzeugen eines Tarballs zur Distribution

Die alte Methode hierzu war die Verwendung von `make dist`.

Die neu Methode ist

    make package_source

oder

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

um ein Quellcodepaket zu erzeugen.

Wichtig: Wenn Sie `cpack` erneut aufrufen müssen, entfernen Sie zuvor `_CPack_Packages/`.

### Fehlerbehebung und Erfolgsgeschichten

Wenn Sie nach dem Lesen dieser Anleitung immer noch Probleme haben, besuchen Sie uns im IRC oder senden Sie eine E-Mail an eine der Mailinglisten, in der Sie genauer beschreiben, was Ihr Problem ist. Wir sind auch daran interessiert, von Anwendern zu hören, die Scribus erfolgreich auf Nicht-Linux-Plattformen kompiliert haben.