Створення каталогу в CMake


143

У CMake я хочу створити каталог, якщо він ще не існує. Як я можу це зробити?

Відповіді:


250

Коли ви хочете створити каталог?

При створенні системи генерації

Щоб створити каталог, коли 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})

Соковитий і швидкий. Одразу потрапляє в ціль! Дякую.
truthadjustr

25

Щоб створити каталог під час встановлення,

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})

10

Окрім відповіді Чін Хуанга, ви також можете це зробити в час складання за допомогою add_custom_command:

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

Ви також можете змінити момент, коли ваш каталог створений за допомогою PRE_BUILD| PRE_LINK| POST_BUILDпараметри.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.