Membuat direktori di CMake

143

Di CMake, saya ingin membuat direktori jika belum ada. Bagaimana saya bisa melakukan ini?

Jookia
sumber

Jawaban:

250

Kapan Anda ingin membuat direktori?

Saat membangun generasi sistem

Untuk membuat direktori ketika CMake menghasilkan sistem build,

file(MAKE_DIRECTORY ${directory})

Saat membangun

Dalam add_custom_command()perintah (yang menambahkan aturan build kustom ke sistem build yang dihasilkan), dan add_custom_target()perintah (yang menambahkan target tanpa output sehingga selalu akan dibangun), Anda menentukan perintah yang akan dieksekusi pada waktu build. Buat direktori dengan menjalankan perintah${CMAKE_COMMAND} -E make_directory . Sebagai contoh:

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

Pada saat menginstal

Untuk membuat direktori pada waktu instalasi,

install(DIRECTORY DESTINATION ${directory})
Chin Huang
sumber
Succint dan cepat. Segera sasaran! Terima kasih.
truthadjustr
25

Untuk membuat direktori pada waktu instalasi,

install(DIRECTORY DESTINATION ${directory})

Keduanya akan berjalan pada saat mengkonfigurasi:

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

Untuk membuat selama pembuatan, gunakan target khusus:

add_custom_target(mytargetname ALL COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})
smarquis
sumber
10

Selain balasan Chin Huang, Anda juga dapat melakukan ini saat membangun dengan add_custom_command:

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

Anda juga dapat mengubah momen, ketika direktori Anda dibuat dengan PRE_BUILD| PRE_LINK| POST_BUILDparameter.

Yevhenii Babichenko
sumber