Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2007  »  02  »  Mal ausspannen  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

Achtung: Schreibweise

In Zeile 1 von »myproj/lib/CMakeLists.txt« (Listing 3b) kommt mit »set()« einer der wichtigsten Cmake-Befehle vor. Er weist einer Variablen einen Wert oder eine Liste von Werten zu. Im Beispiel ist »libSrcs« eine Liste mit den beiden Elementen »core.c« und »util.c«. Bei Befehlen spielt die Groß- undKleinschreibung keine Rolle, bei Variablennamen und Argumente jedoch schon. Argumente können sich auch über mehrere Zeilen erstrecken. So sind die beiden folgenden Beispiele äquivalent:

SET(libSrcs core.c util.c)
set (libSrcs
   core.c
   util.c
   )

Wie Zeile 3 von Listing 3b zeigt, gibt es auch in Cmake ein »if«. Die nach dem Schlüsselwort folgende Bedingung ist als Argument für das zugehörige optionale »else()« und das zwingend erforderliche »endif()« zu wiederholen. Dadurch ist bei »else()« und »endif()« leicht zu erkennen, zu welchem »if()« sie gehören. Zeile 4 fügt beim Kompilieren auf einem Unix-System die Datei »unixtool.c« zur Liste »libSrcs« hinzu:

set(libSrcs ${libSrcs} unixtool.c)

Der Ausdruck »${libSrcs}« liefert den Wert der Variablen, sodass Zeile 4 aufgelöst wird zu:

set(libSrcs core.c util.c unixtool.c)

Entsprechend verwendet Cmake unter Windows die Datei »wintool.c«. In Zeile 9 von Listing 3b fügt »add_library()« dem Projekt eine Shared Library hinzu. Die Syntax entspricht der von »add_executable()«: erst der (logische) Name der Library, dann die Quelldateien, hier mit Hilfe der Variablen »libSrcs«. Das Argument »SHARED« legt fest, dass es sich um eine Shared Library handelt, andernfalls erzeugt Cmake eine statische.

Wie bei »add_executable()« passt Cmake auch hier den Name an die Plattform an, also unter Linux »libutil.so«, unter Mac OS X »libutil.dylib« und unter Windows »util.dll«. Die jeweiligen Prä- und Suffixe fügt es automatisch hinzu, in den Cmake-Dateien steht immer nur der logische Name der Library.

Libraries

Der »install()«-Befehl in Zeile 11 von Listing 3b weist Cmake dazu an, Installationsroutinen für das Target »util« zu erzeugen. Die Libutil wandert so in das Verzeichnis »lib« relativ zum Standardinstallationspfad, hier also »/usr/local/lib«. Nach Abarbeitung dieser Datei geht Cmake zurück zu »myproj/CMakeLists.txt« und verzweigt von dort in »myproj/app/CMakeLists.txt« (Listing 3c).

Hier erzeugt in Zeile 4 das schon bekannte »add_executable()« die Applikation »fooapp«. Anders als bei den Autotools dürfen Entwickler bei Cmake die Namen der Variablen frei wählen. Das ist ein Grundprinzip von Cmake: Nichts geschieht automatisch hinter dem Rücken des Anwenders, es gibt keine magischen Datei- oder Variablennamen.

Der »target_link_libraries()«-Befehl in Zeile 6 legt fest, welche Libraries das Target »fooapp« verwendet. In diesem Beispiel soll es die Library »util« sein, die in »myproj/lib« erzeugt wird. Cmake weiß, dass es sich um diese Library handelt, und kümmert sich automatisch um Folgendes:

  • »util« vor »fooapp« kompilieren;
  • »fooapp« zu »util« »linken«;
  • »RPATH« so setzen, dass »fooapp« beim Starten die uninstallierte Library »util« benutzt;
  • »RPATH« beim Installieren den Wünschen des Nutzers anpassen.
Sie können diesen Artikel als PDF für 99 Cent kaufen. Klicken Sie dazu einfach auf eine der beiden Bezahloptionen Paypal oder ClickandBuy.


Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Sonnenstudio Suns Entwicklungsumgebung Studio unter Linux
Optimierung mit Profil System-Profiling mit Oprofile
Geistertanz Die Skriptsprache Boo
Verbindungssuche Ohne Netzverbindung mit Dateien eines Netzwerk-Filesystems arbeiten
Alles rausquetschen Tipps und kleine Tools fürs Paketmanagement
Vom Thron gestürzt Die besten Lesereinsendungen des Programmierwettbewerbs
Whitepaper
The Role of Open Source in Data Integration

Obwohl in den letzten Jahren viele technische Fortschritte erzielt werden konnten, verfügen die meisten Datenintegrationsprozesse nach wie vor nur über eine sehr begrenzte Automatisierung. Das vorliegende White Paper von dem Industry Analyst Mark Madson wird zunächst ein grundlegendes Verständnis von Daten Integration vermitteln, die Vorzüge von Open Source Lösungen für Daten Integration erläutern und Ihnen professionelle Empfehlungen geben, damit Sie Ihre Integrationsjobs noch einfacher und produktiver gestalten können.

Download PDF (Registrierung erforderlich)
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele (Folge 2)

Der zweite Teil des Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele White Papers beleuchtet anhand weiterer ausgewählter Case Studies die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.

Download PDF (Registrierung erforderlich)
Kommentare (0)