2012-07-18 3 views
5

Ich experimentiere mit CMake ein bisschen für ein C++ - Repository, aber ich renne in einige Schwierigkeiten zu versuchen, es einfach zu erstellen Anwendungen gegen Bibliotheken in der gleichen Quellstruktur ohne viel von zusätzlichem CMake-Code.leicht Header aus der Bibliothek Abhängigkeit in cmake

Das Layout der Baumquelle ist im Grunde die folgenden:

ROOT 
    libs/ 
     lib1/ 
     lib2/ 
     lib3/ 
    apps/ 
     app1/ 
     app2/ 
     app3/ 

Die Bibliotheken sind unabhängig voneinander und die Anwendungen verknüpfen kann gegen einen oder mehrere der Bibliotheken.

Derzeit habe ich eine Wurzel CMakeLists.txt, die jede Anwendung und Bibliothek als ein Unterverzeichnis auflistet, so dass, wenn die Bibliothek geändert und die Anwendung neu erstellt wird, auch die Bibliothek. Das funktioniert gut und CMake verbindet es, ohne dass ich angeben muss, wo die Bibliothek lebt, aber ich sehe keine Möglichkeit, etwas ähnliches für Include-Verzeichnisse zu tun.

Gibt es einen gemeinsamen Weg, damit umzugehen? Ich würde es vorziehen, nicht die CMakeLists.txt jeder Anwendung den Pfad zu den Bibliotheken, die es benötigt, manuell aufzulisten.

Antwort

1

Wenn Sie keine Angst davor haben, mehr Header verfügbar zu machen, als Sie tatsächlich für jede Anwendung benötigen, können Sie alle lib-Verzeichnisse in einer INCLUDE_DIRECTORIES-Anweisung auflisten, z. in der CMakeListst.txt alle Anwendungsunterlisten hinzufügen. Aber es gibt kein solches Konzept zum Verwalten von "gehörenden" Include-Ordnern pro eingebautem Ziel.

Verwandte Themen