J'ai un CMake script qui exécute des tests par l'intermédiaire de add_test()
qui fonctionne sous Windows (Server 2008, ne demandez pas) dans CMake 3.15. Lorsque ces tests sont appelés, la variable d'environnement PYTHONPATH dans l'environnement dans lequel ils sont exécutés semble être réinitialisée à la valeur par défaut de l'environnement, et ne contient pas certains chemins dont elle a besoin.
J'ai donc besoin de définir PYTHONPATH lorsque les tests sont exécutés à la valeur de la variable $ENV{PYTHONPATH} lorsque CMake s'exécute. Celle-ci contient un certain nombre de chemins séparés par des points-virgules, CMake pense donc qu'il s'agit d'une liste et essaie de l'étendre en un certain nombre de chaînes de caractères séparées par des espaces, ce qui se termine évidemment mal.
Je n'arrive pas à trouver comment empêcher CMake de faire ça. D'après tout ce que je peux voir, vous devriez être en mesure de faire juste entourer avec des guillemets :
add_test(
NAME mytest
COMMAND cmake -E env PYTHONPATH="$ENV{PYTHONPATH}"
run_test_here)
...mais il fait toujours l'expansion. J'ai aussi essayé de régler avec set_tests_properties :
set_tests_properties(mytest PROPERTIES
ENVIRONMENT PYTHONPATH="$ENV{PYTHONPATH}")
...mais cela ne semble rien faire du tout - PYTHONPATH au moment du test n'a pas été modifié. Je pensais que c'était parce qu'il s'agissait d'une variable d'environnement, mais en utilisant une variable CMake normale via la commande set()
ne fait aucune différence, donc je fais quelque chose de mal. Aidez-moi, s'il vous plaît !