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

Existe-t-il un moyen de définir une variable d’un script CMake sur la sortie d’une commande shell? On pense à quelque chose comme SET(FOO COMMAND "echo bar")

Vous voulez la commande execute_process .

Dans votre cas, sous Windows:

 execute_process(COMMAND CMD /c echo bar OUTPUT_VARIABLE FOO) 

ou sous Linux, simplement:

 execute_process(COMMAND echo bar OUTPUT_VARIABLE FOO) 

Dans ce cas particulier, CMake propose une solution multi-plateforme. CMake peut lui-même être utilisé pour exécuter des commandes pouvant être utilisées sur tous les systèmes, dont l’un est echo . Pour ce faire, CMake doit passer la ligne de commande arg -E . Pour la liste complète de ces commandes, exécutez l’ cmake -E help

Dans un script CMake, l’exécutable CMake est désigné par ${CMAKE_COMMAND} , le script doit donc faire:

 execute_process(COMMAND ${CMAKE_COMMAND} -E echo bar OUTPUT_VARIABLE FOO)