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?
Pour créer un répertoire lorsque CMake génère le système de construction,
file(MAKE_DIRECTORY ${directory})
Dans la commande add_custom_command()
(qui ajoute une règle de construction personnalisée au système de génération généré), ainsi que dans la commande add_custom_target()
(qui ajoute une cible sans résultat, elle sera toujours construite), vous spécifiez les commandes à exécuter au moment de la construction. 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})
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})
Ceux-ci vont les deux s'exécuter au moment de la configuration:
file(MAKE_DIRECTORY ${directory})
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})
Pour créer lors de 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.