2014-05-12 14 views
8

Czy ta zmienna jest zawsze ustawiona na katalog zawierający plik CMakeLists.txt, który uruchamiam cmake na?Gdzie jest CMAKE_SOURCE_DIR?

Na przykład, jeśli chcę uruchomić cmake na pliku CMakeLists.txt, który istnieje w katalogu nad moim bieżącym katalogiem, powinienem wybrać: cmake ...

W takim przypadku, jaki jest mój zestaw CMAKE_SOURCE_DIR?

Odpowiedz

4

Zakładając, że masz 2 foldery src i build gdzie src zawiera projekty i build jest pusty folder, który właśnie stworzył więc można wdrożyć out-of-drzewa budować w nim: CMAKE_SOURCE_DIR jest ścieżką do src gdzie CMAKE_BINARY_DIR wskazuje na build.

Należy zauważyć, że w przypadku kompilacji w drzewie 2 wpisy pamięci podręcznej mają tę samą wartość.

link: CMake Useful Variables.


EDIT

dalszych wyjaśnień

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

jeśli robisz coś

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

robicie to build out-of-drzewa gdzie CMAKE_SOURCE_DIR i otrzymują różne wartości

+0

Dziękuję za odpowiedź. Ale niestety nie rozumiem, jak ta odpowiedź odnosi się do mojego pytania powyżej. Być może brakuje niektórych podstawowych informacji. – patchwork

+0

@patchwork Czy wiesz, co to jest kompilacja poza drzewem? dzieje się tak, gdy konfigurujesz i budujesz swój projekt w folderze, który nie jest oryginalnym folderem źródłowym, więc kiedy mówisz, że używasz 'cmake ..' z drzewa źródłowego, robisz kompilację poza drzewem. – user2485710

+0

dziękuję, nie, nie wiedziałem, co to była budowla z drzewa. Wciąż nie udało mi się połączyć informacji podanych w odpowiedzi z moim pytaniem, tj. "Czy ta zmienna (CMAKE_SOURCE_DIR) zawsze jest ustawiona na katalog zawierający plik CMakeLists.txt, w którym uruchamiam cmake?" W każdym razie - dowiedziałem się, co CMAKE_SOURCE_DIR było, eksportując je do pamięci podręcznej. – patchwork