Crear un directorio en CMake


143

En CMake, quiero crear un directorio si aún no existe. ¿Cómo puedo hacer esto?

Respuestas:


250

¿Cuándo quieres crear el directorio?

En la generación del sistema de construcción

Para crear un directorio cuando CMake genera el sistema de compilación,

file(MAKE_DIRECTORY ${directory})

En el momento de la construcción

En el add_custom_command()comando (que agrega una regla de compilación personalizada al sistema de compilación generado), y el add_custom_target()comando (que agrega un objetivo sin salida para que siempre se compile), usted especifica los comandos que se ejecutarán en el momento de la compilación. Cree un directorio ejecutando el comando ${CMAKE_COMMAND} -E make_directory. Por ejemplo:

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

En el momento de la instalación

Para crear un directorio en el momento de la instalación,

install(DIRECTORY DESTINATION ${directory})

Sucinta y rápida. ¡Golpea al objetivo de inmediato! Gracias.
truthadjustr

25

Para crear un directorio en el momento de la instalación,

install(DIRECTORY DESTINATION ${directory})

Estos serán tanto correr en el momento de configure:

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

Para crear durante la compilación, use un objetivo personalizado:

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

10

Además de la respuesta de Chin Huang, también puede hacer esto en tiempo de compilación con add_custom_command:

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

También puede cambiar el momento, cuando su directorio se crea con PRE_BUILD| PRE_LINKEl | POST_BUILDparámetros

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.