CMake'de dizin oluşturma


143

CMake'de, henüz yoksa bir dizin oluşturmak istiyorum. Bunu nasıl yapabilirim?

Yanıtlar:


250

Dizini ne zaman oluşturmak istiyorsunuz?

Derleme sistemi oluşturma aşamasında

CMake derleme sistemini oluştururken bir dizin oluşturmak için,

file(MAKE_DIRECTORY ${directory})

Yapım zamanında

In add_custom_command()(üretilen yapı sistemine Özel yapım kural ekler) komuta ve add_custom_target()(her zaman inşa edilecek hiçbir çıkış ile bir hedef ekler) komutu, oluşturma zaman yürütmek için komutları belirtin. Komutu uygulayarak bir dizin oluşturun ${CMAKE_COMMAND} -E make_directory. Örneğin:

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

Kurulum zamanında

Yükleme sırasında bir dizin oluşturmak için,

install(DIRECTORY DESTINATION ${directory})

Kısa ve özlü. Hedefi hemen vurur! Teşekkürler.
truthadjustr

25

Yükleme sırasında bir dizin oluşturmak için,

install(DIRECTORY DESTINATION ${directory})

Bunların her ikisi de yapılandırma zamanında çalışır:

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

Derleme sırasında oluşturmak için özel bir hedef kullanın:

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

10

Chin Huang'ın cevabına ek olarak, bunu aşağıdaki zamanlarda da yapabilirsiniz add_custom_command:

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

Dizininizin oluşturulduğu anı PRE_BUILD| PRE_LINK| POST_BUILDparametreleri.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.