CMake: родительский каталог? - PullRequest
23 голосов
/ 12 августа 2011

У меня очень простой вопрос. Как найти родительский каталог в CMake?

Предположим, что ${MYPROJECT_DIR}=/dir1/dir2/dir3/myproject/ и я хочу ${PARENT_DIR}=/dir1/dir2/dir3/.

Как это сделать? SET(PARENT_DIR ${MYPROJECT_DIR}/../) не похоже на правильный синтаксис ...

Большое спасибо.

1 Ответ

39 голосов
/ 12 августа 2011

Начиная с CMake 2.8.12, рекомендуется использовать команду get_filename_component с параметром DIRECTORY:

get_filename_component(PARENT_DIR ${MYPROJECT_DIR} DIRECTORY)

Для более старых версий CMake используйте опцию PATH:

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