## Scribus 1.3.3.6+ und 1.3.4+ mit CMake kompilieren

Nachdem viele Jahre lang das Autotools-Buildsystem benutzt wurde, haben sich die Scribus-Entwickler für CMake als Ersatz entschieden. Es ermöglicht eine wesentlich flexiblere Konfiguration und ist weniger komplex. Darüber hinaus ist es kompatibel mit Build-Werkzeugen unter Linux, verschiedenen UNIX-Varianten, Windows und MacOS X.

Um mit Hilfe von CMake zu kompilieren, brauchen Sie natürlich zunächst CMake selbst. Die meisten Linux- und einige UNIX-Distributionen enthalten es als Standardpaket. Falls nicht, können Sie es hier herunterladen. Sie sollten unbedingt eine aktuelle Version verwenden, also 2.4.3 oder neuer. MacOS-X-Anwender finden dort auch einen Installer für ihr System. Scribus verwendet CMake noch nicht für Windows, obwohl sich das in Zukunft ändern könnte.

Einer der Vorteile von CMake ist, daß es möglich ist, "außerhalb der Quellen" zu kompilieren. Das bedeutet, daß wenn ein Programm kompiliert wird, die temporären Dateien und die Anwendungsdateien nicht im selben Verzeichnis gespeichert werden wie die Dateien mit den Quelltexten. Dadurch bleiben die Verzeichnisstrukturen "sauber", und die Zeit für eine Aktualisierung der Quellen reduziert sich. Dies ist die empfohlene Methode, aber wir werden beide Möglichkeiten beschreiben, die es gibt.

### Vorbereitungen

Nehmen wir folgendes an:

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

### Einen "In-Source-Build" starten

Wechseln Sie auf der Kommandozeile in das Quellverzeichnis:

    cd /home/username/scribussource/

Dann führen Sie folgenden Befehl aus:

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

Falls dies das Installationsziel ist, können Sie unter Kompilieren weiterlesen.

### Einen "Out-of-Source Build" starten

Wechseln Sie ins Quellverzeichnis:

    cd /home/username/scribussource/

Erstellen Sie ein Verzeichnis, in dem Scribus kompiliert werden soll:

    mkdir builddir

Wechseln Sie in das neue Verzeichnis:

    cd builddir

Dann führen Sie folgenden Befehl aus:

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

### Kompilieren

Wenn der CMakeBefehl, für den Sie sich entschieden haben, erfolgreich ausgeführt wurde (er muß alle Abhängigkeiten finden und deren Installationsort speichern), dann führen Sie folgenden Befehl aus:

    make && make install

## Erweiterte Optionen

### Option zum Komplieren

Einige Optionen, die CMake kennt (es werden Zukunft noch mehr!):

- WANT_VERSIONING=1: Hängt die Versionsnummer an die Installationsverzeichnisse und die Binärdatei an. Damit können Sie mehrere Scribus-Versionen in einem Verzeichnis nebeneinander installieren.
- WANT_DEBUG=1: Kompiliert eine Debug-Version und verwendet-O0 -g3 anstatt -O2 (dies ist momentan die Standardeinstellung, die nur geändert werden kann, wenn Sie die Datei CMakeFiles.txt bearbeiten).
- WANT_CAIRO=1:: Läßt Scribus nach der Cairo-Bibliothek anstelle von LibArt_LGPL suchen.
- WANT_LIBART=1: (Grundeinstellung): Läßt Scribus nach LibArt_LGPL anstelle der Cairo-Bibliothek suchen.

Um beispielsweise eine Debug-Version mit Cairo-Unterstützung zu komilieren, geben Sie folgendes ein (alles in einer Zeile):

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

### Speicherorte von Bibliotheken angeben

Jedesmal, wenn Ihre Distribution ein Paket einer Bibliothek veröffentlicht, handelt es sich dabei meist nicht um die neueste stabile oder unstabile Version. In manchen Fällen mußten die Scribus-Entwickler jedoch auf die aktuelle Version einer Bibliothek zurückgreifen, um die Entwicklung voranzutreiben. In diesen Fällen müssen Sie Ihre eigene Version der Bibliothek kompilieren.

Eine Beispiel ist Grafik-Bibliothek Cairo.

Um einen neuen Installationspfad für Cairo anzugeben, fügen Sie folgendes auf der Kommandozeile hinzu: `-DPREFIX_CAIRO:PATH=/path/to/your/cairo/install`

### Wenn auf einem System sowohl Qt3 als auch Qt4 installiert sind

Systeme, auf denen Qt3 und Qt4 installiert sind: `uic` und `moc` aus Qt4 sind in Ihrem Pfad, und es kann passieren, daß das Kompilieren fehlschlägt. Das sollte mit einer CMake-Version höher als 2.4.2 oder einer aktuellen Scribus-SVN-Version NICHT passieren. Für alle Fälle hier eine nützliche Lösung:

Löschen Sie alle Spuren früherer CMake-Konfigurationen aus Ihrem Kompilierungsverzeichnis: `rm CMakeCache.txt`

Dann ändern Sie die PATH-Variable – für mein Gentoo beispielsweise:

    export PATH=/usr/qt/3/bin/:$PATH

Dann rufen Sie CMake erneut auf:

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

### Ein Tar-Archiv zur Weiterverbreitung erstellen

Um ein Tar-Archiv zur Weiterverbreitung zu erstellen, war der alte Weg, `make dist` zu verwenden.

Jetzt funktioniert es so:

    make package_source

oder

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

Damit erhalten Sie ein Paket mit dem Quellcode. Mit CMake 2.4.1 lassen sich nur tar.gz-Archive erstellen. In späteren Versionen sind auch bzip2 und tar.bz2 möglich.

Wichtig: Wenn Sie `cpack` erneut aufrufen, entfernen Sie vorher `_CPack_Packages/`.

### Fehlerbehebung und Erfolgsmeldungen

Wenn Sie diese Anleitungen gelesen haben und trotzdem Probleme auftauchen, können Sie gerne Rat im IRC-Kanal oder auf der Mailingliste suchen. Wir sind auch an Erfahrungsberichten über das Kompilieren auf Nicht-Linux-Plattformen interessiert.