2011-08-12 9 views
18

Mam bardzo proste pytanie. Jak znaleźć katalog nadrzędny w CMake?CMake: katalog nadrzędny?

Załóżmy, że ${MYPROJECT_DIR}=/dir1/dir2/dir3/myproject/ i chcę ${PARENT_DIR}=/dir1/dir2/dir3/.

Jak to zrobić? SET(PARENT_DIR ${MYPROJECT_DIR}/../) nie wydaje się odpowiednią składnią ...

Dziękuję bardzo.

Odpowiedz

31

Od CMake 2.8.12, zalecanym sposobem jest użycie komendy get_filename_component z opcją DIRECTORY:

get_filename_component(PARENT_DIR ${MYPROJECT_DIR} DIRECTORY) 

Dla starszych wersji CMake, należy wybrać opcję PATH:

set (MYPROJECT_DIR /dir1/dir2/dir3/myproject/) 
get_filename_component(PARENT_DIR ${MYPROJECT_DIR} PATH)