Je veux ajouter une cible CMake qui, lorsqu'elle est faite, déclenchera les éléments suivants:Utilisation de sous-clichés ou de tuyaux dans les commandes cmake?
rm $(find "${CMAKE_SOURCE_DIR}" -name "*.rej" -or -name "*.orig")
J'ai essayé ceci:
add_custom_target(pclean
COMMAND bash -c "rm $(find \"${CMAKE_SOURCE_DIR}\" -name \"*.rej\" -or -name \"*.orig\")")
et ceci:
add_custom_target(pclean
COMMAND bash -c "find "${CMAKE_SOURCE_DIR}" -name \"*.rej\" -or -name \"*.orig\" | xargs rm")
mais ni œuvres . Comment dois-je faire cela correctement? Suis-je censé utiliser quelque chose comme add_custom_command
?
Remarque: Le problème ici n'est pas les guillemets. Ainsi, si je l'utilise:
add_custom_target(pclean
COMMAND bash -c "find "${CMAKE_SOURCE_DIR}" -name \"*.rej\" -or -name \"*.orig\"")
Je reçois la liste des *.orig
et *.rej
fichiers.
@Florian: Les citations ne sont pas un problème. – einpoklum
Pouvez-vous utiliser la propriété 'ADDITIONAL_MAKE_CLEAN_FILES'? par exemple. 'SET (addfiles toto barre) set_property (ANNUAIRE APPENDENT PROPRIETE ADDITIONAL_MAKE_CLEAN_FILES" $ {addfiles} ")' Pour obtenir une liste de fichiers à supprimer, vous pouvez utiliser la commande 'file (GLOB ...) '. – vre
@vre: Je ne savais pas à ce sujet ... je me pencherai sur le sujet. ... oh, attendez, cela ne va-t-il pas causer 'make clean' pour supprimer ces fichiers? Je ne veux pas que ça arrive. – einpoklum