2016-07-02 14 views
1

In einem cmake Skript Ich habe eine Reihe von Tests, die von einem Set-Plugins abhängen (deren Ausgabe für die Konfiguration in Windows Debug/Release/RelWithDebInfo etc variiert).CTest (cmake) Umgebungsvariablen konfigurationsspezifisch festlegen

Und ich will und env Variable mit dem richtigen Weg, wie

if(WIN32) 
    set_tests_properties(${my_test} PROPERTIES ENVIRONMENT "MYVAR=\\dir_for_plugins\\debug") 
endif() 

die offensichtlich funktioniert nur für Debug-Builds.

Ich habe versucht, entweder

if(WIN32) 
    foreach(cfg_ ${CMAKE_CONFIGURATION_TYPES}) 
    set_tests_properties(${test_name} PROPERTIES 
     ENVIRONMENT_${cfg__} "MYVAR=\\dir_for_plugins\\${cfg__}") 
    endforeach() 
endif 

if(WIN32) 
    set_tests_properties(${my_test} PROPERTIES ENVIRONMENT "MYVAR=\\dir_for_plugins\\env{MY_CONFIG_TYPE}") 
endif 

if(WIN32) 
    set_tests_properties(${my_test} PROPERTIES ENVIRONMENT "MYVAR=\\dir_for_plugins\\%MY_CONFIG_TYPE%") 
endif 

Aber keiner scheint für alle Konfigurationen zu arbeiten, weil die env an cmake-Zeit aufgelöst wird. Gibt es eine Möglichkeit, diese Ausdrücke langsam auszuwerten, bis der richtige Suite-Test für eine bestimmte Konfiguration ausgeführt wird?

Antwort