Tworzenie katalogu w CMake


143

W CMake chcę utworzyć katalog, jeśli jeszcze nie istnieje. W jaki sposób mogę to zrobić?

Odpowiedzi:


250

Kiedy chcesz utworzyć katalog?

Podczas generowania systemu kompilacji

Aby utworzyć katalog, gdy CMake generuje system kompilacji,

file(MAKE_DIRECTORY ${directory})

W czasie kompilacji

W add_custom_command()poleceniu (które dodaje niestandardową regułę kompilacji do wygenerowanego systemu kompilacji) i add_custom_target()poleceniu (które dodaje cel bez wyjścia, więc zawsze będzie budowany), określasz polecenia do wykonania w czasie kompilacji. Utwórz katalog, wykonując polecenie ${CMAKE_COMMAND} -E make_directory. Na przykład:

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

W czasie instalacji

Aby utworzyć katalog podczas instalacji,

install(DIRECTORY DESTINATION ${directory})

Zwięźle i szybko. Trafia od razu w cel! Dzięki.
trueadjustr

25

Aby utworzyć katalog podczas instalacji,

install(DIRECTORY DESTINATION ${directory})

Będą zarówno uruchomić w momencie configure:

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

Aby utworzyć podczas kompilacji, użyj niestandardowego celu:

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

10

Oprócz odpowiedzi Chin Huanga możesz to również zrobić w czasie kompilacji za pomocą add_custom_command:

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

Możesz także zmienić moment, w którym tworzony jest katalog za pomocą PRE_BUILD| PRE_LINK| POST_BUILDparametry.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.