Créer un répertoire dans CMake

Dans CMake, je veux créer un répertoire s’il n’existe pas déjà. Comment puis-je faire ceci?

Quand voulez-vous créer le répertoire?

À la génération du système de construction

Pour créer un répertoire lorsque CMake génère le système de génération,

file(MAKE_DIRECTORY ${directory}) 

Au moment de la construction

Dans la commande add_custom_command() (qui ajoute une règle de génération personnalisée au système de génération généré) et la commande add_custom_target() (qui ajoute une cible sans sortie afin qu’elle soit toujours générée), vous spécifiez les commandes à exécuter lors de la génération temps. Créez un répertoire en exécutant la commande ${CMAKE_COMMAND} -E make_directory . Par exemple:

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

Au moment de l’installation

Pour créer un répertoire au moment de l’installation,

 install(DIRECTORY DESTINATION ${directory}) 

Pour créer un répertoire au moment de l’installation,

 install(DIRECTORY DESTINATION ${directory}) 

Celles-ci s’exécuteront au moment de la configuration:

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

Pour créer pendant la construction, utilisez une cible personnalisée:

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

En plus de la réponse de Chin Huang, vous pouvez également le faire au moment de la construction avec add_custom_command :

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

Vous pouvez également changer le moment où votre répertoire est créé avec PRE_BUILD | PRE_LINK | Paramètres POST_BUILD.