94 votes

Comment initialiser une variable CMake avec le résultat d'une commande shell ?

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

99voto

Fraser Points 20579

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)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X