2014-05-12 4 views
8

Ist diese Variable immer auf das Verzeichnis mit der CMakeLists.txt Datei eingestellt, die ich cmake an?Wo ist CMAKE_SOURCE_DIR?

Zum Beispiel, wenn ich cmake auf einer CMakeLists.txt Datei ausführen möchte, die im Verzeichnis über meinem aktuellen Verzeichnis existiert, würde ich gehen: cmake ...

In diesem Fall, was ist mein CMAKE_SOURCE_DIR?

Antwort

4

Angenommen, Sie haben zwei Ordner src und build wo src Ihre Projekte enthält und build ist der leere Ordner, den Sie gerade erstellt haben, so dass Sie Ihre Out-of-Baum bauen darin bereitstellen können: CMAKE_SOURCE_DIR ist der Pfad zu src wo CMAKE_BINARY_DIR zeigt auf build.

Beachten Sie, dass die 2 Cache-Einträge den gleichen Wert erhalten, wenn Sie eine In-Tree-Erstellung durchführen.

link: CMake Useful Variables.


EDIT

für weitere Erläuterungen

<some location>/src/CMakeLists.txt (so *src* is the root of your project) 
<some location>/build 

, wenn Sie etwas tun, wie

cd <some location>/build 
cmake <some location>/src 

Sie machen eine Out-of-Baum zu bauen, wo 0.123.und CMAKE_BINARY_DIR erhalten unterschiedliche Werte

+0

Vielen Dank für Ihre Antwort. Aber leider verstehe ich nicht, wie sich diese Antwort auf meine Frage bezieht. Ich kann jedoch einige grundlegende Informationen fehlen. – patchwork

+0

@patchwork wissen Sie, was ein Out-of-Tree Build ist? Wenn Sie Ihr Projekt in einem Ordner konfigurieren und erstellen, der nicht der ursprüngliche Quellordner ist, wenn Sie sagen, dass Sie 'cmake ..' aus Ihrem Quellbaum verwenden, führen Sie einen Out-of-Tree-Build aus. – user2485710

+0

danke, nein ich wusste nicht, was ein Out-of-Tree-Build war. Ich habe es immer noch nicht geschafft, die Informationen, die Sie in Ihrer Antwort angegeben haben, mit meiner Frage zu verbinden. "Ist diese Variable (CMAKE_SOURCE_DIR) immer auf das Verzeichnis eingestellt, das die CMakeLists.txt-Datei enthält, auf der ich Cmake ausführe?" Wie auch immer - ich habe herausgefunden, was CMAKE_SOURCE_DIR war, indem ich es in den Cache exportiert habe. – patchwork