CMake und ADD_SUBDIRECTORY



  • Hallo,

    ich befasse mich gerade mit eclipse und cmake, und bin auf folgendes problem gestoßen. Ich möchte das header und sourcen aus unterverzeichnissen auch mit compiliert werden.

    Meine verzeichnisstruktur:

    MyFirst
     - main.cpp
     - build/
     - myfirst_sub/
       - myfirstsub.h
       - myfirstsub.cpp
     - CMakeLists.txt
    

    Meine CMakeLists.txt sieht so aus:

    CMAKE_MINIMUM_REQUIRED(VERSION 2.8.5)
    
    PROJECT(MyFirst)
    
    ADD_EXECUTABLE(MyFirst main.cpp)
    
    ADD_SUBDIRECTORY(myfirst_sub)
    

    Mir ist klar, das in das unterverzeichnis myfirst_sub auch eine CMakeLists.txt gehört, nur was schreibe ich da rein?

    Mit google finde ich lauter wiedersprüchliche vorgehensweisen und in der cmake doku sind in dem howto zu viele möglichkeiten auf einmal verpackt, ich möchte aber einfach nur ein minimalbeispiel wie man unterverzeichnisse hinzufügt.

    Bitte um hilfe, danke!

    Mfg



  • Das ADD_SUBDIRECTORY tut wirklich nicht viel anderes als die CMakeLists.txt aus dem Unterverzeichniss aufzurufen. Dabei werden die Einstellungen, die bisher im Hauptfile vorgenommen wurden übernommen. Die Einstellungen aus dem Subfile werden aber nicht in das Hauptfile übernommen. Von daher bringt dir das nichts, wenn im Hauptfile etwas erstellt werden soll. Das eignet sich nur, wenn du im Unterverzeichniss eine separate Bibliothek oder Executable erzeugen willst.

    Ansonsten kannst du mit INCLUDE_DIRECTORIES angeben wo includes gesucht werden und für Quellcodedateien gibst du den Ordner mit an:

    INCLUDE_DIRECTORIES(myfirst_sub)
    ADD_EXECUTABLE(MyFirst main.cpp myfist_sub/myfirstsub.cpp)
    


  • Danke für die antwort, jetzt wird mir einiges klar!


Anmelden zum Antworten