Создание каталога в CMake - PullRequest
       7

Создание каталога в CMake

115 голосов
/ 13 сентября 2010

В CMake я хочу создать каталог, если он еще не существует.Как я могу это сделать?

Ответы [ 3 ]

201 голосов
/ 13 сентября 2010

Когда вы хотите создать каталог?

При генерации системы сборки

Чтобы создать каталог, когда CMake генерирует систему сборки,

file(MAKE_DIRECTORY ${directory})

Во время сборки

В команде add_custom_command() (которая добавляет настраиваемое правило сборки в сгенерированную систему сборки) и в команде add_custom_target() (которая добавляет цель без вывода, поэтому она всегда будет построена), вы указываете команды для выполнить во время сборки. Создайте каталог, выполнив команду ${CMAKE_COMMAND} -E make_directory. Например:

add_custom_target(build-time-make-directory ALL
    COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})

Во время установки

Чтобы создать каталог во время установки,

install(DIRECTORY DESTINATION ${directory})
19 голосов
/ 03 августа 2014

Чтобы создать каталог во время установки,

install(DIRECTORY DESTINATION ${directory})

Они будут оба работать во время настройки:

file(MAKE_DIRECTORY ${directory})
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})

Чтобы создать во время сборки, используйте пользовательскую цель:

add_custom_target(mytargetname ALL COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})
3 голосов
/ 13 октября 2016

В дополнение к ответу Чин Хуан, вы также можете сделать это во время сборки с помощью add_custom_command:

add_custom_command(TARGET ${target_name} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})

Вы также можете изменить момент, когда ваш каталог создается с помощью PRE_BUILD | PRE_LINK | Параметры POST_BUILD.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...