Existe-t-il un moyen de définir une variable dans un script CMake à la sortie d'une commande shell ? Quelque chose comme SET(FOO COMMAND "echo bar")
viendrait à l'esprit
Réponse
Trop de publicités?Vous voulez le execute_process
commandement.
Dans votre cas, sur Windows :
execute_process(COMMAND CMD /c echo bar OUTPUT_VARIABLE FOO)
ou sur Linux, tout simplement :
execute_process(COMMAND echo bar OUTPUT_VARIABLE FOO)
Dans ce cas particulier, CMake offre une solution multiplateforme. CMake peut lui-même être utilisé pour exécuter des commandes qui peuvent être utilisées sur tous les systèmes, dont l'une est echo
. Pour cela, il faut passer à CMake l'argument de ligne de commande suivant -E
. Pour obtenir la liste complète de ces commandes, exécutez cmake -E help
A l'intérieur d'un script CMake, l'exécutable CMake est désigné par ${CMAKE_COMMAND}
donc le script doit faire :
execute_process(COMMAND ${CMAKE_COMMAND} -E echo bar OUTPUT_VARIABLE FOO)