Selon la documentation CMakeCmake défini la variable
https://cmake.org/cmake/help/v3.3/command/set.html
on peut faire
set(ENV{<variable>} <value>)
mais cela donne le résultat
set(ENV{FOO} foo)
message("variable is $ENV{FOO}")
au moment de la configuration
variable is foo
mais à une commande linux
echo $FOO
la variable est pas
EDIT
est ici une solution partielle au problème, qui était de mettre $ PATH, de sorte qu'un utilisateur a CMAKE_INSTALL_PREFIX apparaît en premier
set(file_sh ${CMAKE_CURRENT_BINARY_DIR}/path.sh)
set(path "${CMAKE_INSTALL_PREFIX}:$ENV{PATH}")
file(WRITE ${file_sh} "#!/usr/bin/env bash\n")
file(APPEND ${file_sh} "export PATH=\"${path}\"")
execute_process(COMMAND chmod a+x ${file_sh} RESULT_VARIABLE res)
cela crée ce fichier
#!/usr/bin/env bash
export PATH="/install/prefix/path:/other/path"
plus tard peut être exécuté sur un terminal bash avec
source path.sh
Où appelez-vous 'echo $ FOO'? – arrowd
Copie possible de [Comment modifier les variables d'environnement passées à la cible CMake personnalisée?] (Https://stackoverflow.com/questions/35029277/how-to-modify-environment-variables-passed-to-custom-cmake-target) – Florian
@arrowd 'echo $ FOO' est sous linux bash –