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)